X-Git-Url: https://git.ktnx.net/?a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fnet%2Fktnx%2Fmobileledger%2Fui%2Fpatterns%2FPatternsActivity.java;h=945123d95e32c5990be4d6ae305f510623383db0;hb=0162f26f7b07bf2db15f5cb4026f94655f019618;hp=c9a41280f2049f9351325a87a76d2603d3c1f857;hpb=b0404689e0dbb2b08f02deca7ee5d14636a3baa6;p=mobile-ledger.git diff --git a/app/src/main/java/net/ktnx/mobileledger/ui/patterns/PatternsActivity.java b/app/src/main/java/net/ktnx/mobileledger/ui/patterns/PatternsActivity.java index c9a41280..945123d9 100644 --- a/app/src/main/java/net/ktnx/mobileledger/ui/patterns/PatternsActivity.java +++ b/app/src/main/java/net/ktnx/mobileledger/ui/patterns/PatternsActivity.java @@ -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; @@ -38,6 +36,7 @@ import java.util.Objects; public class PatternsActivity extends CrashReportingActivity implements PatternListFragment.OnPatternListFragmentInteractionListener { + public static final String ARG_ADD_PATTERN = "add-pattern"; private ActivityPatternsBinding b; private NavController navController; @Override @@ -63,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 @@ -104,7 +115,7 @@ public class PatternsActivity extends CrashReportingActivity new ViewModelProvider(viewModelStoreOwner).get(PatternDetailsViewModel.class); Logger.debug("flow", "PatternsActivity.onSavePattern(): model=" + model); model.onSavePattern(); - navController.navigate(R.id.patternListFragment); + navController.navigateUp(); } public NavController getNavController() { return navController;