X-Git-Url: https://git.ktnx.net/?a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fnet%2Fktnx%2Fmobileledger%2Fdao%2FBaseDAO.java;h=b2d938c590741672316b5d6d0833af12de2512e6;hb=03672212f0b56198c2392c9bb873876ac5a89a64;hp=0bcb3e488d7fe25b7e15b91f9949af795860d0dc;hpb=caf9db3f39e12a8050f1d26bf196857bd3d36f2e;p=mobile-ledger.git diff --git a/app/src/main/java/net/ktnx/mobileledger/dao/BaseDAO.java b/app/src/main/java/net/ktnx/mobileledger/dao/BaseDAO.java index 0bcb3e48..b2d938c5 100644 --- a/app/src/main/java/net/ktnx/mobileledger/dao/BaseDAO.java +++ b/app/src/main/java/net/ktnx/mobileledger/dao/BaseDAO.java @@ -18,37 +18,44 @@ package net.ktnx.mobileledger.dao; import android.os.AsyncTask; -import android.os.Handler; -import android.os.Looper; -import androidx.annotation.Nullable; +import androidx.annotation.NonNull; -abstract class BaseDAO { - abstract void insertSync(T item); - public void insert(T item, @Nullable Runnable onDone) { +import net.ktnx.mobileledger.utils.Misc; + +public abstract class BaseDAO { + abstract long insertSync(T item); + public void insert(T item) { + AsyncTask.execute(() -> insertSync(item)); + } + public void insert(T item, @NonNull OnInsertedReceiver receiver) { AsyncTask.execute(() -> { - insertSync(item); - if (onDone != null) - new Handler(Looper.getMainLooper()).post(onDone); + long id = insertSync(item); + Misc.onMainThread(() -> 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); + Misc.onMainThread(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); + Misc.onMainThread(onDone); }); } - - + interface OnInsertedReceiver { + void onInsert(long id); + } }