]> git.ktnx.net Git - mobile-ledger.git/blobdiff - app/src/main/java/net/ktnx/mobileledger/ui/account_summary/AccountSummaryViewModel.java
fix transaction colouring to ignore delimiter items
[mobile-ledger.git] / app / src / main / java / net / ktnx / mobileledger / ui / account_summary / AccountSummaryViewModel.java
index 1afced05433820f0e565cabad3677ee522b97980..446df6a5cef700da2edb1108768841998a754ef9 100644 (file)
@@ -22,7 +22,6 @@ import android.content.Context;
 import android.content.res.Resources;
 import android.graphics.Typeface;
 import android.os.Build;
-import android.preference.PreferenceManager;
 import android.support.annotation.NonNull;
 import android.support.v7.widget.RecyclerView;
 import android.util.Log;
@@ -42,31 +41,29 @@ import net.ktnx.mobileledger.model.LedgerAccount;
 
 import java.util.ArrayList;
 
-import static net.ktnx.mobileledger.ui.activity.SettingsActivity.PREF_KEY_SHOW_ONLY_STARRED_ACCOUNTS;
-
 class AccountSummaryViewModel extends ViewModel {
-    void scheduleAccountListReload(Context context) {
-        boolean showingOnlyStarred = PreferenceManager.getDefaultSharedPreferences(context)
-                .getBoolean(PREF_KEY_SHOW_ONLY_STARRED_ACCOUNTS, false);
-
-        UAT task = new UAT();
-        task.execute(showingOnlyStarred);
-
-    }
     static void commitSelections(Context context) {
-        boolean showingOnlyStarred = PreferenceManager.getDefaultSharedPreferences(context)
-                .getBoolean(PREF_KEY_SHOW_ONLY_STARRED_ACCOUNTS, false);
         CAT task = new CAT();
-        //noinspection unchecked
-        task.execute(new CommitAccountsTaskParams(Data.accounts.get(), showingOnlyStarred));
+        task.execute(
+                new CommitAccountsTaskParams(Data.accounts.get(), Data.optShowOnlyStarred.get()));
+    }
+    void scheduleAccountListReload() {
+        UAT task = new UAT();
+        task.execute();
+
     }
+
     private static class UAT extends UpdateAccountsTask {
         @Override
         protected void onPostExecute(ArrayList<LedgerAccount> list) {
             super.onPostExecute(list);
-            if (list != null) Data.accounts.set(list);
+            if (list != null) {
+                Log.d("acc", "setting updated account list");
+                Data.accounts.set(list);
+            }
         }
     }
+
     private static class CAT extends CommitAccountsTask {
         @Override
         protected void onPostExecute(ArrayList<LedgerAccount> list) {
@@ -108,8 +105,8 @@ class AccountSummaryAdapter extends RecyclerView.Adapter<AccountSummaryAdapter.L
 
         if (position % 2 == 0) {
             if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) holder.row
-                    .setBackgroundColor(rm.getColor(R.color.table_row_even_bg, ctx.getTheme()));
-            else holder.row.setBackgroundColor(rm.getColor(R.color.table_row_even_bg));
+                    .setBackgroundColor(rm.getColor(R.color.table_row_dark_bg, ctx.getTheme()));
+            else holder.row.setBackgroundColor(rm.getColor(R.color.table_row_dark_bg));
         }
         else {
             if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) holder.row
@@ -153,15 +150,17 @@ class AccountSummaryAdapter extends RecyclerView.Adapter<AccountSummaryAdapter.L
     public void selectItem(int position) {
         LedgerAccount acc = Data.accounts.get().get(position);
         acc.toggleHiddenToBe();
-        toggleChildrenOf(acc, acc.isHiddenToBe());
-        notifyDataSetChanged();
+        toggleChildrenOf(acc, acc.isHiddenToBe(), position);
+        notifyItemChanged(position);
     }
-    void toggleChildrenOf(LedgerAccount parent, boolean hiddenToBe) {
+    void toggleChildrenOf(LedgerAccount parent, boolean hiddenToBe, int parentPosition) {
+        int i = parentPosition + 1;
         for (LedgerAccount acc : Data.accounts.get()) {
-            String acc_parent = acc.getParentName();
-            if ((acc_parent != null) && acc.getParentName().equals(parent.getName())) {
+            if (acc.getName().startsWith(parent.getName() + ":")) {
                 acc.setHiddenToBe(hiddenToBe);
-                toggleChildrenOf(acc, hiddenToBe);
+                notifyItemChanged(i);
+                toggleChildrenOf(acc, hiddenToBe, i);
+                i++;
             }
         }
     }