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=310232d2057a6fc9585d5f29ec0118adfce629b9;hp=845afea58c0ddc258b40ca6628fa98649553dcf6;hb=c4d80cd461385af945cd3e599ad2307ad5adcfe6;hpb=b18cd774a08afb15f9c3b953508b4823211c547b 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 845afea5..310232d2 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 @@ -56,7 +56,6 @@ import net.ktnx.mobileledger.model.MobileLedgerProfile; import net.ktnx.mobileledger.ui.DatePickerFragment; import net.ktnx.mobileledger.ui.OnSwipeTouchListener; import net.ktnx.mobileledger.utils.Globals; -import net.ktnx.mobileledger.utils.LockHolder; import net.ktnx.mobileledger.utils.MLDB; import java.text.ParseException; @@ -93,7 +92,7 @@ public class NewTransactionActivity extends ProfileThemedActivity setContentView(R.layout.activity_new_transaction); Toolbar toolbar = findViewById(R.id.toolbar); setSupportActionBar(toolbar); - toolbar.setSubtitle(Data.profile.get().getName()); + toolbar.setSubtitle(mProfile.getName()); tvDate = findViewById(R.id.new_transaction_date); tvDate.setOnFocusChangeListener((v, hasFocus) -> { @@ -122,7 +121,16 @@ public class NewTransactionActivity extends ProfileThemedActivity // Log.d("swipe", "hooked to row "+i); } } + @Override + protected void initProfile() { + String profileUUID = getIntent().getStringExtra("profile_uuid"); + if (profileUUID != null) { + mProfile = Data.getProfile(profileUUID); + if (mProfile == null) finish(); + } + else super.initProfile(); + } @Override public void finish() { super.finish(); @@ -149,7 +157,7 @@ public class NewTransactionActivity extends ProfileThemedActivity progress.setVisibility(View.VISIBLE); try { - saver = new SendTransactionTask(this); + saver = new SendTransactionTask(this, mProfile); String dateString = tvDate.getText().toString(); Date date; @@ -180,7 +188,8 @@ public class NewTransactionActivity extends ProfileThemedActivity tr.addAccount(item); } - if (emptyAmountAccount != null) emptyAmountAccount.setAmount(-emptyAmountAccountBalance); + if (emptyAmountAccount != null) + emptyAmountAccount.setAmount(-emptyAmountAccountBalance); saver.execute(tr); } catch (ParseException e) { @@ -500,8 +509,7 @@ public class NewTransactionActivity extends ProfileThemedActivity Log.d("descr selected", description); if (!inputStateIsInitial()) return; - MobileLedgerProfile currentProfile = Data.profile.get(); - String accFilter = currentProfile.getPreferredAccountsFilter(); + String accFilter = mProfile.getPreferredAccountsFilter(); ArrayList params = new ArrayList<>(); StringBuilder sb = new StringBuilder( @@ -527,28 +535,17 @@ public class NewTransactionActivity extends ProfileThemedActivity String profileUUID = c.getString(0); int transactionId = c.getInt(1); LedgerTransaction tr; - try (LockHolder lh = Data.profiles.lockForReading()) { - MobileLedgerProfile profile = null; - for (int i = 0; i < Data.profiles.size(); i++) { - MobileLedgerProfile p = Data.profiles.get(i); - if (p.getUuid().equals(profileUUID)) { - profile = p; - break; - } - } - if (profile == null) throw new RuntimeException(String.format( - "Unable to find profile %s, which is supposed to contain " + - "transaction %d with description %s", profileUUID, transactionId, - description)); + MobileLedgerProfile profile = Data.getProfile(profileUUID); + if (profile == null) throw new RuntimeException(String.format( + "Unable to find profile %s, which is supposed to contain " + + "transaction %d with description %s", profileUUID, transactionId, description)); - tr = profile.loadTransaction(transactionId); - } - int i = 0; + tr = profile.loadTransaction(transactionId); table = findViewById(R.id.new_transaction_accounts_table); ArrayList accounts = tr.getAccounts(); TableRow firstNegative = null; int negativeCount = 0; - for (i = 0; i < accounts.size(); i++) { + for (int i = 0; i < accounts.size(); i++) { LedgerTransactionAccount acc = accounts.get(i); TableRow row = (TableRow) table.getChildAt(i); if (row == null) row = doAddAccountRow(false);