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=21cfad4a1d7aa2b2dc532bae655f80d91f32199c;hp=98d4268063ce0f0903e5e51f25cac71307630701;hb=b8024af6cd622a2c9b1e016b7be1238ad7ddbcf0;hpb=ef4785fab2aeb1d90d62405402dc9914c25ac1bc 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 98d42680..21cfad4a 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() { @@ -99,7 +96,8 @@ public class NewTransactionActivity extends ProfileThemedActivity implements Tas 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 +119,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; } @@ -141,12 +147,8 @@ public class NewTransactionActivity extends ProfileThemedActivity implements Tas 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(); } }