From 7433a2413da81b7633f0a57cdb97bcb282135351 Mon Sep 17 00:00:00 2001 From: Alinson Xavier Date: Sun, 3 Apr 2016 06:45:10 -0400 Subject: [PATCH] Refactor BaseTask interface --- .../org/isoron/uhabits/unit/views/ViewTest.java | 3 +-- .../uhabits/dialogs/HistoryEditorDialog.java | 4 +--- .../java/org/isoron/uhabits/tasks/BaseTask.java | 15 +++++++++------ .../org/isoron/uhabits/tasks/ExportCSVTask.java | 7 ++----- .../org/isoron/uhabits/tasks/ExportDBTask.java | 7 ++----- .../org/isoron/uhabits/tasks/ImportDataTask.java | 5 +---- .../uhabits/tasks/ToggleRepetitionTask.java | 3 +-- .../isoron/uhabits/views/HabitHistoryView.java | 7 +++---- .../uhabits/widgets/BaseWidgetProvider.java | 3 +-- 9 files changed, 21 insertions(+), 33 deletions(-) diff --git a/app/src/androidTest/java/org/isoron/uhabits/unit/views/ViewTest.java b/app/src/androidTest/java/org/isoron/uhabits/unit/views/ViewTest.java index 8fdedd60a..b6099f9a6 100644 --- a/app/src/androidTest/java/org/isoron/uhabits/unit/views/ViewTest.java +++ b/app/src/androidTest/java/org/isoron/uhabits/unit/views/ViewTest.java @@ -198,10 +198,9 @@ public class ViewTest extends BaseTest new BaseTask() { @Override - protected Void doInBackground(Void... params) + protected void doInBackground() { view.refreshData(); - return null; } }.execute(); diff --git a/app/src/main/java/org/isoron/uhabits/dialogs/HistoryEditorDialog.java b/app/src/main/java/org/isoron/uhabits/dialogs/HistoryEditorDialog.java index 6196a7d31..7654fb0ed 100644 --- a/app/src/main/java/org/isoron/uhabits/dialogs/HistoryEditorDialog.java +++ b/app/src/main/java/org/isoron/uhabits/dialogs/HistoryEditorDialog.java @@ -72,11 +72,9 @@ public class HistoryEditorDialog extends DialogFragment new BaseTask() { @Override - @SuppressWarnings("ResourceType") - protected Void doInBackground(Void... params) + protected void doInBackground() { historyView.refreshData(); - return 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 d880775d4..29d9937f1 100644 --- a/app/src/main/java/org/isoron/uhabits/tasks/BaseTask.java +++ b/app/src/main/java/org/isoron/uhabits/tasks/BaseTask.java @@ -23,24 +23,27 @@ import android.os.AsyncTask; import java.util.concurrent.TimeoutException; -public class BaseTask extends AsyncTask +public abstract class BaseTask extends AsyncTask { private static int activeTaskCount; @Override - protected Void doInBackground(Void... params) + protected final Void doInBackground(Void... params) { + register(); + doInBackground(); + unregister(); return null; } - @Override - protected void onPreExecute() + protected abstract void doInBackground(); + + protected void register() { activeTaskCount++; } - @Override - protected void onPostExecute(Void aVoid) + protected void unregister() { activeTaskCount--; } diff --git a/app/src/main/java/org/isoron/uhabits/tasks/ExportCSVTask.java b/app/src/main/java/org/isoron/uhabits/tasks/ExportCSVTask.java index dc3a53305..5c85bc89e 100644 --- a/app/src/main/java/org/isoron/uhabits/tasks/ExportCSVTask.java +++ b/app/src/main/java/org/isoron/uhabits/tasks/ExportCSVTask.java @@ -19,7 +19,6 @@ package org.isoron.uhabits.tasks; -import android.os.AsyncTask; import android.support.annotation.Nullable; import android.view.View; import android.widget.ProgressBar; @@ -80,12 +79,12 @@ public class ExportCSVTask extends BaseTask } @Override - protected Void doInBackground(Void... params) + protected void doInBackground() { try { File dir = DatabaseHelper.getFilesDir("CSV"); - if(dir == null) return null; + if(dir == null) return; HabitsCSVExporter exporter = new HabitsCSVExporter(selectedHabits, dir); archiveFilename = exporter.writeArchive(); @@ -94,7 +93,5 @@ public class ExportCSVTask extends BaseTask { e.printStackTrace(); } - - return null; } } diff --git a/app/src/main/java/org/isoron/uhabits/tasks/ExportDBTask.java b/app/src/main/java/org/isoron/uhabits/tasks/ExportDBTask.java index ebdb213a9..4e184335f 100644 --- a/app/src/main/java/org/isoron/uhabits/tasks/ExportDBTask.java +++ b/app/src/main/java/org/isoron/uhabits/tasks/ExportDBTask.java @@ -19,7 +19,6 @@ package org.isoron.uhabits.tasks; -import android.os.AsyncTask; import android.support.annotation.Nullable; import android.view.View; import android.widget.ProgressBar; @@ -75,14 +74,14 @@ public class ExportDBTask extends BaseTask } @Override - protected Void doInBackground(Void... params) + protected void doInBackground() { filename = null; try { File dir = DatabaseHelper.getFilesDir("Backups"); - if(dir == null) return null; + if(dir == null) return; filename = DatabaseHelper.saveDatabaseCopy(dir); } @@ -90,7 +89,5 @@ public class ExportDBTask extends BaseTask { e.printStackTrace(); } - - return null; } } diff --git a/app/src/main/java/org/isoron/uhabits/tasks/ImportDataTask.java b/app/src/main/java/org/isoron/uhabits/tasks/ImportDataTask.java index fe7f03528..477f1f51b 100644 --- a/app/src/main/java/org/isoron/uhabits/tasks/ImportDataTask.java +++ b/app/src/main/java/org/isoron/uhabits/tasks/ImportDataTask.java @@ -19,7 +19,6 @@ package org.isoron.uhabits.tasks; -import android.os.AsyncTask; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.view.View; @@ -86,7 +85,7 @@ public class ImportDataTask extends BaseTask } @Override - protected Void doInBackground(Void... params) + protected void doInBackground() { try { @@ -106,7 +105,5 @@ public class ImportDataTask extends BaseTask result = FAILED; e.printStackTrace(); } - - return null; } } \ No newline at end of file diff --git a/app/src/main/java/org/isoron/uhabits/tasks/ToggleRepetitionTask.java b/app/src/main/java/org/isoron/uhabits/tasks/ToggleRepetitionTask.java index bece42414..3b46ec95c 100644 --- a/app/src/main/java/org/isoron/uhabits/tasks/ToggleRepetitionTask.java +++ b/app/src/main/java/org/isoron/uhabits/tasks/ToggleRepetitionTask.java @@ -38,10 +38,9 @@ public class ToggleRepetitionTask extends BaseTask } @Override - protected Void doInBackground(Void... params) + protected void doInBackground() { habit.repetitions.toggle(timestamp); - return null; } @Override diff --git a/app/src/main/java/org/isoron/uhabits/views/HabitHistoryView.java b/app/src/main/java/org/isoron/uhabits/views/HabitHistoryView.java index aa5c1926f..67297101e 100644 --- a/app/src/main/java/org/isoron/uhabits/views/HabitHistoryView.java +++ b/app/src/main/java/org/isoron/uhabits/views/HabitHistoryView.java @@ -388,13 +388,12 @@ public class HabitHistoryView extends ScrollableDataView implements HabitDataVie @Override public void onToggleRepetitionFinished() { - new BaseTask() { + new BaseTask() + { @Override - @SuppressWarnings("ResourceType") - protected Void doInBackground(Void... params) + protected void doInBackground() { refreshData(); - return null; } @Override diff --git a/app/src/main/java/org/isoron/uhabits/widgets/BaseWidgetProvider.java b/app/src/main/java/org/isoron/uhabits/widgets/BaseWidgetProvider.java index 4538a9a30..b1d75f418 100644 --- a/app/src/main/java/org/isoron/uhabits/widgets/BaseWidgetProvider.java +++ b/app/src/main/java/org/isoron/uhabits/widgets/BaseWidgetProvider.java @@ -223,10 +223,9 @@ public abstract class BaseWidgetProvider extends AppWidgetProvider } @Override - protected Void doInBackground(Void... params) + protected void doInBackground() { refreshCustomViewData(widgetView); - return null; } @Override