X-Git-Url: https://git.ktnx.net/?a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fnet%2Fktnx%2Fmobileledger%2Fui%2Fpatterns%2FPatternsActivity.java;h=793a2be207f52cf8619ec3019e66c2f4c75698bd;hb=1b2864fc4b0cc6cba52f6f3addefd8ad95c24705;hp=8e57a2e751730f506f3aebf41c07a17670832760;hpb=9fad5003ac30c3e4f9d073e04f4569aeb31779b2;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 8e57a2e7..793a2be2 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,19 +19,25 @@ package net.ktnx.mobileledger.ui.patterns; import android.os.Bundle; import android.view.Menu; -import android.view.View; -import androidx.recyclerview.widget.LinearLayoutManager; -import androidx.recyclerview.widget.RecyclerView; - -import com.google.android.material.snackbar.Snackbar; +import androidx.appcompat.app.ActionBar; +import androidx.lifecycle.ViewModelProvider; +import androidx.lifecycle.ViewModelStoreOwner; +import androidx.navigation.NavController; +import androidx.navigation.fragment.NavHostFragment; import net.ktnx.mobileledger.R; import net.ktnx.mobileledger.databinding.ActivityPatternsBinding; import net.ktnx.mobileledger.ui.activity.CrashReportingActivity; +import net.ktnx.mobileledger.utils.Logger; -public class PatternsActivity extends CrashReportingActivity { +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 public boolean onCreateOptionsMenu(Menu menu) { super.onCreateOptionsMenu(menu); @@ -42,24 +48,61 @@ public class PatternsActivity extends CrashReportingActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - ActivityPatternsBinding b = ActivityPatternsBinding.inflate(getLayoutInflater()); + b = ActivityPatternsBinding.inflate(getLayoutInflater()); setContentView(b.getRoot()); setSupportActionBar(b.toolbar); - b.toolbarLayout.setTitle(getTitle()); + // 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(); - b.fab.setOnClickListener(this::fabClicked); + 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(); + } + }); - PatternsRecyclerViewAdapter modelAdapter = new PatternsRecyclerViewAdapter(); + b.toolbarLayout.setTitle(getString(R.string.title_activity_patterns)); - b.patternList.setAdapter(modelAdapter); - PatternsModel.retrievePatterns(modelAdapter); - LinearLayoutManager llm = new LinearLayoutManager(this); - llm.setOrientation(RecyclerView.VERTICAL); - b.patternList.setLayoutManager(llm); + b.fabAdd.setOnClickListener(v -> onEditPattern(null)); + b.fabSave.setOnClickListener(v -> onSavePattern()); + } + @Override + public void onEditPattern(Long id) { + if (id == null) { + navController.navigate(R.id.action_patternListFragment_to_patternDetailsFragment); + b.toolbarLayout.setTitle(getString(R.string.title_new_pattern)); + } + else { + Bundle bundle = new Bundle(); + bundle.putLong(PatternDetailsFragment.ARG_PATTERN_ID, id); + navController.navigate(R.id.action_patternListFragment_to_patternDetailsFragment, + bundle); + b.toolbarLayout.setTitle(getString(R.string.title_edit_pattern)); + } + } + @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.navigateUp(); } - private void fabClicked(View view) { - Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_INDEFINITE) - .setAction("Action", null) - .show(); + public NavController getNavController() { + return navController; } } \ No newline at end of file