Files
digital-attendance-admin-app/app/src/main/java/in/sminnovations/smiadmin/MainActivity.kt
2025-02-12 11:14:57 +05:30

69 lines
2.5 KiB
Kotlin

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()
}
}