From ffbda78f2dfb404d8d95d9341c365dd199e26e2e Mon Sep 17 00:00:00 2001 From: Alex Baker Date: Thu, 13 Oct 2016 17:46:53 -0500 Subject: [PATCH] Inject TimerPlugin --- .../astrid/activity/TaskEditFragment.java | 11 +++--- .../astrid/activity/TaskListFragment.java | 3 +- .../todoroo/astrid/timers/TimerPlugin.java | 34 +++++++++++++++---- .../timers/TimerTaskCompleteListener.java | 5 ++- 4 files changed, 36 insertions(+), 17 deletions(-) diff --git a/src/main/java/com/todoroo/astrid/activity/TaskEditFragment.java b/src/main/java/com/todoroo/astrid/activity/TaskEditFragment.java index 7f3a39a67..7fa42dc0d 100755 --- a/src/main/java/com/todoroo/astrid/activity/TaskEditFragment.java +++ b/src/main/java/com/todoroo/astrid/activity/TaskEditFragment.java @@ -37,7 +37,6 @@ import com.todoroo.astrid.utility.Flags; import org.tasks.Broadcaster; import org.tasks.R; import org.tasks.analytics.Tracker; -import org.tasks.analytics.Tracking; import org.tasks.dialogs.DialogBuilder; import org.tasks.fragments.TaskEditControlSetFragmentManager; import org.tasks.injection.ForActivity; @@ -88,6 +87,7 @@ public final class TaskEditFragment extends InjectingFragment implements Toolbar @Inject Preferences preferences; @Inject Tracker tracker; @Inject Broadcaster broadcaster; + @Inject TimerPlugin timerPlugin; @BindView(R.id.toolbar) Toolbar toolbar; @BindView(R.id.comments) LinearLayout comments; @@ -176,7 +176,7 @@ public final class TaskEditFragment extends InjectingFragment implements Toolbar } public Task stopTimer() { - TimerPlugin.stopTimer(notificationManager, taskService, context, model); + timerPlugin.stopTimer(model); String elapsedTime = DateUtils.formatElapsedTime(model.getElapsedSeconds()); addComment(String.format("%s %s\n%s %s", //$NON-NLS-1$ getString(R.string.TEA_timer_comment_stopped), @@ -188,8 +188,7 @@ public final class TaskEditFragment extends InjectingFragment implements Toolbar } public Task startTimer() { - tracker.reportEvent(Tracking.Events.TIMER_START); - TimerPlugin.startTimer(notificationManager, taskService, context, model); + timerPlugin.startTimer(model); addComment(String.format("%s %s", getString(R.string.TEA_timer_comment_started), DateUtilities.getTimeString(getActivity(), newDateTime())), @@ -280,7 +279,7 @@ public final class TaskEditFragment extends InjectingFragment implements Toolbar public void discard() { if (isNewTask) { - TimerPlugin.stopTimer(notificationManager, taskService, getActivity(), model); + timerPlugin.stopTimer(model); taskDeleter.delete(model); } @@ -290,7 +289,7 @@ public final class TaskEditFragment extends InjectingFragment implements Toolbar private void deleteButtonClick() { dialogBuilder.newMessageDialog(R.string.DLG_delete_this_task_question) .setPositiveButton(android.R.string.ok, (dialog, which) -> { - TimerPlugin.stopTimer(notificationManager, taskService, getActivity(), model); + timerPlugin.stopTimer(model); taskDeleter.delete(model); callback.taskEditFinished(); }) diff --git a/src/main/java/com/todoroo/astrid/activity/TaskListFragment.java b/src/main/java/com/todoroo/astrid/activity/TaskListFragment.java index 35541edb3..e6e563fe8 100644 --- a/src/main/java/com/todoroo/astrid/activity/TaskListFragment.java +++ b/src/main/java/com/todoroo/astrid/activity/TaskListFragment.java @@ -133,6 +133,7 @@ public class TaskListFragment extends InjectingListFragment implements @Inject TagService tagService; @Inject ThemeCache themeCache; @Inject protected TaskListDataProvider taskListDataProvider; + @Inject TimerPlugin timerPlugin; @BindView(R.id.swipe_layout) SwipeRefreshLayout swipeRefreshLayout; @BindView(R.id.swipe_layout_empty) SwipeRefreshLayout emptyView; @@ -599,7 +600,7 @@ public class TaskListFragment extends InjectingListFragment implements tef.discard(); } } - TimerPlugin.stopTimer(notificationManager, taskService, context, task); + timerPlugin.stopTimer(task); } @Override diff --git a/src/main/java/com/todoroo/astrid/timers/TimerPlugin.java b/src/main/java/com/todoroo/astrid/timers/TimerPlugin.java index b0f60ce9e..55dc4c91b 100644 --- a/src/main/java/com/todoroo/astrid/timers/TimerPlugin.java +++ b/src/main/java/com/todoroo/astrid/timers/TimerPlugin.java @@ -20,26 +20,46 @@ import com.todoroo.astrid.service.TaskService; import com.todoroo.astrid.utility.Constants; import org.tasks.R; +import org.tasks.analytics.Tracker; +import org.tasks.analytics.Tracking; +import org.tasks.injection.ForApplication; import org.tasks.intents.TaskIntents; import org.tasks.notifications.NotificationManager; +import javax.inject.Inject; + import static org.tasks.time.DateTimeUtils.currentTimeMillis; public class TimerPlugin { - public static void startTimer(NotificationManager notificationManager, TaskService taskService, Context context, Task task) { - updateTimer(notificationManager, taskService, context, task, true); + private final Context context; + private final NotificationManager notificationManager; + private final TaskService taskService; + private final Tracker tracker; + + @Inject + public TimerPlugin(@ForApplication Context context, NotificationManager notificationManager, + TaskService taskService, Tracker tracker) { + this.context = context; + this.notificationManager = notificationManager; + this.taskService = taskService; + this.tracker = tracker; + } + + public void startTimer(Task task) { + tracker.reportEvent(Tracking.Events.TIMER_START); + updateTimer(task, true); } - public static void stopTimer(NotificationManager notificationManager, TaskService taskService, Context context, Task task) { - updateTimer(notificationManager, taskService, context, task, false); + public void stopTimer(Task task) { + updateTimer(task, false); } /** * toggles timer and updates elapsed time. * @param start if true, start timer. else, stop it */ - private static void updateTimer(NotificationManager notificationManager, TaskService taskService, Context context, Task task, boolean start) { + private void updateTimer(Task task, boolean start) { if (task == null) { return; } @@ -67,10 +87,10 @@ public class TimerPlugin { taskService.save(task); // update notification - TimerPlugin.updateNotifications(notificationManager, taskService, context); + updateNotifications(); } - private static void updateNotifications(NotificationManager notificationManager, TaskService taskService, Context context) { + private void updateNotifications() { int count = taskService.count(Query.select(Task.ID). where(Task.TIMER_START.gt(0))); if(count == 0) { diff --git a/src/main/java/com/todoroo/astrid/timers/TimerTaskCompleteListener.java b/src/main/java/com/todoroo/astrid/timers/TimerTaskCompleteListener.java index f886be58a..7cbac0ebe 100644 --- a/src/main/java/com/todoroo/astrid/timers/TimerTaskCompleteListener.java +++ b/src/main/java/com/todoroo/astrid/timers/TimerTaskCompleteListener.java @@ -14,14 +14,13 @@ import com.todoroo.astrid.service.TaskService; import org.tasks.injection.BroadcastComponent; import org.tasks.injection.InjectingBroadcastReceiver; -import org.tasks.notifications.NotificationManager; import javax.inject.Inject; public class TimerTaskCompleteListener extends InjectingBroadcastReceiver { @Inject TaskService taskService; - @Inject NotificationManager notificationManager; + @Inject TimerPlugin timerPlugin; @Override public void onReceive(Context context, Intent intent) { @@ -38,7 +37,7 @@ public class TimerTaskCompleteListener extends InjectingBroadcastReceiver { return; } - TimerPlugin.stopTimer(notificationManager, taskService, context, task); + timerPlugin.stopTimer(task); } @Override