diff --git a/src/main/java/com/todoroo/astrid/activity/TaskEditFragment.java b/src/main/java/com/todoroo/astrid/activity/TaskEditFragment.java index cce2ea880..f3e766400 100755 --- a/src/main/java/com/todoroo/astrid/activity/TaskEditFragment.java +++ b/src/main/java/com/todoroo/astrid/activity/TaskEditFragment.java @@ -680,7 +680,7 @@ ViewPager.OnPageChangeListener, EditNoteActivity.UpdatesChangedListener { // abandon editing in this case if (title.getText().toString().trim().length() == 0 || TextUtils.isEmpty(model.getTitle())) { if (isNewTask) { - TimerPlugin.updateTimer(notificationManager, taskService, getActivity(), model, false); + TimerPlugin.stopTimer(notificationManager, taskService, getActivity(), model); taskDeleter.delete(model); if (getActivity() instanceof TaskListActivity) { TaskListActivity tla = (TaskListActivity) getActivity(); @@ -698,7 +698,7 @@ ViewPager.OnPageChangeListener, EditNoteActivity.UpdatesChangedListener { .setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { - TimerPlugin.updateTimer(notificationManager, taskService, getActivity(), model, false); + TimerPlugin.stopTimer(notificationManager, taskService, getActivity(), model); taskDeleter.delete(model); shouldSaveState = false; diff --git a/src/main/java/com/todoroo/astrid/activity/TaskListFragment.java b/src/main/java/com/todoroo/astrid/activity/TaskListFragment.java index f08b561ac..375af39de 100644 --- a/src/main/java/com/todoroo/astrid/activity/TaskListFragment.java +++ b/src/main/java/com/todoroo/astrid/activity/TaskListFragment.java @@ -795,7 +795,7 @@ public class TaskListFragment extends InjectingListFragment implements SwipeRefr } } } - TimerPlugin.updateTimer(notificationManager, taskService, context, task, false); + TimerPlugin.stopTimer(notificationManager, taskService, context, task); } public void refreshFilterCount() { @@ -853,7 +853,7 @@ public class TaskListFragment extends InjectingListFragment implements SwipeRefr itemId = item.getGroupId(); Task task = new Task(); task.setId(itemId); - TimerPlugin.updateTimer(notificationManager, taskService, getActivity(), task, false); + TimerPlugin.stopTimer(notificationManager, taskService, getActivity(), task); taskDeleter.purge(itemId); loadTaskListContent(); return true; diff --git a/src/main/java/com/todoroo/astrid/timers/TimerActionControlSet.java b/src/main/java/com/todoroo/astrid/timers/TimerActionControlSet.java index 0883e0074..e174ab534 100644 --- a/src/main/java/com/todoroo/astrid/timers/TimerActionControlSet.java +++ b/src/main/java/com/todoroo/astrid/timers/TimerActionControlSet.java @@ -6,7 +6,9 @@ package com.todoroo.astrid.timers; import android.app.Activity; +import android.graphics.drawable.Drawable; import android.os.SystemClock; +import android.support.v4.graphics.drawable.DrawableCompat; import android.text.format.DateFormat; import android.view.View; import android.view.View.OnClickListener; @@ -42,14 +44,14 @@ public class TimerActionControlSet extends TaskEditControlSetBase { @Override public void onClick(View v) { if (timerActive) { - TimerPlugin.updateTimer(notificationManager, taskService, activity, model, false); + TimerPlugin.stopTimer(notificationManager, taskService, activity, model); for (TimerActionListener listener : listeners) { listener.timerStopped(model); } chronometer.stop(); } else { - TimerPlugin.updateTimer(notificationManager, taskService, activity, model, true); + TimerPlugin.startTimer(notificationManager, taskService, activity, model); for (TimerActionListener listener : listeners) { listener.timerStarted(model); } @@ -81,14 +83,10 @@ public class TimerActionControlSet extends TaskEditControlSetBase { } private void updateDisplay() { - final int drawable; - if(timerActive) { - drawable = R.drawable.icn_timer_stop; - } else { - drawable = R.drawable.icn_edit_timer; - } - timerButton.setImageResource(drawable); - + int drawableRes = timerActive ? R.drawable.ic_pause_24dp : R.drawable.ic_play_arrow_24dp; + final Drawable drawable = DrawableCompat.wrap(activity.getResources().getDrawable(drawableRes)); + DrawableCompat.setTint(drawable, activity.getResources().getColor(android.R.color.white)); + timerButton.setImageDrawable(drawable); long elapsed = model.getElapsedSeconds() * 1000L; if (timerActive) { diff --git a/src/main/java/com/todoroo/astrid/timers/TimerPlugin.java b/src/main/java/com/todoroo/astrid/timers/TimerPlugin.java index 8dda9bdad..c5df3935d 100644 --- a/src/main/java/com/todoroo/astrid/timers/TimerPlugin.java +++ b/src/main/java/com/todoroo/astrid/timers/TimerPlugin.java @@ -27,16 +27,19 @@ 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); + } + + public static void stopTimer(NotificationManager notificationManager, TaskService taskService, Context context, Task task) { + updateTimer(notificationManager, taskService, context, task, false); + } + /** * toggles timer and updates elapsed time. * @param start if true, start timer. else, stop it */ - public static void updateTimer(NotificationManager notificationManager, TaskService taskService, Context context, Task task, boolean start) { - // if this call comes from tasklist, then we need to fill in the gaps to handle this correctly - // this is needed just for stopping a task - if (!task.containsNonNullValue(Task.TIMER_START)) { - task = taskService.fetchById(task.getId(), Task.ID, Task.TIMER_START, Task.ELAPSED_SECONDS); - } + private static void updateTimer(NotificationManager notificationManager, TaskService taskService, Context context, Task task, boolean start) { if (task == null) { return; } @@ -46,6 +49,15 @@ public class TimerPlugin { task.setTimerStart(DateUtilities.now()); } } else { + // if this call comes from tasklist, then we need to fill in the gaps to handle this correctly + // this is needed just for stopping a task + if (!task.containsNonNullValue(Task.TIMER_START)) { + task = taskService.fetchById(task.getId(), Task.ID, Task.TIMER_START, Task.ELAPSED_SECONDS); + } + if (task == null) { + return; + } + if(task.getTimerStart() > 0) { int newElapsed = (int)((DateUtilities.now() - task.getTimerStart()) / 1000L); task.setTimerStart(0L); @@ -80,7 +92,7 @@ public class TimerPlugin { .setContentTitle(appName) .setContentText(text) .setWhen(currentTimeMillis()) - .setSmallIcon(R.drawable.timers_notification) + .setSmallIcon(R.drawable.ic_timer_white_24dp) .setAutoCancel(false) .setOngoing(true) .build(); diff --git a/src/main/java/com/todoroo/astrid/timers/TimerTaskCompleteListener.java b/src/main/java/com/todoroo/astrid/timers/TimerTaskCompleteListener.java index 6e1fbc0df..58760ff42 100644 --- a/src/main/java/com/todoroo/astrid/timers/TimerTaskCompleteListener.java +++ b/src/main/java/com/todoroo/astrid/timers/TimerTaskCompleteListener.java @@ -37,6 +37,6 @@ public class TimerTaskCompleteListener extends InjectingBroadcastReceiver { return; } - TimerPlugin.updateTimer(notificationManager, taskService, context, task, false); + TimerPlugin.stopTimer(notificationManager, taskService, context, task); } } diff --git a/src/main/res/drawable-hdpi/ic_timer_white_24dp.png b/src/main/res/drawable-hdpi/ic_timer_white_24dp.png new file mode 100644 index 000000000..10619fc8c Binary files /dev/null and b/src/main/res/drawable-hdpi/ic_timer_white_24dp.png differ diff --git a/src/main/res/drawable-xhdpi/ic_timer_white_24dp.png b/src/main/res/drawable-xhdpi/ic_timer_white_24dp.png new file mode 100644 index 000000000..9d239966f Binary files /dev/null and b/src/main/res/drawable-xhdpi/ic_timer_white_24dp.png differ diff --git a/src/main/res/drawable-xxhdpi/ic_timer_white_24dp.png b/src/main/res/drawable-xxhdpi/ic_timer_white_24dp.png new file mode 100644 index 000000000..bb6f9a63b Binary files /dev/null and b/src/main/res/drawable-xxhdpi/ic_timer_white_24dp.png differ diff --git a/src/main/res/drawable/ic_pause_24dp.xml b/src/main/res/drawable/ic_pause_24dp.xml new file mode 100644 index 000000000..b2ff04582 --- /dev/null +++ b/src/main/res/drawable/ic_pause_24dp.xml @@ -0,0 +1,5 @@ + + + diff --git a/src/main/res/drawable/ic_play_arrow_24dp.xml b/src/main/res/drawable/ic_play_arrow_24dp.xml new file mode 100644 index 000000000..3100224e2 --- /dev/null +++ b/src/main/res/drawable/ic_play_arrow_24dp.xml @@ -0,0 +1,5 @@ + + + diff --git a/src/main/res/drawable/ic_timer_white_24dp.png b/src/main/res/drawable/ic_timer_white_24dp.png new file mode 100644 index 000000000..72e1320c4 Binary files /dev/null and b/src/main/res/drawable/ic_timer_white_24dp.png differ diff --git a/src/main/res/drawable/icn_edit_timer.png b/src/main/res/drawable/icn_edit_timer.png deleted file mode 100644 index da6ce4548..000000000 Binary files a/src/main/res/drawable/icn_edit_timer.png and /dev/null differ diff --git a/src/main/res/drawable/icn_timer_stop.png b/src/main/res/drawable/icn_timer_stop.png deleted file mode 100644 index aa6bea14c..000000000 Binary files a/src/main/res/drawable/icn_timer_stop.png and /dev/null differ diff --git a/src/main/res/drawable/timers_notification.png b/src/main/res/drawable/timers_notification.png deleted file mode 100644 index 6484e6e7d..000000000 Binary files a/src/main/res/drawable/timers_notification.png and /dev/null differ diff --git a/src/main/res/layout/task_edit_activity.xml b/src/main/res/layout/task_edit_activity.xml index af3fcb624..3c72ec89c 100644 --- a/src/main/res/layout/task_edit_activity.xml +++ b/src/main/res/layout/task_edit_activity.xml @@ -118,7 +118,6 @@ android:layout_width="fill_parent" android:layout_height="25dip" android:layout_weight="1" - android:background="#00000000" android:gravity="center_vertical|center_horizontal" android:paddingRight="5dip" android:paddingLeft="5dip" @@ -130,7 +129,7 @@ android:layout_height="wrap_content" android:layout_weight="2" android:gravity="center_horizontal" - android:textColor="?attr/asThemeTextColor" + android:textColor="@android:color/white" android:textSize="10sp" android:visibility="visible" />