summaryrefslogtreecommitdiff
path: root/app/src/main/java/net/taler/merchantpos/MainActivity.kt
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java/net/taler/merchantpos/MainActivity.kt')
-rw-r--r--app/src/main/java/net/taler/merchantpos/MainActivity.kt18
1 files changed, 7 insertions, 11 deletions
diff --git a/app/src/main/java/net/taler/merchantpos/MainActivity.kt b/app/src/main/java/net/taler/merchantpos/MainActivity.kt
index 1fb4653..496f551 100644
--- a/app/src/main/java/net/taler/merchantpos/MainActivity.kt
+++ b/app/src/main/java/net/taler/merchantpos/MainActivity.kt
@@ -46,22 +46,17 @@ class MainActivity : AppCompatActivity(), OnNavigationItemSelectedListener {
nav_view.setupWithNavController(nav)
nav_view.setNavigationItemSelectedListener(this)
- if (savedInstanceState == null) {
- nav_view.menu.getItem(0).isChecked = true
- }
setSupportActionBar(toolbar)
- val appBarConfiguration = AppBarConfiguration(
- setOf(R.id.order, R.id.merchantSettings, R.id.merchantHistory), drawer_layout
- )
+ val appBarConfiguration = AppBarConfiguration(nav.graph, drawer_layout)
toolbar.setupWithNavController(nav, appBarConfiguration)
}
override fun onStart() {
super.onStart()
- if (model.configManager.needsConfig()) {
+ if (!model.configManager.config.isValid() && nav.currentDestination?.id != R.id.nav_settings) {
nav.navigate(R.id.action_global_merchantSettings)
- } else if (model.configManager.merchantConfig == null) {
+ } else if (model.configManager.merchantConfig == null && nav.currentDestination?.id != R.id.configFetcher) {
nav.navigate(R.id.action_global_configFetcher)
}
}
@@ -78,7 +73,6 @@ class MainActivity : AppCompatActivity(), OnNavigationItemSelectedListener {
}
override fun onNavigationItemSelected(item: MenuItem): Boolean {
- // Handle navigation view item clicks here.
when (item.itemId) {
R.id.nav_order -> nav.navigate(R.id.action_global_order)
R.id.nav_history -> nav.navigate(R.id.action_global_merchantHistory)
@@ -89,18 +83,20 @@ class MainActivity : AppCompatActivity(), OnNavigationItemSelectedListener {
}
override fun onBackPressed() {
+ val currentDestination = nav.currentDestination?.id
if (drawer_layout.isDrawerOpen(START)) {
drawer_layout.closeDrawer(START)
- } else if (nav.currentDestination?.id == R.id.merchantSettings && model.configManager.needsConfig()) {
+ } else if (currentDestination == R.id.nav_settings && !model.configManager.config.isValid()) {
// we are in the configuration screen and need a config to continue
val intent = Intent(ACTION_MAIN).apply {
addCategory(CATEGORY_HOME)
flags = FLAG_ACTIVITY_NEW_TASK
}
startActivity(intent)
- } else if (nav.currentDestination?.id == R.id.order) {
+ } else if (currentDestination == R.id.nav_order) {
if (reallyExit) super.onBackPressed()
else {
+ // this closes the app and causes orders to be lost, so let's confirm first
reallyExit = true
Toast.makeText(this, R.string.toast_back_to_exit, LENGTH_SHORT).show()
Handler().postDelayed({ reallyExit = false }, 3000)