]> git.ktnx.net Git - mobile-ledger.git/blobdiff - app/src/main/java/net/ktnx/mobileledger/ui/templates/TemplatesActivity.java
typo in method name
[mobile-ledger.git] / app / src / main / java / net / ktnx / mobileledger / ui / templates / TemplatesActivity.java
index b277489e4eccc0b03af7c169ed9a33ae166c81aa..3f9535ceb6b97403fde821f38e5aeb6977741881 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright © 2021 Damyan Ivanov.
+ * Copyright © 2022 Damyan Ivanov.
  * This file is part of MoLe.
  * MoLe is free software: you can distribute it and/or modify it
  * under the term of the GNU General Public License as published by
@@ -17,6 +17,7 @@
 
 package net.ktnx.mobileledger.ui.templates;
 
+import android.content.Context;
 import android.os.Bundle;
 import android.view.MenuItem;
 
@@ -37,6 +38,7 @@ import net.ktnx.mobileledger.dao.TemplateHeaderDAO;
 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;
@@ -45,11 +47,13 @@ import java.util.Objects;
 
 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);
@@ -75,22 +79,27 @@ public class TemplatesActivity extends CrashReportingActivity
 
         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) {
@@ -110,20 +119,20 @@ public class TemplatesActivity extends CrashReportingActivity
     public void onDuplicateTemplate(long id) {
         DB.get()
           .getTemplateDAO()
-          .duplicateTemplateWitAccounts(id, null);
+          .duplicateTemplateWithAccounts(id, null);
     }
     @Override
     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
@@ -145,7 +154,7 @@ public class TemplatesActivity extends CrashReportingActivity
         TemplateHeaderDAO dao = DB.get()
                                   .getTemplateDAO();
 
-        dao.getTemplateWitAccountsAsync(templateId, template -> {
+        dao.getTemplateWithAccountsAsync(templateId, template -> {
             TemplateWithAccounts copy = TemplateWithAccounts.from(template);
             dao.deleteAsync(template.header, () -> {
                 navController.popBackStack(R.id.templateListFragment, false);
@@ -170,4 +179,16 @@ public class TemplatesActivity extends CrashReportingActivity
     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