X-Git-Url: https://git.ktnx.net/?a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fnet%2Fktnx%2Fmobileledger%2Fui%2Fpatterns%2FPatternsActivity.java;h=da258d48a7a0ec12425802c1d61b26f0f8f766fc;hb=4d2ce14d526978de65113314cc50ab5ecf9c7d09;hp=43a6227df1c8e20e951f59c964a1a4057f40aae1;hpb=7ab7cfc1e7a64680541ed7e46e4d03868e4ff2f4;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 43a6227d..da258d48 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 @@ -20,14 +20,19 @@ package net.ktnx.mobileledger.ui.patterns; import android.os.Bundle; import android.view.Menu; +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 com.google.android.material.snackbar.Snackbar; - import net.ktnx.mobileledger.R; import net.ktnx.mobileledger.databinding.ActivityPatternsBinding; import net.ktnx.mobileledger.ui.activity.CrashReportingActivity; +import net.ktnx.mobileledger.utils.Logger; import java.util.Objects; @@ -46,27 +51,66 @@ public class PatternsActivity extends CrashReportingActivity protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); b = ActivityPatternsBinding.inflate(getLayoutInflater()); - setContentView(b.fragmentContainer); + setContentView(b.getRoot()); + setSupportActionBar(b.toolbar); + // Show the Up button in the action bar. + ActionBar actionBar = getSupportActionBar(); + if (actionBar != null) { + actionBar.setDisplayHomeAsUpEnabled(true); + } NavHostFragment navHostFragment = (NavHostFragment) Objects.requireNonNull( 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(); + } + } + }); + + b.toolbarLayout.setTitle(getString(R.string.title_activity_patterns)); + + b.fabAdd.setOnClickListener(v -> onNewPattern()); + b.fabSave.setOnClickListener(v -> onSavePattern()); } @Override public void onNewPattern() { -// navController.navigate - final Snackbar snackbar = - Snackbar.make(b.fragmentContainer, "New pattern action coming up soon", - Snackbar.LENGTH_INDEFINITE); + navController.navigate(R.id.action_patternListFragment_to_patternDetailsFragment); +// final Snackbar snackbar = +// Snackbar.make(b.fragmentContainer, "New pattern action coming up soon", +// Snackbar.LENGTH_INDEFINITE); // snackbar.setAction("Action", v -> snackbar.dismiss()); - snackbar.show(); +// snackbar.show(); } @Override public void onEditPattern(int id) { - final Snackbar snackbar = - Snackbar.make(b.fragmentContainer, "One Edit pattern action coming up soon", - Snackbar.LENGTH_INDEFINITE); -// snackbar.setAction("Action", v -> snackbar.dismiss()); - snackbar.show(); + Bundle bundle = new Bundle(); + bundle.putInt(PatternDetailsFragment.ARG_PATTERN_ID, id); + navController.navigate(R.id.action_patternListFragment_to_patternDetailsFragment, bundle); + } + @Override + public void onSavePattern() { + final ViewModelStoreOwner viewModelStoreOwner = + navController.getViewModelStoreOwner(R.id.pattern_list_navigation); + PatternDetailsViewModel model = + new ViewModelProvider(viewModelStoreOwner).get(PatternDetailsViewModel.class); + Logger.debug("flow", "PatternsActivity.onSavePattern(): model=" + model); + model.onSavePattern(); + navController.navigate(R.id.patternListFragment); + } + public NavController getNavController() { + return navController; } } \ No newline at end of file