]> git.ktnx.net Git - mobile-ledger.git/blobdiff - app/src/main/java/net/ktnx/mobileledger/dao/TemplateHeaderDAO.java
working backup and restore of configuration settings
[mobile-ledger.git] / app / src / main / java / net / ktnx / mobileledger / dao / TemplateHeaderDAO.java
index b14502c7b6e1c58a7f2495377a97c5b7eee00088..6188f70e702cbd026cb6c9ddd315f9f5269d32ea 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);
         });
     }
 
@@ -72,6 +70,9 @@ public abstract class TemplateHeaderDAO {
     @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 +96,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);
@@ -123,9 +132,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 +150,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));
         });
     }