|
|
@ -34,8 +34,6 @@ import org.isoron.uhabits.utils.*;
|
|
|
|
import java.io.*;
|
|
|
|
import java.io.*;
|
|
|
|
import java.util.*;
|
|
|
|
import java.util.*;
|
|
|
|
|
|
|
|
|
|
|
|
import javax.inject.*;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public class ListHabitsController
|
|
|
|
public class ListHabitsController
|
|
|
|
implements HabitCardListController.HabitListener
|
|
|
|
implements HabitCardListController.HabitListener
|
|
|
|
{
|
|
|
|
{
|
|
|
@ -51,17 +49,17 @@ public class ListHabitsController
|
|
|
|
@NonNull
|
|
|
|
@NonNull
|
|
|
|
private final HabitCardListAdapter adapter;
|
|
|
|
private final HabitCardListAdapter adapter;
|
|
|
|
|
|
|
|
|
|
|
|
@Inject
|
|
|
|
@NonNull
|
|
|
|
Preferences prefs;
|
|
|
|
private final Preferences prefs;
|
|
|
|
|
|
|
|
|
|
|
|
@Inject
|
|
|
|
@NonNull
|
|
|
|
CommandRunner commandRunner;
|
|
|
|
private final CommandRunner commandRunner;
|
|
|
|
|
|
|
|
|
|
|
|
@Inject
|
|
|
|
@NonNull
|
|
|
|
ReminderScheduler reminderScheduler;
|
|
|
|
private final ReminderScheduler reminderScheduler;
|
|
|
|
|
|
|
|
|
|
|
|
@Inject
|
|
|
|
@NonNull
|
|
|
|
TaskRunner taskRuner;
|
|
|
|
private final TaskRunner taskRunner;
|
|
|
|
|
|
|
|
|
|
|
|
public ListHabitsController(@NonNull HabitList habitList,
|
|
|
|
public ListHabitsController(@NonNull HabitList habitList,
|
|
|
|
@NonNull ListHabitsScreen screen,
|
|
|
|
@NonNull ListHabitsScreen screen,
|
|
|
@ -72,7 +70,12 @@ public class ListHabitsController
|
|
|
|
this.system = system;
|
|
|
|
this.system = system;
|
|
|
|
this.habitList = habitList;
|
|
|
|
this.habitList = habitList;
|
|
|
|
this.adapter = adapter;
|
|
|
|
this.adapter = adapter;
|
|
|
|
HabitsApplication.getComponent().inject(this);
|
|
|
|
|
|
|
|
|
|
|
|
BaseComponent component = HabitsApplication.getComponent();
|
|
|
|
|
|
|
|
prefs = component.getPreferences();
|
|
|
|
|
|
|
|
taskRunner = component.getTaskRunner();
|
|
|
|
|
|
|
|
commandRunner = component.getCommandRunner();
|
|
|
|
|
|
|
|
reminderScheduler = component.getReminderScheduler();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public void onExportCSV()
|
|
|
|
public void onExportCSV()
|
|
|
@ -80,7 +83,7 @@ public class ListHabitsController
|
|
|
|
List<Habit> selected = new LinkedList<>();
|
|
|
|
List<Habit> selected = new LinkedList<>();
|
|
|
|
for (Habit h : habitList) selected.add(h);
|
|
|
|
for (Habit h : habitList) selected.add(h);
|
|
|
|
|
|
|
|
|
|
|
|
taskRuner.execute(new ExportCSVTask(habitList, selected, filename -> {
|
|
|
|
taskRunner.execute(new ExportCSVTask(habitList, selected, filename -> {
|
|
|
|
if (filename != null) screen.showSendFileScreen(filename);
|
|
|
|
if (filename != null) screen.showSendFileScreen(filename);
|
|
|
|
else screen.showMessage(R.string.could_not_export);
|
|
|
|
else screen.showMessage(R.string.could_not_export);
|
|
|
|
}));
|
|
|
|
}));
|
|
|
@ -88,7 +91,7 @@ public class ListHabitsController
|
|
|
|
|
|
|
|
|
|
|
|
public void onExportDB()
|
|
|
|
public void onExportDB()
|
|
|
|
{
|
|
|
|
{
|
|
|
|
taskRuner.execute(new ExportDBTask(filename -> {
|
|
|
|
taskRunner.execute(new ExportDBTask(filename -> {
|
|
|
|
if (filename != null) screen.showSendFileScreen(filename);
|
|
|
|
if (filename != null) screen.showSendFileScreen(filename);
|
|
|
|
else screen.showMessage(R.string.could_not_export);
|
|
|
|
else screen.showMessage(R.string.could_not_export);
|
|
|
|
}));
|
|
|
|
}));
|
|
|
@ -103,12 +106,12 @@ public class ListHabitsController
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public void onHabitReorder(@NonNull Habit from, @NonNull Habit to)
|
|
|
|
public void onHabitReorder(@NonNull Habit from, @NonNull Habit to)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
taskRuner.execute(() -> habitList.reorder(from, to));
|
|
|
|
taskRunner.execute(() -> habitList.reorder(from, to));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public void onImportData(@NonNull File file)
|
|
|
|
public void onImportData(@NonNull File file)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
taskRuner.execute(new ImportDataTask(habitList, file, result -> {
|
|
|
|
taskRunner.execute(new ImportDataTask(habitList, file, result -> {
|
|
|
|
switch (result)
|
|
|
|
switch (result)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
case ImportDataTask.SUCCESS:
|
|
|
|
case ImportDataTask.SUCCESS:
|
|
|
@ -169,7 +172,7 @@ public class ListHabitsController
|
|
|
|
if (prefs.isFirstRun()) onFirstRun();
|
|
|
|
if (prefs.isFirstRun()) onFirstRun();
|
|
|
|
|
|
|
|
|
|
|
|
new Handler().postDelayed(() -> {
|
|
|
|
new Handler().postDelayed(() -> {
|
|
|
|
taskRuner.execute(() -> reminderScheduler.schedule(habitList));
|
|
|
|
taskRunner.execute(() -> reminderScheduler.schedule(habitList));
|
|
|
|
HabitsApplication.getWidgetUpdater().updateWidgets();
|
|
|
|
HabitsApplication.getWidgetUpdater().updateWidgets();
|
|
|
|
}, 1000);
|
|
|
|
}, 1000);
|
|
|
|
}
|
|
|
|
}
|
|
|
|