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;
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;
}
@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() {
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 -> {
else
navController.navigate(R.id.action_newTransactionSavingFragment_Success, b);
}
- public void toggleSimulateSave(MenuItem item) {
+ public boolean onToggleSimulateSaveMenuItemClicked(MenuItem item) {
model.toggleSimulateSave();
+ return true;
}
@Override
}
@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
}
@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;
}