]> git.ktnx.net Git - mobile-ledger.git/blobdiff - app/src/main/java/net/ktnx/mobileledger/dao/TemplateHeaderDAO.java
methods for deleting all DB tables
[mobile-ledger.git] / app / src / main / java / net / ktnx / mobileledger / dao / TemplateHeaderDAO.java
index b14502c7b6e1c58a7f2495377a97c5b7eee00088..24e751c8149400fd26d3f933a36db90f93f3f73f 100644 (file)
 
 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;
 import androidx.lifecycle.LiveData;
@@ -36,6 +32,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;
 
@@ -45,11 +42,10 @@ public abstract class TemplateHeaderDAO {
     public abstract long insertSync(TemplateHeader item);
 
     public void insertAsync(@NonNull TemplateHeader item, @Nullable Runnable callback) {
-        AsyncTask.execute(() -> {
+        BaseDAO.runAsync(() -> {
             insertSync(item);
-            if (callback != null) {
-                new Handler(Looper.getMainLooper()).post(callback);
-            }
+            if (callback != null)
+                Misc.onMainThread(callback);
         });
     }
 
@@ -60,18 +56,24 @@ public abstract class TemplateHeaderDAO {
     public abstract void deleteSync(TemplateHeader item);
 
     public void deleteAsync(@NonNull TemplateHeader item, @NonNull Runnable callback) {
-        AsyncTask.execute(() -> {
+        BaseDAO.runAsync(() -> {
             deleteSync(item);
-            new Handler(Looper.getMainLooper()).post(callback);
+            Misc.onMainThread(callback);
         });
     }
 
+    @Query("DELETE FROM templates")
+    public abstract void deleteAllSync();
+
     @Query("SELECT * FROM templates ORDER BY is_fallback, UPPER(name)")
     public abstract LiveData<List<TemplateHeader>> getTemplates();
 
     @Query("SELECT * FROM templates WHERE id = :id")
     public abstract LiveData<TemplateHeader> getTemplate(Long id);
 
+    @Query("SELECT * FROM templates WHERE id = :id")
+    public abstract TemplateHeader getTemplateSync(Long id);
+
     public void getTemplateAsync(@NonNull Long id,
                                  @NonNull AsyncResultCallback<TemplateHeader> callback) {
         LiveData<TemplateHeader> resultReceiver = getTemplate(id);
@@ -95,6 +97,14 @@ public abstract class TemplateHeaderDAO {
     @Query("SELECT * FROM templates WHERE id = :id")
     public abstract TemplateWithAccounts getTemplateWithAccountsSync(@NonNull Long id);
 
+    @Transaction
+    @Query("SELECT * FROM templates WHERE uuid = :uuid")
+    public abstract TemplateWithAccounts getTemplateWithAccountsByUuidSync(String uuid);
+
+    @Transaction
+    @Query("SELECT * FROM templates")
+    public abstract List<TemplateWithAccounts> getAllTemplatesWithAccountsSync();
+
     @Transaction
     public void insertSync(TemplateWithAccounts templateWithAccounts) {
         long template_id = insertSync(templateWithAccounts.header);
@@ -121,16 +131,15 @@ public abstract class TemplateHeaderDAO {
         });
     }
     public void insertAsync(@NonNull TemplateWithAccounts item, @Nullable Runnable callback) {
-        AsyncTask.execute(() -> {
+        BaseDAO.runAsync(() -> {
             insertSync(item);
-            if (callback != null) {
-                new Handler(Looper.getMainLooper()).post(callback);
-            }
+            if (callback != null)
+                Misc.onMainThread(callback);
         });
     }
     public void duplicateTemplateWitAccounts(@NonNull Long id, @Nullable
             AsyncResultCallback<TemplateWithAccounts> callback) {
-        AsyncTask.execute(() -> {
+        BaseDAO.runAsync(() -> {
             TemplateWithAccounts src = getTemplateWithAccountsSync(id);
             TemplateWithAccounts dup = src.createDuplicate();
             dup.header.setName(dup.header.getName());
@@ -142,7 +151,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));
         });
     }