From 0de52d4fa369d94767c9b993788db29a8aa2f55c Mon Sep 17 00:00:00 2001 From: Alinson Xavier Date: Mon, 4 Apr 2016 05:42:27 -0400 Subject: [PATCH] BaseTask: move register/unregister to onPre/PostExecute --- .../unit/tasks/ImportDataTaskTest.java | 2 -- .../uhabits/loaders/HabitListLoader.java | 4 ++++ .../org/isoron/uhabits/tasks/BaseTask.java | 24 ++++++++++--------- 3 files changed, 17 insertions(+), 13 deletions(-) diff --git a/app/src/androidTest/java/org/isoron/uhabits/unit/tasks/ImportDataTaskTest.java b/app/src/androidTest/java/org/isoron/uhabits/unit/tasks/ImportDataTaskTest.java index 43546ab60..f134f6267 100644 --- a/app/src/androidTest/java/org/isoron/uhabits/unit/tasks/ImportDataTaskTest.java +++ b/app/src/androidTest/java/org/isoron/uhabits/unit/tasks/ImportDataTaskTest.java @@ -34,8 +34,6 @@ import org.junit.runner.RunWith; import java.io.File; import java.io.IOException; import java.io.InputStream; -import java.util.concurrent.CountDownLatch; -import java.util.concurrent.TimeUnit; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.equalTo; diff --git a/app/src/main/java/org/isoron/uhabits/loaders/HabitListLoader.java b/app/src/main/java/org/isoron/uhabits/loaders/HabitListLoader.java index 0f35ba44c..12a8e9e9f 100644 --- a/app/src/main/java/org/isoron/uhabits/loaders/HabitListLoader.java +++ b/app/src/main/java/org/isoron/uhabits/loaders/HabitListLoader.java @@ -164,6 +164,8 @@ public class HabitListLoader currentFetchTask = null; if(listener != null) listener.onLoadFinished(); + + super.onPostExecute(null); } }; @@ -194,6 +196,8 @@ public class HabitListLoader { if(listener != null) listener.onLoadFinished(); + + super.onPostExecute(null); } }.execute(); } diff --git a/app/src/main/java/org/isoron/uhabits/tasks/BaseTask.java b/app/src/main/java/org/isoron/uhabits/tasks/BaseTask.java index f22ebb43d..b1cc0058b 100644 --- a/app/src/main/java/org/isoron/uhabits/tasks/BaseTask.java +++ b/app/src/main/java/org/isoron/uhabits/tasks/BaseTask.java @@ -28,26 +28,28 @@ public abstract class BaseTask extends AsyncTask private static int activeTaskCount; @Override - protected final Void doInBackground(Void... params) + protected void onPreExecute() { - register(); - doInBackground(); - unregister(); - return null; + super.onPreExecute(); + activeTaskCount++; } - protected abstract void doInBackground(); - - protected void register() + @Override + protected void onPostExecute(Void aVoid) { - activeTaskCount++; + activeTaskCount--; + super.onPostExecute(null); } - protected void unregister() + @Override + protected final Void doInBackground(Void... params) { - activeTaskCount--; + doInBackground(); + return null; } + protected abstract void doInBackground(); + public static void waitForTasks(long timeout) throws TimeoutException, InterruptedException {