package `in`.sminnovations.smiadmin import android.os.Bundle import android.view.View import androidx.activity.enableEdgeToEdge import androidx.appcompat.app.AppCompatActivity import androidx.core.view.ViewCompat import androidx.core.view.WindowInsetsCompat import androidx.navigation.NavController import androidx.navigation.findNavController import androidx.navigation.fragment.NavHostFragment import androidx.navigation.ui.setupWithNavController import com.google.android.material.bottomnavigation.BottomNavigationView import `in`.sminnovations.smiadmin.databinding.ActivityMainBinding class MainActivity : BaseActivity() { private lateinit var binding: ActivityMainBinding private lateinit var navController: NavController override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) binding = ActivityMainBinding.inflate(layoutInflater) setContentView(binding.root) // Find the NavHostFragment val navHostFragment = supportFragmentManager .findFragmentById(R.id.nav_host_fragment) as NavHostFragment // Get the NavController navController = navHostFragment.navController // Setup the bottom navigation with the NavController binding.navView?.let { bottomNav -> bottomNav.setupWithNavController(navController) // Hide bottom nav on specific destinations navController.addOnDestinationChangedListener { _, destination, _ -> when (destination.id) { R.id.navigation_login -> { bottomNav.visibility = View.GONE } else -> { bottomNav.visibility = View.VISIBLE } } } } // Set up navigation item selection listener binding.navView.setOnItemSelectedListener { menuItem -> when (menuItem.itemId) { R.id.navigation_home -> { // Clear the back stack and navigate to home navController.popBackStack(R.id.navigation_home, false) true } R.id.navigation_settings -> { navController.navigate(R.id.navigation_settings) true } else -> false } } } override fun onSupportNavigateUp(): Boolean { return navController.navigateUp() || super.onSupportNavigateUp() } }