]> git.ktnx.net Git - mobile-ledger.git/blobdiff - app/src/main/java/net/ktnx/mobileledger/ui/new_transaction/NewTransactionActivity.java
asynchronous profile initialisation
[mobile-ledger.git] / app / src / main / java / net / ktnx / mobileledger / ui / new_transaction / NewTransactionActivity.java
index 5bba06e1ddcf121d1d66c66f68d117f6a49d54b0..11d014d369bd983144220d76a6267846a92e6d9e 100644 (file)
@@ -72,6 +72,7 @@ public class NewTransactionActivity extends ProfileThemedActivity
         implements TaskCallback, NewTransactionFragment.OnNewTransactionFragmentInteractionListener,
         QR.QRScanTrigger, QR.QRScanResultReceiver, DescriptionSelectedCallback,
         FabManager.FabHandler {
+    final String TAG = "new-t-a";
     private NavController navController;
     private NewTransactionModel model;
     private ActivityResultLauncher<Void> qrScanLauncher;
@@ -115,16 +116,23 @@ public class NewTransactionActivity extends ProfileThemedActivity
     }
     @Override
     protected void initProfile() {
-        String profileUUID = getIntent().getStringExtra("profile_uuid");
+        long profileId = getIntent().getLongExtra(PARAM_PROFILE_ID, 0);
+        int profileHue = getIntent().getIntExtra(PARAM_THEME, -1);
 
-        if (profileUUID != null) {
-            mProfile = Data.getProfile(profileUUID);
-            if (mProfile == null)
-                finish();
-            Data.setCurrentProfile(mProfile);
+        if (profileHue < 0) {
+            Logger.debug(TAG, "Started with invalid/missing theme; quitting");
+            finish();
+            return;
         }
-        else
-            super.initProfile();
+
+        if (profileId <= 0) {
+            Logger.debug(TAG, "Started with invalid/missing profile_id; quitting");
+            finish();
+            return;
+        }
+
+        setupProfileColors(profileHue);
+        initProfile(profileId);
     }
     @Override
     public void finish() {
@@ -155,9 +163,10 @@ public class NewTransactionActivity extends ProfileThemedActivity
             navController.navigate(R.id.newTransactionFragment, b);
         }
     }
-    public void simulateCrash(MenuItem item) {
+    public boolean onSimulateCrashMenuItemClicked(MenuItem item) {
         debug("crash", "Will crash intentionally");
         new AsyncCrasher().execute();
+        return true;
     }
     public boolean onCreateOptionsMenu(Menu menu) {
         super.onCreateOptionsMenu(menu);
@@ -170,6 +179,11 @@ public class NewTransactionActivity extends ProfileThemedActivity
 
         MenuCompat.setGroupDividerEnabled(menu, true);
 
+        menu.findItem(R.id.action_simulate_save)
+            .setOnMenuItemClickListener(this::onToggleSimulateSaveMenuItemClicked);
+        menu.findItem(R.id.action_simulate_crash)
+            .setOnMenuItemClickListener(this::onSimulateCrashMenuItemClicked);
+
         model.getSimulateSave()
              .observe(this, state -> {
                  menu.findItem(R.id.action_simulate_save)
@@ -195,8 +209,9 @@ public class NewTransactionActivity extends ProfileThemedActivity
         else
             navController.navigate(R.id.action_newTransactionSavingFragment_Success, b);
     }
-    public void toggleSimulateSave(MenuItem item) {
+    public boolean onToggleSimulateSaveMenuItemClicked(MenuItem item) {
         model.toggleSimulateSave();
+        return true;
     }
 
     @Override
@@ -371,9 +386,9 @@ public class NewTransactionActivity extends ProfileThemedActivity
             }
             @Override
             public boolean onRow(@NonNull Cursor cursor) {
-                final String profileUUID = cursor.getString(0);
+                final long profileId = cursor.getLong(0);
                 final int transactionId = cursor.getInt(1);
-                runOnUiThread(() -> model.loadTransactionIntoModel(profileUUID, transactionId));
+                runOnUiThread(() -> model.loadTransactionIntoModel(profileId, transactionId));
                 return false; // limit 1, by the way
             }
             @Override
@@ -402,9 +417,9 @@ public class NewTransactionActivity extends ProfileThemedActivity
                             }
                             @Override
                             public boolean onRow(@NonNull Cursor cursor) {
-                                final String profileUUID = cursor.getString(0);
+                                final long profileId = cursor.getLong(0);
                                 final int transactionId = cursor.getInt(1);
-                                runOnUiThread(() -> model.loadTransactionIntoModel(profileUUID,
+                                runOnUiThread(() -> model.loadTransactionIntoModel(profileId,
                                         transactionId));
                                 return false;
                             }