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=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..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 @@ -19,19 +19,27 @@ 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.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; 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 { + private ActivityPatternsBinding b; + private NavController navController; @Override public boolean onCreateOptionsMenu(Menu menu) { super.onCreateOptionsMenu(menu); @@ -42,24 +50,63 @@ 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( + 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(); + } + } + }); - 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); + } + else{ + Bundle bundle = new Bundle(); + bundle.putLong(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); } - 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