]> git.ktnx.net Git - mobile-ledger.git/commitdiff
BaseDAO: async operation variants without callbacks
authorDamyan Ivanov <dam+mobileledger@ktnx.net>
Thu, 22 Apr 2021 04:19:42 +0000 (04:19 +0000)
committerDamyan Ivanov <dam+mobileledger@ktnx.net>
Thu, 22 Apr 2021 04:19:42 +0000 (04:19 +0000)
app/src/main/java/net/ktnx/mobileledger/dao/BaseDAO.java
app/src/main/java/net/ktnx/mobileledger/ui/profiles/ProfileDetailFragment.java

index b68ea5157a76abd8ff84898dfb7285fa76085083..b6b23d1880ebb2c82fd368ee148d810e313f820f 100644 (file)
@@ -21,32 +21,38 @@ import android.os.AsyncTask;
 import android.os.Handler;
 import android.os.Looper;
 
-import androidx.annotation.Nullable;
+import androidx.annotation.NonNull;
 
-abstract class BaseDAO<T> {
+public abstract class BaseDAO<T> {
     abstract long insertSync(T item);
-    public void insert(T item, @Nullable OnInsertedReceiver receiver) {
+    public void insert(T item) {
+        AsyncTask.execute(() -> insertSync(item));
+    }
+    public void insert(T item, @NonNull OnInsertedReceiver receiver) {
         AsyncTask.execute(() -> {
             long id = insertSync(item);
-            if (receiver != null)
-                new Handler(Looper.getMainLooper()).post(() -> receiver.onInsert(id));
+            new Handler(Looper.getMainLooper()).post(() -> receiver.onInsert(id));
         });
     }
 
     abstract void updateSync(T item);
-    public void update(T item, @Nullable Runnable onDone) {
+    public void update(T item) {
+        AsyncTask.execute(() -> updateSync(item));
+    }
+    public void update(T item, @NonNull Runnable onDone) {
         AsyncTask.execute(() -> {
             updateSync(item);
-            if (onDone != null)
-                new Handler(Looper.getMainLooper()).post(onDone);
+            new Handler(Looper.getMainLooper()).post(onDone);
         });
     }
     abstract void deleteSync(T item);
-    public void delete(T item, @Nullable Runnable onDone) {
+    public void delete(T item) {
+        AsyncTask.execute(() -> deleteSync(item));
+    }
+    public void delete(T item, @NonNull Runnable onDone) {
         AsyncTask.execute(() -> {
             deleteSync(item);
-            if (onDone != null)
-                new Handler(Looper.getMainLooper()).post(onDone);
+            new Handler(Looper.getMainLooper()).post(onDone);
         });
     }
     interface OnInsertedReceiver {
index 9b0b43a13b09a68fc862d382c275e0dfd362de29..547981e1c20c61db7c484770043ac16ef12f656b 100644 (file)
@@ -399,7 +399,7 @@ public class ProfileDetailFragment extends Fragment {
         Profile profile = new Profile();
         model.updateProfile(profile);
         if (profile.getId() > 0) {
-            dao.update(profile, null);
+            dao.update(profile);
             debug("profiles", "profile stored in DB");
 //                debug("profiles", String.format("Selected item is %d", mProfile.getThemeHue()));
         }