]> git.ktnx.net Git - mobile-ledger.git/blobdiff - app/src/main/java/net/ktnx/mobileledger/ui/activity/NewTransactionItemsAdapter.java
New transaction: when toggling editting, include the head row
[mobile-ledger.git] / app / src / main / java / net / ktnx / mobileledger / ui / activity / NewTransactionItemsAdapter.java
index 6844b6ce3d743f471db420ec7d1723dd33f1cd26..2466d70c2bc7621cbc35a99cd31bbb73ab579a51 100644 (file)
@@ -91,15 +91,18 @@ class NewTransactionItemsAdapter extends RecyclerView.Adapter<NewTransactionItem
         for (int i = 0; i < model.getAccountCount(); i++) {
             LedgerTransactionAccount acc = model.getAccount(i);
             if (!acc.getAccountName()
-                    .isEmpty()) return false;
-            if (acc.isAmountSet()) return false;
+                    .isEmpty())
+                return false;
+            if (acc.isAmountSet())
+                return false;
         }
 
         return true;
     }
     public void descriptionSelected(String description) {
         debug("descr selected", description);
-        if (!accountListIsEmpty()) return;
+        if (!accountListIsEmpty())
+            return;
 
         String accFilter = mProfile.getPreferredAccountsFilter();
 
@@ -126,15 +129,18 @@ class NewTransactionItemsAdapter extends RecyclerView.Adapter<NewTransactionItem
         try (Cursor c = App.getDatabase()
                            .rawQuery(sql, params.toArray(new String[]{})))
         {
-            if (!c.moveToNext()) return;
+            if (!c.moveToNext())
+                return;
 
             String profileUUID = c.getString(0);
             int transactionId = c.getInt(1);
             LedgerTransaction tr;
             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));
+            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);
             ArrayList<LedgerTransactionAccount> accounts = tr.getAccounts();
@@ -179,11 +185,12 @@ class NewTransactionItemsAdapter extends RecyclerView.Adapter<NewTransactionItem
         model.setFocusedItem(1);
     }
     public void toggleAllEditing(boolean editable) {
-        for (int i = 0; i < model.getAccountCount(); i++) {
-            model.getItem(i + 1)
+        // item 0 is the header
+        for (int i = 0; i <= model.getAccountCount(); i++) {
+            model.getItem(i)
                  .setEditable(editable);
-            notifyItemChanged(i + 1);
-            // TODO perhaps do only one notification about the whole range [1…count]?
+            notifyItemChanged(i);
+            // TODO perhaps do only one notification about the whole range (notifyDatasetChanged)?
         }
     }
     public void reset() {