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;
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