ref: 9f963267072cef9fd3a2ab10a7ec4d6292e259e1
app/src/main/java/ml/adamsprogs/bimba/MainActivity.kt
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 |
package ml.adamsprogs.bimba import android.os.Bundle import android.view.View import androidx.appcompat.app.AppCompatActivity import androidx.core.view.get import androidx.fragment.app.Fragment import androidx.fragment.app.FragmentManager import androidx.fragment.app.FragmentManager.FragmentLifecycleCallbacks import androidx.navigation.fragment.NavHostFragment import androidx.navigation.ui.setupWithNavController import com.google.android.material.bottomnavigation.BottomNavigationView import ml.adamsprogs.bimba.databinding.ActivityMainBinding import ml.adamsprogs.bimba.ui.home.HomeFragment import ml.adamsprogs.bimba.ui.map.MapFragment import ml.adamsprogs.bimba.ui.voyage.VoyageFragment class MainActivity : AppCompatActivity() { private lateinit var binding: ActivityMainBinding override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) binding = ActivityMainBinding.inflate(layoutInflater) setContentView(binding.root) supportFragmentManager.registerFragmentLifecycleCallbacks( object : FragmentLifecycleCallbacks() { override fun onFragmentViewCreated( fm: FragmentManager, f: Fragment, v: View, savedInstanceState: Bundle? ) { setNavbarIcons(f) super.onFragmentViewCreated(fm, f, v, savedInstanceState) } }, true ) val navView: BottomNavigationView = binding.bottomNavigation val navHostFragment = supportFragmentManager.findFragmentById(R.id.nav_host_fragment_activity_main) as NavHostFragment val navController = navHostFragment.navController navView.setupWithNavController(navController) } override fun onBackPressed() { if (binding.container.isDrawerOpen(binding.navigationDrawer)) { binding.container.closeDrawer(binding.navigationDrawer) }else { super.onBackPressed() } } fun onNavigationClicked() { if (binding.container.isDrawerOpen(binding.navigationDrawer)) { binding.container.closeDrawer(binding.navigationDrawer) } else { binding.container.openDrawer(binding.navigationDrawer) } } private fun setNavbarIcons(f: Fragment) { binding.bottomNavigation.menu[2].setIcon(R.drawable.ic_voyage_outline_24dp) binding.bottomNavigation.menu[1].setIcon(R.drawable.ic_home_outline_24dp) binding.bottomNavigation.menu[0].setIcon(R.drawable.ic_map_outline_24dp) when (f) { is HomeFragment -> { binding.bottomNavigation.menu[1].setIcon(R.drawable.ic_home_black_24dp) } is VoyageFragment -> { binding.bottomNavigation.menu[2].setIcon(R.drawable.ic_voyage_black_24dp) } is MapFragment -> { binding.bottomNavigation.menu[0].setIcon(R.drawable.ic_map_black_24dp) } else -> { binding.bottomNavigation.menu[1].setIcon(R.drawable.ic_home_black_24dp) } } } } |