X-Git-Url: https://git.ktnx.net/?a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fnet%2Fktnx%2Fmobileledger%2Fui%2Fpatterns%2FPatternsActivity.java;h=c9a41280f2049f9351325a87a76d2603d3c1f857;hb=b0404689e0dbb2b08f02deca7ee5d14636a3baa6;hp=43a6227df1c8e20e951f59c964a1a4057f40aae1;hpb=a1d0db823989bbc210758351ff1d1bf0ea0ddffa;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..c9a41280 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,62 @@ 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 -> onEditPattern(null)); + 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); -// snackbar.setAction("Action", v -> snackbar.dismiss()); - snackbar.show(); + public void onEditPattern(Long id) { + if (id == null){ + navController.navigate(R.id.action_patternListFragment_to_patternDetailsFragment); + } + else{ + Bundle bundle = new Bundle(); + bundle.putLong(PatternDetailsFragment.ARG_PATTERN_ID, id); + navController.navigate(R.id.action_patternListFragment_to_patternDetailsFragment, bundle); + } } @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(); + 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