X-Git-Url: https://git.ktnx.net/?p=mobile-ledger.git;a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fnet%2Fktnx%2Fmobileledger%2Fdao%2FTemplateHeaderDAO.java;h=24e751c8149400fd26d3f933a36db90f93f3f73f;hp=2d3d7ee48884eb3012218dcb70f1322d3fb8d793;hb=833544eb24cb630dc1ce221e4aa3dedb3f6341e3;hpb=3aef8f6c15117aa4ea9abd687ad2c69e0f1f25bb diff --git a/app/src/main/java/net/ktnx/mobileledger/dao/TemplateHeaderDAO.java b/app/src/main/java/net/ktnx/mobileledger/dao/TemplateHeaderDAO.java index 2d3d7ee4..24e751c8 100644 --- a/app/src/main/java/net/ktnx/mobileledger/dao/TemplateHeaderDAO.java +++ b/app/src/main/java/net/ktnx/mobileledger/dao/TemplateHeaderDAO.java @@ -17,10 +17,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; 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("SELECT * FROM templates ORDER BY UPPER(name)") + @Query("DELETE FROM templates") + public abstract void deleteAllSync(); + + @Query("SELECT * FROM templates ORDER BY is_fallback, UPPER(name)") public abstract LiveData> getTemplates(); @Query("SELECT * FROM templates WHERE id = :id") public abstract LiveData getTemplate(Long id); + @Query("SELECT * FROM templates WHERE id = :id") + public abstract TemplateHeader getTemplateSync(Long id); + public void getTemplateAsync(@NonNull Long id, @NonNull AsyncResultCallback callback) { LiveData 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 getAllTemplatesWithAccountsSync(); + @Transaction public void insertSync(TemplateWithAccounts templateWithAccounts) { long template_id = insertSync(templateWithAccounts.header); @@ -106,7 +116,7 @@ public abstract class TemplateHeaderDAO { } } - public void getTemplateWitAccountsAsync(@NonNull Long id, @NonNull + public void getTemplateWithAccountsAsync(@NonNull Long id, @NonNull AsyncResultCallback callback) { LiveData resultReceiver = getTemplateWithAccounts(id); resultReceiver.observeForever(new Observer() { @@ -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 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)); }); }