new transaction: dynamically add all of the account rows, even initial ones
authorDamyan Ivanov <dam+mobileledger@ktnx.net>
Sat, 21 Sep 2019 12:59:41 +0000 (15:59 +0300)
committerDamyan Ivanov <dam+mobileledger@ktnx.net>
Sat, 21 Sep 2019 12:59:41 +0000 (15:59 +0300)
this ensures that all the row's properties (incl. its contents) are uniform

app/src/main/java/net/ktnx/mobileledger/ui/activity/NewTransactionActivity.java
app/src/main/res/layout/content_new_transaction.xml

index c39ec9a..d37f4b5 100644 (file)
@@ -111,16 +111,9 @@ public class NewTransactionActivity extends ProfileThemedActivity
 
         Objects.requireNonNull(getSupportActionBar()).setDisplayHomeAsUpEnabled(true);
         table = findViewById(R.id.new_transaction_accounts_table);
-        for (int i = 0; i < table.getChildCount(); i++) {
-            TableRow row = (TableRow) table.getChildAt(i);
-            AutoCompleteTextView tvAccountName = (AutoCompleteTextView) row.getChildAt(0);
-            TextView tvAmount = (TextView) row.getChildAt(1);
-            hookSwipeListener(row);
-            MLDB.hookAutocompletionAdapter(this, tvAccountName, MLDB.ACCOUNTS_TABLE, "name", true,
-                    tvAmount, null, mProfile);
-            hookTextChangeListener(tvAccountName);
-            hookTextChangeListener(tvAmount);
-//            debug("swipe", "hooked to row "+i);
+
+        while (table.getChildCount() < 2) {
+            doAddAccountRow(false);
         }
     }
     @Override
@@ -343,8 +336,15 @@ public class NewTransactionActivity extends ProfileThemedActivity
         amt.setSelectAllOnFocus(true);
 
         // forward navigation support
-        final TableRow last_row = (TableRow) table.getChildAt(table.getChildCount() - 1);
-        final TextView last_amt = (TextView) last_row.getChildAt(1);
+        TextView last_amt;
+        int rows = table.getChildCount();
+        if (rows > 0) {
+            final TableRow last_row = (TableRow) table.getChildAt(rows - 1);
+            last_amt = (TextView) last_row.getChildAt(1);
+        }
+        else {
+            last_amt = tvDescription;
+        }
         last_amt.setNextFocusForwardId(acc.getId());
         last_amt.setNextFocusRightId(acc.getId());
         last_amt.setImeOptions(EditorInfo.IME_ACTION_NEXT);
@@ -543,7 +543,6 @@ public class NewTransactionActivity extends ProfileThemedActivity
                     "transaction %d with description %s", profileUUID, transactionId, description));
 
             tr = profile.loadTransaction(transactionId);
-            table = findViewById(R.id.new_transaction_accounts_table);
             ArrayList<LedgerTransactionAccount> accounts = tr.getAccounts();
             TableRow firstNegative = null;
             int negativeCount = 0;
index 21b4252..e8b356b 100644 (file)
                 android:id="@+id/new_transaction_accounts_table"
                 android:animateLayoutChanges="true"
                 android:layout_width="match_parent"
-                android:layout_height="match_parent">
-
-                <TableRow
-                    android:layout_width="match_parent"
-                    android:layout_height="match_parent">
-
-                    <AutoCompleteTextView
-                        android:id="@+id/new_transaction_acc_1"
-                        android:layout_width="match_parent"
-                        android:layout_height="wrap_content"
-                        android:layout_gravity="bottom"
-                        android:layout_weight="9"
-                        android:width="0dp"
-                        android:accessibilityTraversalAfter="@+id/new_transaction_description"
-                        android:accessibilityTraversalBefore="@+id/new_transaction_amt_1"
-                        android:hint="@string/new_transaction_account_hint"
-                        android:imeOptions="actionNext"
-                        android:nextFocusLeft="@+id/new_transaction_description"
-                        android:nextFocusRight="@+id/new_transaction_amt_1"
-                        android:nextFocusUp="@+id/new_transaction_description"
-                        android:nextFocusDown="@+id/new_transaction_amt_1"
-                        android:nextFocusForward="@+id/new_transaction_amt_1"
-                        android:singleLine="true" />
-
-                    <EditText
-                        android:id="@+id/new_transaction_amt_1"
-                        android:layout_width="wrap_content"
-                        android:layout_height="match_parent"
-                        android:layout_weight="1"
-                        android:width="0dp"
-                        android:hint="@string/new_transaction_amount_hint"
-                        android:imeOptions="actionNext"
-                        android:inputType="numberDecimal|numberSigned"
-                        android:minWidth="40dp"
-                        android:accessibilityTraversalAfter="@+id/new_transaction_acc_1"
-                        android:accessibilityTraversalBefore="@+id/new_transaction_acc_2"
-                        android:nextFocusLeft="@+id/new_transaction_acc_1"
-                        android:nextFocusRight="@+id/new_transaction_acc_2"
-                        android:nextFocusUp="@+id/new_transaction_acc_1"
-                        android:nextFocusDown="@+id/new_transaction_acc_2"
-                        android:nextFocusForward="@+id/new_transaction_acc_2"
-                        android:textAlignment="viewEnd" />
-                </TableRow>
-
-                <TableRow
-                    android:layout_width="match_parent"
-                    android:layout_height="match_parent">
-
-                    <AutoCompleteTextView
-                        android:id="@+id/new_transaction_acc_2"
-                        android:layout_width="match_parent"
-                        android:layout_height="wrap_content"
-                        android:layout_gravity="bottom"
-                        android:layout_weight="9"
-                        android:width="0dp"
-                        android:accessibilityTraversalAfter="@+id/new_transaction_amt_1"
-                        android:accessibilityTraversalBefore="@+id/new_transaction_amt_2"
-                        android:hint="@string/new_transaction_account_hint"
-                        android:imeOptions="actionNext"
-                        android:nextFocusLeft="@+id/new_transaction_amt_1"
-                        android:nextFocusRight="@+id/new_transaction_amt_2"
-                        android:nextFocusUp="@+id/new_transaction_acc_1"
-                        android:nextFocusDown="@+id/new_transaction_amt_2"
-                        android:nextFocusForward="@+id/new_transaction_amt_2"
-                        android:singleLine="true" />
-
-                    <EditText
-                        android:id="@+id/new_transaction_amt_2"
-                        android:layout_width="wrap_content"
-                        android:layout_height="match_parent"
-                        android:layout_gravity="bottom"
-                        android:layout_weight="1"
-                        android:width="0dp"
-                        android:hint="@string/new_transaction_amount_hint"
-                        android:imeOptions="actionDone"
-                        android:inputType="numberDecimal|numberSigned"
-                        android:minWidth="40dp"
-                        android:accessibilityTraversalAfter="@+id/new_transaction_acc_1"
-                        android:nextFocusLeft="@+id/new_transaction_acc_2"
-                        android:nextFocusUp="@+id/new_transaction_amt_1"
-                        android:textAlignment="viewEnd" />
-                </TableRow>
-
-            </TableLayout>
+                android:layout_height="match_parent"/>
 
             <FrameLayout
                 android:layout_width="match_parent"