From 885bd849654e7710ffb5be70cf838876e5d2d85c Mon Sep 17 00:00:00 2001 From: Tim Su Date: Mon, 30 Aug 2010 03:22:39 -0700 Subject: [PATCH] Modified widget to work under Android 1.5. I don't think the setBackgroundResource stuff is completedly fixed, but it's a start --- astrid/res/drawable/importance_1.xml | 5 +++ astrid/res/drawable/importance_2.xml | 5 +++ astrid/res/drawable/importance_3.xml | 5 +++ astrid/res/drawable/importance_4.xml | 5 +++ astrid/res/drawable/importance_5.xml | 5 +++ astrid/res/drawable/importance_6.xml | 5 +++ astrid/res/layout/widget_power_44.xml | 43 +++++++++++++------ astrid/res/values/colors.xml | 2 + astrid/res/values/strings-rmilk.xml | 3 -- astrid/res/values/strings-widget.xml | 4 +- .../todoroo/astrid/widget/PowerWidget.java | 32 ++++++-------- 11 files changed, 77 insertions(+), 37 deletions(-) create mode 100644 astrid/res/drawable/importance_1.xml create mode 100644 astrid/res/drawable/importance_2.xml create mode 100644 astrid/res/drawable/importance_3.xml create mode 100644 astrid/res/drawable/importance_4.xml create mode 100644 astrid/res/drawable/importance_5.xml create mode 100644 astrid/res/drawable/importance_6.xml diff --git a/astrid/res/drawable/importance_1.xml b/astrid/res/drawable/importance_1.xml new file mode 100644 index 000000000..e31872102 --- /dev/null +++ b/astrid/res/drawable/importance_1.xml @@ -0,0 +1,5 @@ + + + + diff --git a/astrid/res/drawable/importance_2.xml b/astrid/res/drawable/importance_2.xml new file mode 100644 index 000000000..0c27768bb --- /dev/null +++ b/astrid/res/drawable/importance_2.xml @@ -0,0 +1,5 @@ + + + + diff --git a/astrid/res/drawable/importance_3.xml b/astrid/res/drawable/importance_3.xml new file mode 100644 index 000000000..550872a86 --- /dev/null +++ b/astrid/res/drawable/importance_3.xml @@ -0,0 +1,5 @@ + + + + diff --git a/astrid/res/drawable/importance_4.xml b/astrid/res/drawable/importance_4.xml new file mode 100644 index 000000000..801f7687d --- /dev/null +++ b/astrid/res/drawable/importance_4.xml @@ -0,0 +1,5 @@ + + + + diff --git a/astrid/res/drawable/importance_5.xml b/astrid/res/drawable/importance_5.xml new file mode 100644 index 000000000..8ee1f3599 --- /dev/null +++ b/astrid/res/drawable/importance_5.xml @@ -0,0 +1,5 @@ + + + + diff --git a/astrid/res/drawable/importance_6.xml b/astrid/res/drawable/importance_6.xml new file mode 100644 index 000000000..530446324 --- /dev/null +++ b/astrid/res/drawable/importance_6.xml @@ -0,0 +1,5 @@ + + + + diff --git a/astrid/res/layout/widget_power_44.xml b/astrid/res/layout/widget_power_44.xml index dab3aabad..8b321b787 100644 --- a/astrid/res/layout/widget_power_44.xml +++ b/astrid/res/layout/widget_power_44.xml @@ -111,7 +111,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="100" - android:layout_gravity="center_vertical" + android:layout_gravity="center_vertical" android:maxLines="2" android:textSize="14sp" android:textStyle="bold" android:paddingLeft="5dip" /> + android:layout_alignParentBottom="true"> + android:layout_height="36dp" + android:orientation="horizontal" + android:gravity="center_horizontal"> + + + + + + diff --git a/astrid/res/values/colors.xml b/astrid/res/values/colors.xml index bc8dbafcc..27c4c2e23 100644 --- a/astrid/res/values/colors.xml +++ b/astrid/res/values/colors.xml @@ -3,6 +3,8 @@ #FFFB6666 #FFFFFFFF #ff777777 + + #ffffffff #ffcfcfcf #ffb8b8b8 diff --git a/astrid/res/values/strings-rmilk.xml b/astrid/res/values/strings-rmilk.xml index 1bf04dc4e..e2ed8184b 100644 --- a/astrid/res/values/strings-rmilk.xml +++ b/astrid/res/values/strings-rmilk.xml @@ -2,9 +2,6 @@ - - Astrid Remember the Milk Plugin - diff --git a/astrid/res/values/strings-widget.xml b/astrid/res/values/strings-widget.xml index 06fc5f65a..3a2055dc2 100644 --- a/astrid/res/values/strings-widget.xml +++ b/astrid/res/values/strings-widget.xml @@ -4,8 +4,8 @@ - Astrid (Power Pack 4x2) - Astrid (Power Pack 4x4) + Astrid 4x2 (beta!) + Astrid 4x4 (beta!) Configure Widget diff --git a/astrid/src/com/todoroo/astrid/widget/PowerWidget.java b/astrid/src/com/todoroo/astrid/widget/PowerWidget.java index c519a1f37..09590baf8 100644 --- a/astrid/src/com/todoroo/astrid/widget/PowerWidget.java +++ b/astrid/src/com/todoroo/astrid/widget/PowerWidget.java @@ -97,8 +97,13 @@ public class PowerWidget extends AppWidgetProvider { R.id.checkbox3, R.id.checkbox4, R.id.checkbox5, R.id.checkbox6, R.id.checkbox7, R.id.checkbox8, R.id.checkbox9, R.id.checkbox10 }; + // # of rows defined in the xml file private static final int ROW_LIMIT = 10; - private static int[] importanceColors = null; + + public static int[] IMPORTANCE_DRAWABLES = new int[] { + R.drawable.importance_1, R.drawable.importance_2, R.drawable.importance_3, + R.drawable.importance_4, R.drawable.importance_5, R.drawable.importance_6 + }; @Override public void onUpdate(Context context, AppWidgetManager appWidgetManager, @@ -119,21 +124,13 @@ public class PowerWidget extends AppWidgetProvider { @Override public void onReceive(Context context, Intent intent) { - if (ACTION_MARK_COMPLETE.equals(intent.getAction())){ + if (ACTION_SCROLL_UP.equals(intent.getAction()) || + ACTION_SCROLL_DOWN.equals(intent.getAction()) || + ACTION_MARK_COMPLETE.equals(intent.getAction())){ Intent updateIntent = new Intent(context, UpdateService.class); - updateIntent.setAction(ACTION_MARK_COMPLETE); + updateIntent.setAction(intent.getAction()); updateIntent.putExtras(intent.getExtras()); context.startService(updateIntent); - } else if (ACTION_SCROLL_UP.equals(intent.getAction()) || ACTION_SCROLL_DOWN.equals(intent.getAction())){ - int id = intent.getIntExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, AppWidgetManager.INVALID_APPWIDGET_ID); - if (id != AppWidgetManager.INVALID_APPWIDGET_ID){ - int scrollOffset = intent.getIntExtra(EXTRA_SCROLL_OFFSET, 0); - Intent updateIntent = new Intent(context, UpdateService.class); - updateIntent.setAction(intent.getAction()); - updateIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, id); - updateIntent.putExtra(EXTRA_SCROLL_OFFSET, scrollOffset); - context.startService(updateIntent); - } } else { super.onReceive(context, intent); } @@ -207,7 +204,7 @@ public class PowerWidget extends AppWidgetProvider { int[] appWidgetIds = null; int appWidgetId = AppWidgetManager.INVALID_APPWIDGET_ID; - if (intent != null && (ACTION_SCROLL_UP.equals(intent.getAction()) || ACTION_SCROLL_DOWN.equals(intent.getAction()))) { + if (intent != null && intent.hasExtra(EXTRA_SCROLL_OFFSET)) { scrollOffset = intent.getIntExtra(EXTRA_SCROLL_OFFSET, 0); appWidgetIds = intent.getIntArrayExtra(APP_WIDGET_IDS); appWidgetId = intent.getIntExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, AppWidgetManager.INVALID_APPWIDGET_ID); @@ -344,10 +341,6 @@ public class PowerWidget extends AppWidgetProvider { boolean canScrollDown = cursor.getCount() > 1; - if(importanceColors == null) { - importanceColors = Task.getImportanceColors(getResources()); - } - Task task = new Task(); int position; for (position = 0; position < cursor.getCount() && position < ROW_LIMIT; position++) { @@ -361,7 +354,7 @@ public class PowerWidget extends AppWidgetProvider { long taskId = task.getValue(Task.ID); // importance - views.setInt(TASK_IMPORTANCE[position], "setBackgroundColor", importanceColors[task.getValue(Task.IMPORTANCE)]); + views.setImageViewResource(TASK_IMPORTANCE[position], TASK_IMPORTANCE[task.getValue(Task.IMPORTANCE)]); // check box Intent markCompleteIntent = new Intent(context, PowerWidget.class); @@ -369,6 +362,7 @@ public class PowerWidget extends AppWidgetProvider { markCompleteIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId); markCompleteIntent.putExtra(COMPLETED_TASK_ID, taskId); markCompleteIntent.putExtra(COMPLETED_TASK_POSITION, scrollOffset + position); + markCompleteIntent.putExtra(EXTRA_SCROLL_OFFSET, scrollOffset); markCompleteIntent.setType(COMPLETED_TASK_ID + taskId); PendingIntent pMarkCompleteIntent = PendingIntent.getBroadcast(context, 0, markCompleteIntent, PendingIntent.FLAG_UPDATE_CURRENT);