|
|
@@ -4,22 +4,24 @@ import android.content.SharedPreferences
|
|
|
import android.content.res.Resources
|
|
|
import android.os.Bundle
|
|
|
import android.support.v7.app.AppCompatActivity
|
|
|
-import androidx.navigation.Navigation
|
|
|
+import androidx.navigation.NavController
|
|
|
+import androidx.navigation.NavDestination
|
|
|
import androidx.navigation.Navigation.findNavController
|
|
|
|
|
|
|
|
|
-class MainActivity : AppCompatActivity(), SharedPreferences.OnSharedPreferenceChangeListener {
|
|
|
+class MainActivity : AppCompatActivity(), SharedPreferences.OnSharedPreferenceChangeListener, NavController.OnNavigatedListener {
|
|
|
+
|
|
|
+ private lateinit var settings: SharedPreferences
|
|
|
+ private val label = "main_fragment"
|
|
|
+ private lateinit var currentLabel: String
|
|
|
|
|
|
-private lateinit var settings: SharedPreferences
|
|
|
override fun onCreate(savedInstanceState: Bundle?) {
|
|
|
super.onCreate(savedInstanceState)
|
|
|
setContentView(R.layout.main_activity)
|
|
|
settings = getSharedPreferences("settings", MODE_PRIVATE)
|
|
|
settings.registerOnSharedPreferenceChangeListener(this)
|
|
|
- }
|
|
|
-
|
|
|
- override fun onSupportNavigateUp(): Boolean {
|
|
|
- return findNavController(this, R.id.nav_host_fragment).navigateUp()
|
|
|
+ val navigator = findNavController(this, R.id.nav_host_fragment)
|
|
|
+ navigator.addOnNavigatedListener(this)
|
|
|
}
|
|
|
|
|
|
override fun onSharedPreferenceChanged(sharedPreferences: SharedPreferences?, s: String?) {
|
|
|
@@ -40,7 +42,12 @@ private lateinit var settings: SharedPreferences
|
|
|
}
|
|
|
|
|
|
override fun onBackPressed() {
|
|
|
- val nav = Navigation.findNavController(this, R.id.nav_host_fragment)
|
|
|
- nav.navigateUp()
|
|
|
+ if (currentLabel != label)
|
|
|
+ super.onBackPressed()
|
|
|
}
|
|
|
+
|
|
|
+ override fun onNavigated(controller: NavController, destination: NavDestination) {
|
|
|
+ currentLabel = destination.label.toString()
|
|
|
+ }
|
|
|
+
|
|
|
}
|