package com.project.fplus.fplusapp import android.annotation.SuppressLint import android.app.ActivityOptions import android.content.Intent import android.os.Build import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.view.MenuItem import android.view.MotionEvent import android.view.View import androidx.annotation.RequiresApi import androidx.appcompat.app.ActionBarDrawerToggle import androidx.core.content.ContextCompat import androidx.core.view.GravityCompat import androidx.viewpager.widget.ViewPager import com.aurelhubert.ahbottomnavigation.AHBottomNavigation import com.aurelhubert.ahbottomnavigation.AHBottomNavigationItem import com.google.android.material.bottomnavigation.BottomNavigationView import com.google.android.material.navigation.NavigationView import com.project.fplus.fplusapp.Adapter.MyPageAdapter import com.project.fplus.fplusapp.Model.UserManager import kotlinx.android.synthetic.main.activity_login.* import kotlinx.android.synthetic.main.activity_main.* class MainActivity : AppCompatActivity(), NavigationView.OnNavigationItemSelectedListener{ @RequiresApi(Build.VERSION_CODES.LOLLIPOP) @SuppressLint("WrongViewCast") override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val toggle = ActionBarDrawerToggle( this, drawer_layout, toolbar_main, R.string.navigation_drawer_open, R.string.navigation_drawer_close) drawer_layout.addDrawerListener(toggle) toggle.syncState() navigation.setNavigationItemSelectedListener(this) if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { AndroidN_versionUp() }else{ AndroidN_versionDown() } } @RequiresApi(Build.VERSION_CODES.LOLLIPOP) fun AndroidN_versionDown(){ val bottomNavigation = findViewById(R.id.bottom_navigation) val item1 = AHBottomNavigationItem(R.string.bottom_menu_1, R.mipmap.ic_order, R.color.black) val item2 = AHBottomNavigationItem(R.string.bottom_menu_2, R.mipmap.ic_history, R.color.black) val item3 = AHBottomNavigationItem(R.string.bottom_menu_3, R.mipmap.ic_map, R.color.black) bottomNavigation.addItem(item1) bottomNavigation.addItem(item2) bottomNavigation.addItem(item3) bottomNavigation.defaultBackgroundColor = ContextCompat.getColor(applicationContext, R.color.colorPrimaryDark) bottomNavigation.accentColor = ContextCompat.getColor(applicationContext, R.color.white00) bottomNavigation.inactiveColor = ContextCompat.getColor(applicationContext, R.color.black) var adapter = MyPageAdapter(supportFragmentManager) this@MainActivity.pager_main.adapter = adapter this@MainActivity.pager_main.setOnTouchListener { view, _ -> when (view.id) { R.layout.view_fragment_order -> bottomNavigation.currentItem = 0 R.layout.view_fragment_history -> bottomNavigation.currentItem = 1 R.layout.view_fragment_map -> bottomNavigation.currentItem = 2 } false } bottomNavigation.setOnTabSelectedListener { position, _ -> this@MainActivity.pager_main.currentItem = position true } this@MainActivity.pager_main.addOnPageChangeListener(object : ViewPager.OnPageChangeListener { override fun onPageScrolled(position: Int, positionOffset: Float, positionOffsetPixels: Int) {} override fun onPageSelected(position: Int) { bottomNavigation.currentItem = position } override fun onPageScrollStateChanged(state: Int) {} }) } @RequiresApi(Build.VERSION_CODES.N) fun AndroidN_versionUp(){ var adapter = MyPageAdapter(supportFragmentManager) this@MainActivity.pager_main.adapter = adapter this@MainActivity.pager_main.currentItem = 0 this@MainActivity.bottom_nav_view.setOnNavigationItemSelectedListener(BottomNavigationView.OnNavigationItemSelectedListener { item -> when (item.itemId) { R.id.item_menu1 -> { this@MainActivity.pager_main.currentItem = 0 this@MainActivity.title_toolbar.text = getString(R.string.title_menu1) } R.id.item_menu2 -> { this@MainActivity.pager_main.currentItem = 1 this@MainActivity.title_toolbar.text = getString(R.string.title_menu2) } R.id.item_menu3 -> { this@MainActivity.pager_main.currentItem = 3 this@MainActivity.title_toolbar.text = getString(R.string.title_menu3) } } return@OnNavigationItemSelectedListener true }) this@MainActivity.pager_main.addOnPageChangeListener(object : ViewPager.OnPageChangeListener { override fun onPageScrollStateChanged(state: Int) { } override fun onPageScrolled(position: Int, positionOffset: Float, positionOffsetPixels: Int) { } override fun onPageSelected(position: Int) { when (position) { 0 -> { this@MainActivity.bottom_nav_view.menu.getItem(0).isChecked = true } 1 -> { this@MainActivity.bottom_nav_view.menu.getItem(1).isChecked = true } 2 -> { this@MainActivity.bottom_nav_view.menu.getItem(2).isChecked = true } } } }) } @RequiresApi(Build.VERSION_CODES.LOLLIPOP) override fun onNavigationItemSelected(p0: MenuItem): Boolean { when (p0.itemId) { R.id.nav_item_home -> { } R.id.nav_item_report -> { } R.id.nav_item_logout -> { var mManager = UserManager(this@MainActivity) val intent = Intent(this, LoginActivity::class.java) val options = ActivityOptions .makeSceneTransitionAnimation( this@MainActivity, rootLayout, getString(R.string.transition_activity_login) ) startActivity(intent, options.toBundle()) mManager.deleteLogin() finish() } } drawer_layout.closeDrawer(GravityCompat.START) return true } override fun onBackPressed() { if (drawer_layout.isDrawerOpen(GravityCompat.START)) { drawer_layout.closeDrawer(GravityCompat.START) } else { super.onBackPressed() } } override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { super.onActivityResult(requestCode, resultCode, data) } }