X-Git-Url: https://git.ktnx.net/?a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fnet%2Fktnx%2Fmobileledger%2Fui%2Fnew_transaction%2FNewTransactionActivity.java;h=3e1772608fd931f652258204f9ccc3bd6558d8ef;hb=2840b585bf86dc12ae920113bf8fb723d4883cca;hp=ab28ca16d05a2ff43d5d57404692c17a8f021177;hpb=346b3c8e74a12b1822239481f807479fa81fc706;p=mobile-ledger.git diff --git a/app/src/main/java/net/ktnx/mobileledger/ui/new_transaction/NewTransactionActivity.java b/app/src/main/java/net/ktnx/mobileledger/ui/new_transaction/NewTransactionActivity.java index ab28ca16..3e177260 100644 --- a/app/src/main/java/net/ktnx/mobileledger/ui/new_transaction/NewTransactionActivity.java +++ b/app/src/main/java/net/ktnx/mobileledger/ui/new_transaction/NewTransactionActivity.java @@ -17,6 +17,7 @@ package net.ktnx.mobileledger.ui.new_transaction; +import android.content.Context; import android.content.Intent; import android.database.AbstractCursor; import android.database.Cursor; @@ -50,6 +51,7 @@ import net.ktnx.mobileledger.db.TemplateHeader; import net.ktnx.mobileledger.model.Data; import net.ktnx.mobileledger.model.LedgerTransaction; import net.ktnx.mobileledger.model.MatchedTemplate; +import net.ktnx.mobileledger.ui.FabManager; import net.ktnx.mobileledger.ui.QR; import net.ktnx.mobileledger.ui.activity.ProfileThemedActivity; import net.ktnx.mobileledger.ui.templates.TemplatesActivity; @@ -67,11 +69,13 @@ import static net.ktnx.mobileledger.utils.Logger.debug; public class NewTransactionActivity extends ProfileThemedActivity implements TaskCallback, NewTransactionFragment.OnNewTransactionFragmentInteractionListener, - QR.QRScanTrigger, QR.QRScanResultReceiver, DescriptionSelectedCallback { + QR.QRScanTrigger, QR.QRScanResultReceiver, DescriptionSelectedCallback, + FabManager.FabHandler { private NavController navController; private NewTransactionModel model; private ActivityResultLauncher qrScanLauncher; private ActivityNewTransactionBinding b; + private FabManager fabManager; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -93,20 +97,20 @@ public class NewTransactionActivity extends ProfileThemedActivity qrScanLauncher = QR.registerLauncher(this, this); + fabManager = new FabManager(b.fabAdd); + model.isSubmittable() .observe(this, isSubmittable -> { if (isSubmittable) { - b.fabAdd.show(); + fabManager.showFab(); } else { - b.fabAdd.hide(); + fabManager.hideFab(); } }); // viewModel.checkTransactionSubmittable(listAdapter); b.fabAdd.setOnClickListener(v -> onFabPressed()); - - } @Override protected void initProfile() { @@ -412,11 +416,25 @@ public class NewTransactionActivity extends ProfileThemedActivity }); } private void onFabPressed() { - b.fabAdd.hide(); + fabManager.hideFab(); Misc.hideSoftKeyboard(this); LedgerTransaction tr = model.constructLedgerTransaction(); onTransactionSave(tr); } + @Override + public Context getContext() { + return this; + } + @Override + public void showManagedFab() { + if (Objects.requireNonNull(model.isSubmittable() + .getValue())) + fabManager.showFab(); + } + @Override + public void hideManagedFab() { + fabManager.hideFab(); + } }