From 4f98d8764cf737df4965d50144f29ae0c43fed02 Mon Sep 17 00:00:00 2001 From: Alexander Bakker Date: Tue, 2 Jan 2018 22:11:09 +0100 Subject: [PATCH] Abstract some parts of the AsyncTasks away into ProgressDialogTask --- .../java/me/impy/aegis/DerivationTask.java | 18 ++-------- .../me/impy/aegis/ProgressDialogTask.java | 34 +++++++++++++++++++ .../me/impy/aegis/SlotCollectionTask.java | 18 ++-------- 3 files changed, 40 insertions(+), 30 deletions(-) create mode 100644 app/src/main/java/me/impy/aegis/ProgressDialogTask.java diff --git a/app/src/main/java/me/impy/aegis/DerivationTask.java b/app/src/main/java/me/impy/aegis/DerivationTask.java index c567edd3..cc446920 100644 --- a/app/src/main/java/me/impy/aegis/DerivationTask.java +++ b/app/src/main/java/me/impy/aegis/DerivationTask.java @@ -1,8 +1,6 @@ package me.impy.aegis; -import android.app.ProgressDialog; import android.content.Context; -import android.os.AsyncTask; import android.os.Process; import javax.crypto.SecretKey; @@ -10,14 +8,12 @@ import javax.crypto.SecretKey; import me.impy.aegis.crypto.CryptoUtils; import me.impy.aegis.crypto.slots.PasswordSlot; -public class DerivationTask extends AsyncTask { +public class DerivationTask extends ProgressDialogTask { private Callback _cb; - private ProgressDialog _dialog; public DerivationTask(Context context, Callback cb) { + super(context, "Deriving key from password"); _cb = cb; - _dialog = new ProgressDialog(context); - _dialog.setCancelable(false); } @Override @@ -35,17 +31,9 @@ public class DerivationTask extends AsyncTask extends AsyncTask { + private ProgressDialog _dialog; + + public ProgressDialogTask(Context context, String message) { + _dialog = new ProgressDialog(context); + _dialog.setCancelable(false); + _dialog.setMessage(message); + } + + @CallSuper + @Override + protected void onPreExecute() { + _dialog.show(); + } + + @CallSuper + @Override + protected void onPostExecute(Result result) { + if (_dialog.isShowing()) { + _dialog.dismiss(); + } + } + + protected final ProgressDialog getDialog() { + return _dialog; + } +} diff --git a/app/src/main/java/me/impy/aegis/SlotCollectionTask.java b/app/src/main/java/me/impy/aegis/SlotCollectionTask.java index 05b3d04d..f323a80e 100644 --- a/app/src/main/java/me/impy/aegis/SlotCollectionTask.java +++ b/app/src/main/java/me/impy/aegis/SlotCollectionTask.java @@ -1,8 +1,6 @@ package me.impy.aegis; -import android.app.ProgressDialog; import android.content.Context; -import android.os.AsyncTask; import android.os.Process; import java.lang.reflect.UndeclaredThrowableException; @@ -18,16 +16,14 @@ import me.impy.aegis.crypto.slots.Slot; import me.impy.aegis.crypto.slots.SlotCollection; import me.impy.aegis.crypto.slots.SlotIntegrityException; -public class SlotCollectionTask extends AsyncTask { +public class SlotCollectionTask extends ProgressDialogTask { private Callback _cb; private Class _type; - private ProgressDialog _dialog; public SlotCollectionTask(Class type, Context context, Callback cb) { + super(context, "Decrypting database"); _cb = cb; _type = type; - _dialog = new ProgressDialog(context); - _dialog.setCancelable(false); } @Override @@ -70,17 +66,9 @@ public class SlotCollectionTask extends AsyncTask