]> git.ktnx.net Git - mobile-ledger.git/commitdiff
provide a common routine for running something on the main thread
authorDamyan Ivanov <dam+mobileledger@ktnx.net>
Sat, 24 Apr 2021 17:08:38 +0000 (17:08 +0000)
committerDamyan Ivanov <dam+mobileledger@ktnx.net>
Sun, 25 Apr 2021 17:07:58 +0000 (17:07 +0000)
app/src/main/java/net/ktnx/mobileledger/dao/BaseDAO.java
app/src/main/java/net/ktnx/mobileledger/dao/TemplateHeaderDAO.java
app/src/main/java/net/ktnx/mobileledger/ui/account_summary/AccountSummaryAdapter.java
app/src/main/java/net/ktnx/mobileledger/ui/new_transaction/NewTransactionModel.java
app/src/main/java/net/ktnx/mobileledger/utils/Misc.java

index b6b23d1880ebb2c82fd368ee148d810e313f820f..b2d938c590741672316b5d6d0833af12de2512e6 100644 (file)
 package net.ktnx.mobileledger.dao;
 
 import android.os.AsyncTask;
-import android.os.Handler;
-import android.os.Looper;
 
 import androidx.annotation.NonNull;
 
+import net.ktnx.mobileledger.utils.Misc;
+
 public abstract class BaseDAO<T> {
     abstract long insertSync(T item);
     public void insert(T item) {
@@ -31,7 +31,7 @@ public abstract class BaseDAO<T> {
     public void insert(T item, @NonNull OnInsertedReceiver receiver) {
         AsyncTask.execute(() -> {
             long id = insertSync(item);
-            new Handler(Looper.getMainLooper()).post(() -> receiver.onInsert(id));
+            Misc.onMainThread(() -> receiver.onInsert(id));
         });
     }
 
@@ -42,7 +42,7 @@ public abstract class BaseDAO<T> {
     public void update(T item, @NonNull Runnable onDone) {
         AsyncTask.execute(() -> {
             updateSync(item);
-            new Handler(Looper.getMainLooper()).post(onDone);
+            Misc.onMainThread(onDone);
         });
     }
     abstract void deleteSync(T item);
@@ -52,7 +52,7 @@ public abstract class BaseDAO<T> {
     public void delete(T item, @NonNull Runnable onDone) {
         AsyncTask.execute(() -> {
             deleteSync(item);
-            new Handler(Looper.getMainLooper()).post(onDone);
+            Misc.onMainThread(onDone);
         });
     }
     interface OnInsertedReceiver {
index b14502c7b6e1c58a7f2495377a97c5b7eee00088..f72104b31514c5a4fbbfac813662c3588cb285f2 100644 (file)
@@ -18,8 +18,6 @@
 package net.ktnx.mobileledger.dao;
 
 import android.os.AsyncTask;
-import android.os.Handler;
-import android.os.Looper;
 
 import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
@@ -36,6 +34,7 @@ import net.ktnx.mobileledger.db.DB;
 import net.ktnx.mobileledger.db.TemplateAccount;
 import net.ktnx.mobileledger.db.TemplateHeader;
 import net.ktnx.mobileledger.db.TemplateWithAccounts;
+import net.ktnx.mobileledger.utils.Misc;
 
 import java.util.List;
 
@@ -47,9 +46,8 @@ public abstract class TemplateHeaderDAO {
     public void insertAsync(@NonNull TemplateHeader item, @Nullable Runnable callback) {
         AsyncTask.execute(() -> {
             insertSync(item);
-            if (callback != null) {
-                new Handler(Looper.getMainLooper()).post(callback);
-            }
+            if (callback != null)
+                Misc.onMainThread(callback);
         });
     }
 
@@ -62,7 +60,7 @@ public abstract class TemplateHeaderDAO {
     public void deleteAsync(@NonNull TemplateHeader item, @NonNull Runnable callback) {
         AsyncTask.execute(() -> {
             deleteSync(item);
-            new Handler(Looper.getMainLooper()).post(callback);
+            Misc.onMainThread(callback);
         });
     }
 
@@ -123,9 +121,8 @@ public abstract class TemplateHeaderDAO {
     public void insertAsync(@NonNull TemplateWithAccounts item, @Nullable Runnable callback) {
         AsyncTask.execute(() -> {
             insertSync(item);
-            if (callback != null) {
-                new Handler(Looper.getMainLooper()).post(callback);
-            }
+            if (callback != null)
+                Misc.onMainThread(callback);
         });
     }
     public void duplicateTemplateWitAccounts(@NonNull Long id, @Nullable
@@ -142,7 +139,7 @@ public abstract class TemplateHeaderDAO {
                 dupAcc.setId(accDao.insertSync(dupAcc));
             }
             if (callback != null)
-                new Handler(Looper.getMainLooper()).post(() -> callback.onResult(dup));
+                Misc.onMainThread(() -> callback.onResult(dup));
         });
     }
 
index 3a6130754db2dc8e2f064daf2516886733529287..6b8d0930f4920d10edfd62f7ec2e9df70a4faac2 100644 (file)
@@ -19,8 +19,6 @@ package net.ktnx.mobileledger.ui.account_summary;
 
 import android.content.res.Resources;
 import android.os.AsyncTask;
-import android.os.Handler;
-import android.os.Looper;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
@@ -162,7 +160,7 @@ public class AccountSummaryAdapter extends RecyclerView.Adapter<AccountSummaryAd
         return (position == 0) ? ITEM_TYPE_HEADER : ITEM_TYPE_ACCOUNT;
     }
     public void setAccounts(List<AccountListItem> newList) {
-        new Handler(Looper.getMainLooper()).post(() -> listDiffer.submitList(newList));
+        Misc.onMainThread(() -> listDiffer.submitList(newList));
     }
     static class Change {
         static final int NAME = 1;
index 7ff061a6ea30994bb15437d3297ee4683334f795..ad9c75cd87282307581f5679d5825095734e4110 100644 (file)
@@ -18,8 +18,6 @@
 package net.ktnx.mobileledger.ui.new_transaction;
 
 import android.annotation.SuppressLint;
-import android.os.Handler;
-import android.os.Looper;
 import android.text.TextUtils;
 
 import androidx.annotation.NonNull;
@@ -301,7 +299,7 @@ public class NewTransactionModel extends ViewModel {
                   newItems.add(accRow);
               }
 
-              new Handler(Looper.getMainLooper()).post(() -> replaceItems(newItems));
+              Misc.onMainThread(() -> replaceItems(newItems));
           });
     }
     private int extractIntFromMatches(MatchResult m, Integer group, Integer literal) {
@@ -523,7 +521,7 @@ public class NewTransactionModel extends ViewModel {
             moveItemLast(newList, singlePositiveIndex);
         }
 
-        new Handler(Looper.getMainLooper()).post(() -> {
+        Misc.onMainThread(() -> {
             setItems(newList);
             noteFocusChanged(1, FocusedElement.Amount);
         });
index 197fe6d0d1fbbc2645ef7666c2f332bcd01e2c29..349a04a5d9866e416cbb0c29216dc852281f255d 100644 (file)
@@ -19,6 +19,8 @@ package net.ktnx.mobileledger.utils;
 
 import android.app.Activity;
 import android.content.res.Configuration;
+import android.os.Handler;
+import android.os.Looper;
 import android.text.Editable;
 import android.view.WindowManager;
 
@@ -102,4 +104,7 @@ public class Misc {
 
         return a.equals(b);
     }
+    public static void onMainThread(Runnable r) {
+        new Handler(Looper.getMainLooper()).post(r);
+    }
 }