Inject TimerPlugin

pull/467/head
Alex Baker 9 years ago
parent baf8e91f49
commit ffbda78f2d

@ -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();
})

@ -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

@ -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) {

@ -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

Loading…
Cancel
Save