X-Git-Url: https://git.ktnx.net/?p=mobile-ledger.git;a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fnet%2Fktnx%2Fmobileledger%2Fui%2Factivity%2FNewTransactionActivity.java;h=89362d777b699780a508fe169a1b5045b2f5d9b2;hp=6287ac8eca11662d764e8964ecfb86b8fa1ca3c2;hb=3836149c3d9253d6298adddcc6d091f65d98d349;hpb=30d7068474c9a3c8b1d0763f23950fe75ac9ea03 diff --git a/app/src/main/java/net/ktnx/mobileledger/ui/activity/NewTransactionActivity.java b/app/src/main/java/net/ktnx/mobileledger/ui/activity/NewTransactionActivity.java index 6287ac8e..89362d77 100644 --- a/app/src/main/java/net/ktnx/mobileledger/ui/activity/NewTransactionActivity.java +++ b/app/src/main/java/net/ktnx/mobileledger/ui/activity/NewTransactionActivity.java @@ -17,13 +17,14 @@ package net.ktnx.mobileledger.ui.activity; -import android.os.AsyncTask; import android.os.Bundle; import android.util.TypedValue; import android.view.Menu; import android.view.MenuItem; +import android.view.View; import androidx.appcompat.widget.Toolbar; +import androidx.lifecycle.ViewModelProvider; import androidx.navigation.NavController; import androidx.navigation.Navigation; @@ -38,16 +39,10 @@ import java.util.Objects; import static net.ktnx.mobileledger.utils.Logger.debug; -/* - * TODO: nicer progress while transaction is submitted - * TODO: reports - * TODO: get rid of the custom session/cookie and auth code? - * (the last problem with the POST was the missing content-length header) - * */ - public class NewTransactionActivity extends ProfileThemedActivity implements TaskCallback, NewTransactionFragment.OnNewTransactionFragmentInteractionListener { private NavController navController; + private NewTransactionModel model; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -62,6 +57,8 @@ public class NewTransactionActivity extends ProfileThemedActivity implements Tas Objects.requireNonNull(getSupportActionBar()) .setDisplayHomeAsUpEnabled(true); + + model = new ViewModelProvider(this).get(NewTransactionModel.class); } @Override protected void initProfile() { @@ -83,23 +80,18 @@ public class NewTransactionActivity extends ProfileThemedActivity implements Tas } @Override public boolean onOptionsItemSelected(MenuItem item) { - switch (item.getItemId()) { - case android.R.id.home: - finish(); - return true; + if (item.getItemId() == android.R.id.home) { + finish(); + return true; } return super.onOptionsItemSelected(item); } - @Override - protected void onStart() { - super.onStart(); - // FIXME if (tvDescription.getText().toString().isEmpty()) tvDescription.requestFocus(); - } public void onTransactionSave(LedgerTransaction tr) { navController.navigate(R.id.action_newTransactionFragment_to_newTransactionSavingFragment); try { - SendTransactionTask saver = new SendTransactionTask(this, mProfile); + SendTransactionTask saver = + new SendTransactionTask(this, mProfile, model.getSimulateSave()); saver.execute(tr); } catch (Exception e) { @@ -121,8 +113,16 @@ public class NewTransactionActivity extends ProfileThemedActivity implements Tas if (BuildConfig.DEBUG) { menu.findItem(R.id.action_simulate_crash) .setVisible(true); + menu.findItem(R.id.action_simulate_save) + .setVisible(true); } + model.observeSimulateSave(this, state -> { + menu.findItem(R.id.action_simulate_save) + .setChecked(state); + findViewById(R.id.simulationLabel).setVisibility(state ? View.VISIBLE : View.GONE); + }); + return true; } @@ -136,17 +136,13 @@ public class NewTransactionActivity extends ProfileThemedActivity implements Tas Bundle b = new Bundle(); if (error != null) { b.putString("error", error); - navController.navigate(R.id.action_newTransactionSavingFragment_Failure); + navController.navigate(R.id.action_newTransactionSavingFragment_Failure, b); } else navController.navigate(R.id.action_newTransactionSavingFragment_Success, b); } - - private class AsyncCrasher extends AsyncTask { - @Override - protected Void doInBackground(Void... voids) { - throw new RuntimeException("Simulated crash"); - } + public void toggleSimulateSave(MenuItem item) { + model.toggleSimulateSave(); } }