package net.ktnx.mobileledger.ui.templates;
+import android.content.Context;
import android.os.Bundle;
import android.view.MenuItem;
import net.ktnx.mobileledger.databinding.ActivityTemplatesBinding;
import net.ktnx.mobileledger.db.DB;
import net.ktnx.mobileledger.db.TemplateWithAccounts;
+import net.ktnx.mobileledger.ui.FabManager;
import net.ktnx.mobileledger.ui.QR;
import net.ktnx.mobileledger.ui.activity.CrashReportingActivity;
import net.ktnx.mobileledger.utils.Logger;
public class TemplatesActivity extends CrashReportingActivity
implements TemplateListFragment.OnTemplateListFragmentInteractionListener,
- TemplateDetailsFragment.InteractionListener, QR.QRScanResultReceiver, QR.QRScanTrigger {
+ TemplateDetailsFragment.InteractionListener, QR.QRScanResultReceiver, QR.QRScanTrigger,
+ FabManager.FabHandler {
public static final String ARG_ADD_TEMPLATE = "add-template";
private ActivityTemplatesBinding b;
private NavController navController;
private ActivityResultLauncher<Void> qrScanLauncher;
+ private FabManager fabManager;
// @Override
// public boolean onCreateOptionsMenu(Menu menu) {
// super.onCreateOptionsMenu(menu);
navController.addOnDestinationChangedListener((controller, destination, arguments) -> {
if (destination.getId() == R.id.templateListFragment) {
- b.fabAdd.show();
- b.fabSave.hide();
- b.toolbarLayout.setTitle(getString(R.string.title_activity_templates));
+ b.toolbar.setTitle(getString(R.string.title_activity_templates));
+ b.fab.setImageResource(R.drawable.ic_add_white_24dp);
}
- if (destination.getId() == R.id.templateDetailsFragment) {
- b.fabAdd.hide();
- b.fabSave.show();
+ else {
+ b.fab.setImageResource(R.drawable.ic_save_white_24dp);
}
});
- b.toolbarLayout.setTitle(getString(R.string.title_activity_templates));
+ b.toolbar.setTitle(getString(R.string.title_activity_templates));
- b.fabAdd.setOnClickListener(v -> onEditTemplate(null));
- b.fabSave.setOnClickListener(v -> onSaveTemplate());
+ b.fab.setOnClickListener(v -> {
+ if (navController.getCurrentDestination()
+ .getId() == R.id.templateListFragment)
+ onEditTemplate(null);
+ else
+ onSaveTemplate();
+ });
qrScanLauncher = QR.registerLauncher(this, this);
+
+ fabManager = new FabManager(b.fab);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
public void onEditTemplate(Long id) {
if (id == null) {
navController.navigate(R.id.action_templateListFragment_to_templateDetailsFragment);
- b.toolbarLayout.setTitle(getString(R.string.title_new_template));
+ b.toolbar.setTitle(getString(R.string.title_new_template));
}
else {
Bundle bundle = new Bundle();
bundle.putLong(TemplateDetailsFragment.ARG_TEMPLATE_ID, id);
navController.navigate(R.id.action_templateListFragment_to_templateDetailsFragment,
bundle);
- b.toolbarLayout.setTitle(getString(R.string.title_edit_template));
+ b.toolbar.setTitle(getString(R.string.title_edit_template));
}
}
@Override
public void triggerQRScan() {
qrScanLauncher.launch(null);
}
+ @Override
+ public Context getContext() {
+ return this;
+ }
+ @Override
+ public void showManagedFab() {
+ fabManager.showFab();
+ }
+ @Override
+ public void hideManagedFab() {
+ fabManager.hideFab();
+ }
}
\ No newline at end of file