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=28afff37ab283fba697d6c144d8f4e78f2a6009e;hp=b4716075d1c6474905cf6ece759983f25521766a;hb=c0a2a2d5aa42ad56f76dfe73ba10250e11e7f3fd;hpb=99c3bfb3451ebb1fc55d728d8d1741849cf789db 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 b4716075..28afff37 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; @@ -101,7 +100,7 @@ public class NewTransactionActivity extends ProfileThemedActivity }); tvDescription = findViewById(R.id.new_transaction_description); MLDB.hookAutocompletionAdapter(this, tvDescription, MLDB.DESCRIPTION_HISTORY_TABLE, - "description", false, findViewById(R.id.new_transaction_acc_1), this); + "description", false, findViewById(R.id.new_transaction_acc_1), this, mProfile); hookTextChangeListener(tvDescription); progress = findViewById(R.id.save_transaction_progress); @@ -116,7 +115,7 @@ public class NewTransactionActivity extends ProfileThemedActivity TextView tvAmount = (TextView) row.getChildAt(1); hookSwipeListener(row); MLDB.hookAutocompletionAdapter(this, tvAccountName, MLDB.ACCOUNTS_TABLE, "name", true, - tvAmount, null); + tvAmount, null, mProfile); hookTextChangeListener(tvAccountName); hookTextChangeListener(tvAmount); // Log.d("swipe", "hooked to row "+i); @@ -164,7 +163,7 @@ public class NewTransactionActivity extends ProfileThemedActivity Date date; if (dateString.isEmpty()) date = new Date(); else date = Globals.parseLedgerDate(dateString); - LedgerTransaction tr = new LedgerTransaction(date, tvDescription.getText().toString()); + LedgerTransaction tr = new LedgerTransaction(null, date, tvDescription.getText().toString(), mProfile); TableLayout table = findViewById(R.id.new_transaction_accounts_table); LedgerTransactionAccount emptyAmountAccount = null; @@ -362,7 +361,8 @@ public class NewTransactionActivity extends ProfileThemedActivity if (focus) acc.requestFocus(); hookSwipeListener(row); - MLDB.hookAutocompletionAdapter(this, acc, MLDB.ACCOUNTS_TABLE, "name", true, amt, null); + MLDB.hookAutocompletionAdapter(this, acc, MLDB.ACCOUNTS_TABLE, "name", true, amt, null, + mProfile); hookTextChangeListener(acc); hookTextChangeListener(amt); @@ -510,8 +510,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( @@ -537,28 +536,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);