diff --git a/astrid/plugin-src/com/todoroo/astrid/gtasks/GtasksDecorationExposer.java b/astrid/plugin-src/com/todoroo/astrid/gtasks/GtasksDecorationExposer.java index 850f89f16..a210efc9d 100644 --- a/astrid/plugin-src/com/todoroo/astrid/gtasks/GtasksDecorationExposer.java +++ b/astrid/plugin-src/com/todoroo/astrid/gtasks/GtasksDecorationExposer.java @@ -56,4 +56,9 @@ public class GtasksDecorationExposer implements TaskDecorationExposer { return new TaskDecoration(decoration, TaskDecoration.POSITION_LEFT, 0); } + @Override + public String getAddon() { + return GtasksPreferenceService.IDENTIFIER; + } + } diff --git a/astrid/plugin-src/com/todoroo/astrid/timers/TimerDecorationExposer.java b/astrid/plugin-src/com/todoroo/astrid/timers/TimerDecorationExposer.java index a66b6507c..21ab0b264 100644 --- a/astrid/plugin-src/com/todoroo/astrid/timers/TimerDecorationExposer.java +++ b/astrid/plugin-src/com/todoroo/astrid/timers/TimerDecorationExposer.java @@ -3,6 +3,8 @@ */ package com.todoroo.astrid.timers; +import android.content.Context; +import android.content.Intent; import android.graphics.Color; import android.os.SystemClock; import android.text.format.DateUtils; @@ -12,6 +14,7 @@ import android.widget.RemoteViews; import com.timsu.astrid.R; import com.todoroo.andlib.service.ContextManager; import com.todoroo.andlib.utility.DateUtilities; +import com.todoroo.astrid.api.AstridApiConstants; import com.todoroo.astrid.api.TaskDecoration; import com.todoroo.astrid.api.TaskDecorationExposer; import com.todoroo.astrid.data.Task; @@ -59,8 +62,25 @@ public class TimerDecorationExposer implements TaskDecorationExposer { return decoration; } + public void updateDecoration(Context context, Task task) { + TaskDecoration decoration = expose(task); + if(decoration == null) + return; + + Intent broadcastIntent = new Intent(AstridApiConstants.BROADCAST_SEND_DECORATIONS); + broadcastIntent.putExtra(AstridApiConstants.EXTRAS_ADDON, TimerPlugin.IDENTIFIER); + broadcastIntent.putExtra(AstridApiConstants.EXTRAS_RESPONSE, decoration); + broadcastIntent.putExtra(AstridApiConstants.EXTRAS_TASK_ID, task.getId()); + context.sendBroadcast(broadcastIntent, AstridApiConstants.PERMISSION_READ); + } + private String buildFormat(long elapsed) { return DateUtils.formatElapsedTime(elapsed / 1000L); } + @Override + public String getAddon() { + return TimerPlugin.IDENTIFIER; + } + } diff --git a/astrid/plugin-src/com/todoroo/astrid/timers/TimerPlugin.java b/astrid/plugin-src/com/todoroo/astrid/timers/TimerPlugin.java index 9c14628c7..6c0560be8 100644 --- a/astrid/plugin-src/com/todoroo/astrid/timers/TimerPlugin.java +++ b/astrid/plugin-src/com/todoroo/astrid/timers/TimerPlugin.java @@ -58,6 +58,7 @@ public class TimerPlugin extends BroadcastReceiver { Intent intent = new Intent(AstridApiConstants.BROADCAST_REQUEST_ACTIONS); intent.putExtra(AstridApiConstants.EXTRAS_TASK_ID, task.getId()); new TimerActionExposer().onReceive(context, intent); + new TimerDecorationExposer().updateDecoration(context, task); // update notification TimerPlugin.updateNotifications(context); diff --git a/astrid/src/com/todoroo/astrid/adapter/TaskAdapter.java b/astrid/src/com/todoroo/astrid/adapter/TaskAdapter.java index 403a5d500..d7e881fd4 100644 --- a/astrid/src/com/todoroo/astrid/adapter/TaskAdapter.java +++ b/astrid/src/com/todoroo/astrid/adapter/TaskAdapter.java @@ -647,7 +647,7 @@ public class TaskAdapter extends CursorAdapter implements Filterable { for(TaskDecorationExposer exposer : exposers) { TaskDecoration deco = exposer.expose(viewHolder.task); if(deco != null) - addNew(viewHolder.task.getId(), exposer.getClass().getName(), deco); + addNew(viewHolder.task.getId(), exposer.getAddon(), deco); } return true; diff --git a/astrid/src/com/todoroo/astrid/api/TaskDecorationExposer.java b/astrid/src/com/todoroo/astrid/api/TaskDecorationExposer.java index 59b071552..575b4952c 100644 --- a/astrid/src/com/todoroo/astrid/api/TaskDecorationExposer.java +++ b/astrid/src/com/todoroo/astrid/api/TaskDecorationExposer.java @@ -18,4 +18,6 @@ public interface TaskDecorationExposer { */ public TaskDecoration expose(Task task); + public String getAddon(); + }