69 lines
2.5 KiB
Kotlin
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()
|
|
}
|
|
} |