diff --git a/app/src/main/java/org/isoron/uhabits/activities/habits/list/ListHabitsController.java b/app/src/main/java/org/isoron/uhabits/activities/habits/list/ListHabitsController.java index 55b2750c0..875124f73 100644 --- a/app/src/main/java/org/isoron/uhabits/activities/habits/list/ListHabitsController.java +++ b/app/src/main/java/org/isoron/uhabits/activities/habits/list/ListHabitsController.java @@ -19,7 +19,6 @@ package org.isoron.uhabits.activities.habits.list; -import android.content.Context; import android.support.annotation.*; import org.isoron.uhabits.*; @@ -42,7 +41,6 @@ import javax.inject.*; public class ListHabitsController implements HabitCardListController.HabitListener { - private final Context context; @NonNull private final ListHabitsScreen screen; @@ -73,9 +71,10 @@ public class ListHabitsController private ExportCSVTaskFactory exportCSVFactory; + private ExportDBTaskFactory exportDBFactory; + @Inject - public ListHabitsController(@ActivityContext Context context, - @NonNull BaseSystem system, + public ListHabitsController(@NonNull BaseSystem system, @NonNull CommandRunner commandRunner, @NonNull HabitList habitList, @NonNull HabitCardListAdapter adapter, @@ -86,9 +85,9 @@ public class ListHabitsController @NonNull WidgetUpdater widgetUpdater, @NonNull ImportDataTaskFactory importTaskFactory, - @NonNull ExportCSVTaskFactory exportCSVFactory) + @NonNull ExportCSVTaskFactory exportCSVFactory, + @NonNull ExportDBTaskFactory exportDBFactory) { - this.context = context; this.adapter = adapter; this.commandRunner = commandRunner; this.habitList = habitList; @@ -100,6 +99,7 @@ public class ListHabitsController this.widgetUpdater = widgetUpdater; this.importTaskFactory = importTaskFactory; this.exportCSVFactory = exportCSVFactory; + this.exportDBFactory = exportDBFactory; } public void onExportCSV() @@ -107,7 +107,7 @@ public class ListHabitsController List selected = new LinkedList<>(); for (Habit h : habitList) selected.add(h); - taskRunner.execute(exportCSVFactory.create(context, selected, filename -> { + taskRunner.execute(exportCSVFactory.create(selected, filename -> { if (filename != null) screen.showSendFileScreen(filename); else screen.showMessage(R.string.could_not_export); })); @@ -115,7 +115,7 @@ public class ListHabitsController public void onExportDB() { - taskRunner.execute(new ExportDBTask(context, filename -> { + taskRunner.execute(exportDBFactory.create(filename -> { if (filename != null) screen.showSendFileScreen(filename); else screen.showMessage(R.string.could_not_export); })); diff --git a/app/src/main/java/org/isoron/uhabits/io/LoopDBImporter.java b/app/src/main/java/org/isoron/uhabits/io/LoopDBImporter.java index ae42f0d26..a3ebcf882 100644 --- a/app/src/main/java/org/isoron/uhabits/io/LoopDBImporter.java +++ b/app/src/main/java/org/isoron/uhabits/io/LoopDBImporter.java @@ -41,10 +41,11 @@ import javax.inject.*; */ public class LoopDBImporter extends AbstractImporter { + @NonNull private Context context; @Inject - public LoopDBImporter(@NonNull HabitList habits, @AppContext Context context) + public LoopDBImporter(@NonNull @AppContext Context context, @NonNull HabitList habits) { super(habits); this.context = context; diff --git a/app/src/main/java/org/isoron/uhabits/receivers/PebbleReceiver.java b/app/src/main/java/org/isoron/uhabits/receivers/PebbleReceiver.java index b7f252e31..55243f015 100644 --- a/app/src/main/java/org/isoron/uhabits/receivers/PebbleReceiver.java +++ b/app/src/main/java/org/isoron/uhabits/receivers/PebbleReceiver.java @@ -40,6 +40,7 @@ public class PebbleReceiver extends PebbleDataReceiver public static final UUID WATCHAPP_UUID = UUID.fromString("82629d99-8ea6-4631-a022-9ca77a12a058"); + @NonNull private Context context; private HabitList allHabits; 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 80e82bd18..1f41f1994 100644 --- a/app/src/main/java/org/isoron/uhabits/tasks/ExportCSVTask.java +++ b/app/src/main/java/org/isoron/uhabits/tasks/ExportCSVTask.java @@ -24,6 +24,7 @@ import android.support.annotation.*; import com.google.auto.factory.*; +import org.isoron.uhabits.AppContext; import org.isoron.uhabits.activities.ActivityContext; import org.isoron.uhabits.io.*; import org.isoron.uhabits.models.*; @@ -37,6 +38,7 @@ public class ExportCSVTask implements Task { private String archiveFilename; + @NonNull private final Context context; @NonNull @@ -48,7 +50,7 @@ public class ExportCSVTask implements Task @NonNull private final HabitList habitList; - public ExportCSVTask(Context context, + public ExportCSVTask(@Provided @AppContext @NonNull Context context, @Provided @NonNull HabitList habitList, @NonNull List selectedHabits, @NonNull Listener listener) 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 4922097f5..26f523194 100644 --- a/app/src/main/java/org/isoron/uhabits/tasks/ExportDBTask.java +++ b/app/src/main/java/org/isoron/uhabits/tasks/ExportDBTask.java @@ -22,21 +22,27 @@ package org.isoron.uhabits.tasks; import android.content.Context; import android.support.annotation.*; +import com.google.auto.factory.AutoFactory; +import com.google.auto.factory.Provided; + +import org.isoron.uhabits.AppContext; import org.isoron.uhabits.activities.ActivityContext; import org.isoron.uhabits.utils.*; import java.io.*; +@AutoFactory(allowSubclasses = true) public class ExportDBTask implements Task { private String filename; + @NonNull private Context context; @NonNull private final Listener listener; - public ExportDBTask(Context context, @NonNull Listener listener) + public ExportDBTask(@Provided @AppContext @NonNull Context context, @NonNull Listener listener) { this.listener = listener; this.context = context; diff --git a/app/src/main/java/org/isoron/uhabits/utils/FileUtils.java b/app/src/main/java/org/isoron/uhabits/utils/FileUtils.java index b1e3acfb8..4cee13ac3 100644 --- a/app/src/main/java/org/isoron/uhabits/utils/FileUtils.java +++ b/app/src/main/java/org/isoron/uhabits/utils/FileUtils.java @@ -87,9 +87,8 @@ public abstract class FileUtils } @Nullable - public static File getFilesDir(Context context, @Nullable String relativePath) + public static File getFilesDir(@NonNull Context context, @Nullable String relativePath) { -// Context context = HabitsApplication.getContext(); File externalFilesDirs[] = ContextCompat.getExternalFilesDirs(context, null); diff --git a/app/src/test/java/org/isoron/uhabits/activities/habits/list/ListHabitsControllerTest.java b/app/src/test/java/org/isoron/uhabits/activities/habits/list/ListHabitsControllerTest.java index ed1c0c41b..74b71a74b 100644 --- a/app/src/test/java/org/isoron/uhabits/activities/habits/list/ListHabitsControllerTest.java +++ b/app/src/test/java/org/isoron/uhabits/activities/habits/list/ListHabitsControllerTest.java @@ -57,6 +57,8 @@ public class ListHabitsControllerTest extends BaseUnitTest private ExportCSVTaskFactory exportCSVFactory; + private ExportDBTaskFactory exportDBFactory; + @Override public void setUp() { @@ -73,11 +75,12 @@ public class ListHabitsControllerTest extends BaseUnitTest widgetUpdater = mock(WidgetUpdater.class); importTaskFactory = mock(ImportDataTaskFactory.class); exportCSVFactory = mock(ExportCSVTaskFactory.class); + exportDBFactory = mock(ExportDBTaskFactory.class); controller = - spy(new ListHabitsController(null,system, commandRunner, habitList, + spy(new ListHabitsController(system, commandRunner, habitList, adapter, screen, prefs, reminderScheduler, taskRunner, - widgetUpdater, importTaskFactory, exportCSVFactory)); + widgetUpdater, importTaskFactory, exportCSVFactory, exportDBFactory)); } @Test