X-Git-Url: https://git.ktnx.net/?a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fnet%2Fktnx%2Fmobileledger%2Fui%2Fnew_transaction%2FNewTransactionActivity.java;h=11d014d369bd983144220d76a6267846a92e6d9e;hb=fac0809065787fb473646db5770f4f2fae0d1e8f;hp=3e1772608fd931f652258204f9ccc3bd6558d8ef;hpb=2840b585bf86dc12ae920113bf8fb723d4883cca;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 3e177260..11d014d3 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 @@ -31,6 +31,7 @@ import android.view.View; import androidx.activity.result.ActivityResultLauncher; import androidx.annotation.NonNull; +import androidx.core.view.MenuCompat; import androidx.lifecycle.LiveData; import androidx.lifecycle.ViewModelProvider; import androidx.navigation.NavController; @@ -71,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 qrScanLauncher; @@ -114,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() { @@ -154,20 +163,26 @@ 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); + + if (!BuildConfig.DEBUG) + return true; + // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.new_transaction, menu); - if (BuildConfig.DEBUG) { - menu.findItem(R.id.action_simulate_crash) - .setVisible(true); - menu.findItem(R.id.action_simulate_save) - .setVisible(true); - } + 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 -> { @@ -194,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 @@ -370,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 @@ -401,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; }