]> git.ktnx.net Git - mobile-ledger.git/blobdiff - app/src/main/java/net/ktnx/mobileledger/ui/patterns/PatternsActivity.java
drop large sample text
[mobile-ledger.git] / app / src / main / java / net / ktnx / mobileledger / ui / patterns / PatternsActivity.java
index c787769481cd6078759e899484f4d83236986890..945123d95e32c5990be4d6ae305f510623383db0 100644 (file)
@@ -19,14 +19,12 @@ package net.ktnx.mobileledger.ui.patterns;
 
 import android.os.Bundle;
 import android.view.Menu;
+import android.view.MenuItem;
 
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
 import androidx.appcompat.app.ActionBar;
 import androidx.lifecycle.ViewModelProvider;
 import androidx.lifecycle.ViewModelStoreOwner;
 import androidx.navigation.NavController;
-import androidx.navigation.NavDestination;
 import androidx.navigation.fragment.NavHostFragment;
 
 import net.ktnx.mobileledger.R;
@@ -64,37 +62,49 @@ public class PatternsActivity extends CrashReportingActivity
                 getSupportFragmentManager().findFragmentById(R.id.fragment_container));
         navController = navHostFragment.getNavController();
 
-        navController.addOnDestinationChangedListener(
-                new NavController.OnDestinationChangedListener() {
-                    @Override
-                    public void onDestinationChanged(@NonNull NavController controller,
-                                                     @NonNull NavDestination destination,
-                                                     @Nullable Bundle arguments) {
-                        if (destination.getId() == R.id.patternListFragment) {
-                            b.fabAdd.show();
-                            b.fabSave.hide();
-                        }
-                        if (destination.getId() == R.id.patternDetailsFragment) {
-                            b.fabAdd.hide();
-                            b.fabSave.show();
-                        }
-                    }
-                });
+        navController.addOnDestinationChangedListener((controller, destination, arguments) -> {
+            if (destination.getId() == R.id.patternListFragment) {
+                b.fabAdd.show();
+                b.fabSave.hide();
+                b.toolbarLayout.setTitle(getString(R.string.title_activity_patterns));
+            }
+            if (destination.getId() == R.id.patternDetailsFragment) {
+                b.fabAdd.hide();
+                b.fabSave.show();
+            }
+        });
 
         b.toolbarLayout.setTitle(getString(R.string.title_activity_patterns));
 
         b.fabAdd.setOnClickListener(v -> onEditPattern(null));
         b.fabSave.setOnClickListener(v -> onSavePattern());
     }
+    @Override
+    public boolean onOptionsItemSelected(MenuItem item) {
+        if (item.getItemId() == android.R.id.home) {
+            if (navController.getCurrentDestination()
+                             .getId() == R.id.patternDetailsFragment)
+                navController.popBackStack();
+            else
+                finish();
+
+            return true;
+        }
+        return super.onOptionsItemSelected(item);
+    }
+
     @Override
     public void onEditPattern(Long id) {
-        if (id == null){
+        if (id == null) {
             navController.navigate(R.id.action_patternListFragment_to_patternDetailsFragment);
+            b.toolbarLayout.setTitle(getString(R.string.title_new_pattern));
         }
-        else{
+        else {
             Bundle bundle = new Bundle();
             bundle.putLong(PatternDetailsFragment.ARG_PATTERN_ID, id);
-            navController.navigate(R.id.action_patternListFragment_to_patternDetailsFragment, bundle);
+            navController.navigate(R.id.action_patternListFragment_to_patternDetailsFragment,
+                    bundle);
+            b.toolbarLayout.setTitle(getString(R.string.title_edit_pattern));
         }
     }
     @Override