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 {