From 2c5c9ee356b21bfe20349e286c27d467cc95a2d3 Mon Sep 17 00:00:00 2001 From: Tim Su Date: Sun, 4 Jan 2009 03:29:54 +0000 Subject: [PATCH] Cleaned up activity result code, added snooze minutes to snooze button, and updated the colors. --- AndroidManifest.xml | 4 +-- res/values/colors.xml | 10 +++---- res/values/strings.xml | 2 ++ src/com/timsu/astrid/activities/TagList.java | 18 +++++++++-- src/com/timsu/astrid/activities/TaskEdit.java | 15 +++++++--- src/com/timsu/astrid/activities/TaskList.java | 14 ++------- src/com/timsu/astrid/activities/TaskView.java | 23 +++++++++----- .../astrid/activities/TaskViewNotifier.java | 30 ++++++++++++++----- src/com/timsu/astrid/utilities/Constants.java | 12 ++++++++ .../timsu/astrid/utilities/Notifications.java | 7 ++--- 10 files changed, 92 insertions(+), 43 deletions(-) create mode 100644 src/com/timsu/astrid/utilities/Constants.java diff --git a/AndroidManifest.xml b/AndroidManifest.xml index aed713f04..95d75fb99 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -1,8 +1,8 @@ + android:versionCode="35" + android:versionName="1.9.9"> diff --git a/res/values/colors.xml b/res/values/colors.xml index 7d8111b2f..e358bb67c 100644 --- a/res/values/colors.xml +++ b/res/values/colors.xml @@ -20,7 +20,7 @@ --> - #FF340A + #FFFB0000 #ff777777 #ffFFBF9E @@ -32,9 +32,9 @@ #ffbbbbbb #ffff0000 - #fffff75c - #ffa1b4ff - #ff5274ff - #ff0033ff + #ffffffff + #ffc0c4dc + #ff7381c8 + #ff446592 diff --git a/res/values/strings.xml b/res/values/strings.xml index 44cb8645c..27edc7a49 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -179,12 +179,14 @@ Let's do it! Snooze! No, quit. + Minutes to snooze? Delete Delete this task? Remove this tag from all tasks? Stop the timer? + diff --git a/src/com/timsu/astrid/activities/TagList.java b/src/com/timsu/astrid/activities/TagList.java index 46f9e3637..784446018 100644 --- a/src/com/timsu/astrid/activities/TagList.java +++ b/src/com/timsu/astrid/activities/TagList.java @@ -54,6 +54,7 @@ import com.timsu.astrid.data.tag.TagModelForView; import com.timsu.astrid.data.task.TaskController; import com.timsu.astrid.data.task.TaskIdentifier; import com.timsu.astrid.data.task.TaskModelForList; +import com.timsu.astrid.utilities.Constants; /** List all tags and allows a user to see all tasks for a given tag @@ -213,10 +214,23 @@ public class TagList extends Activity { @Override protected void onActivityResult(int requestCode, int resultCode, Intent intent) { - if(resultCode == TaskList.RESULT_CODE_CLEAR_TAG) + switch(resultCode) { + case Constants.RESULT_GO_HOME: finish(); - else + break; + + default: fillData(); + } + } + + @Override + public void onWindowFocusChanged(boolean hasFocus) { + super.onWindowFocusChanged(hasFocus); + + if(hasFocus && TaskList.shouldCloseInstance) { // user wants to quit + finish(); + } } // --- list adapter diff --git a/src/com/timsu/astrid/activities/TaskEdit.java b/src/com/timsu/astrid/activities/TaskEdit.java index 949628d11..5a3e42155 100644 --- a/src/com/timsu/astrid/activities/TaskEdit.java +++ b/src/com/timsu/astrid/activities/TaskEdit.java @@ -64,6 +64,7 @@ import com.timsu.astrid.data.tag.TagModelForView; import com.timsu.astrid.data.task.TaskIdentifier; import com.timsu.astrid.data.task.TaskModelForEdit; import com.timsu.astrid.data.task.TaskModelForList; +import com.timsu.astrid.utilities.Constants; import com.timsu.astrid.utilities.Notifications; import com.timsu.astrid.widget.DateControlSet; import com.timsu.astrid.widget.DateWithNullControlSet; @@ -80,9 +81,6 @@ public class TaskEdit extends TaskModificationTabbedActivity { private static final int DISCARD_ID = Menu.FIRST + 1; private static final int DELETE_ID = Menu.FIRST + 2; - // activity results - public static final int RESULT_DELETE = RESULT_FIRST_USER + 10; - // other constants private static final int MAX_TAGS = 5; private static final int MAX_ALERTS = 5; @@ -451,6 +449,15 @@ public class TaskEdit extends TaskModificationTabbedActivity { * ======================================================= event handlers * ====================================================================== */ + @Override + public void onWindowFocusChanged(boolean hasFocus) { + super.onWindowFocusChanged(hasFocus); + + if(hasFocus && TaskList.shouldCloseInstance) { // user wants to quit + finish(); + } + } + private void saveButtonClick() { setResult(RESULT_OK); finish(); @@ -473,7 +480,7 @@ public class TaskEdit extends TaskModificationTabbedActivity { public void onClick(DialogInterface dialog, int which) { controller.deleteTask(model.getTaskIdentifier()); shouldSaveState = false; - setResult(RESULT_DELETE); + setResult(Constants.RESULT_GO_HOME); finish(); } }) diff --git a/src/com/timsu/astrid/activities/TaskList.java b/src/com/timsu/astrid/activities/TaskList.java index 9967eb34f..9987acdcf 100644 --- a/src/com/timsu/astrid/activities/TaskList.java +++ b/src/com/timsu/astrid/activities/TaskList.java @@ -51,6 +51,7 @@ import com.timsu.astrid.data.tag.TagModelForView; import com.timsu.astrid.data.task.TaskController; import com.timsu.astrid.data.task.TaskIdentifier; import com.timsu.astrid.data.task.TaskModelForList; +import com.timsu.astrid.utilities.Constants; import com.timsu.astrid.utilities.StartupReceiver; @@ -65,9 +66,6 @@ public class TaskList extends Activity { // bundle tokens public static final String TAG_TOKEN = "tag"; - // result codes - public static final int RESULT_CODE_CLEAR_TAG = RESULT_FIRST_USER; - // activities private static final int ACTIVITY_CREATE = 0; private static final int ACTIVITY_VIEW = 1; @@ -354,14 +352,6 @@ public class TaskList extends Activity { * ======================================================= event handlers * ====================================================================== */ - @Override - protected void onActivityResult(int requestCode, int resultCode, - Intent intent) { - super.onActivityResult(requestCode, resultCode, intent); - - // we would fill the list, but it is already happening on focus change - } - @Override public void onWindowFocusChanged(boolean hasFocus) { super.onWindowFocusChanged(hasFocus); @@ -454,7 +444,7 @@ public class TaskList extends Activity { fillData(); return true; case CONTEXT_FILTER_TAG: - setResult(RESULT_CODE_CLEAR_TAG); + setResult(Constants.RESULT_GO_HOME); finish(); return true; } diff --git a/src/com/timsu/astrid/activities/TaskView.java b/src/com/timsu/astrid/activities/TaskView.java index 97e9f50de..408ef797c 100644 --- a/src/com/timsu/astrid/activities/TaskView.java +++ b/src/com/timsu/astrid/activities/TaskView.java @@ -37,6 +37,7 @@ import android.widget.TextView; import com.timsu.astrid.R; import com.timsu.astrid.data.task.TaskIdentifier; import com.timsu.astrid.data.task.TaskModelForView; +import com.timsu.astrid.utilities.Constants; import com.timsu.astrid.utilities.DateUtilities; import com.timsu.astrid.widget.NumberPicker; import com.timsu.astrid.widget.NumberPickerDialog; @@ -56,9 +57,6 @@ public class TaskView extends TaskModificationActivity { private static final int EDIT_ID = Menu.FIRST; private static final int DELETE_ID = Menu.FIRST + 1; - // activity results - public static final int RESULT_DISMISS = RESULT_FIRST_USER + 20; - // UI components private TextView name; private TextView elapsed; @@ -231,15 +229,26 @@ public class TaskView extends TaskModificationActivity { * ======================================================= event handlers * ====================================================================== */ + @Override + public void onWindowFocusChanged(boolean hasFocus) { + super.onWindowFocusChanged(hasFocus); + + if(hasFocus && TaskList.shouldCloseInstance) { // user wants to quit + finish(); + } + } + @Override protected void onActivityResult(int requestCode, int resultCode, Intent intent) { - - // if user doesn't click 'back', finish this activity too - if(resultCode != RESULT_CANCELED) { + switch(resultCode) { + case Constants.RESULT_GO_HOME: + case RESULT_CANCELED: setResult(resultCode); finish(); - } else { + break; + + default: populateFields(); } } diff --git a/src/com/timsu/astrid/activities/TaskViewNotifier.java b/src/com/timsu/astrid/activities/TaskViewNotifier.java index 9945723ec..9ae2df3b9 100644 --- a/src/com/timsu/astrid/activities/TaskViewNotifier.java +++ b/src/com/timsu/astrid/activities/TaskViewNotifier.java @@ -8,7 +8,11 @@ import android.content.res.Resources; import android.os.Bundle; import com.timsu.astrid.R; +import com.timsu.astrid.utilities.Constants; import com.timsu.astrid.utilities.Notifications; +import com.timsu.astrid.widget.NumberPicker; +import com.timsu.astrid.widget.NumberPickerDialog; +import com.timsu.astrid.widget.NumberPickerDialog.OnNumberPickedListener; public class TaskViewNotifier extends TaskView { @@ -39,14 +43,14 @@ public class TaskViewNotifier extends TaskView { .setMessage(response) .setIcon(android.R.drawable.ic_dialog_alert) - // yes, i will do it: just closes this box + // yes, i will do it: just closes this dialog .setPositiveButton(R.string.notify_yes, null) // no, i will ignore: quits application .setNegativeButton(R.string.notify_no, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { - setResult(RESULT_CANCELED); + setResult(Constants.RESULT_GO_HOME); TaskList.shouldCloseInstance = true; finish(); } @@ -56,15 +60,27 @@ public class TaskViewNotifier extends TaskView { .setNeutralButton(R.string.notify_snooze, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { + snoozeAlert(); + } + }) + + .show(); + } + + private void snoozeAlert() { + Resources r = getResources(); + // ask how long + new NumberPickerDialog(this, + new OnNumberPickedListener() { + @Override + public void onNumberPicked(NumberPicker view, int number) { Notifications.createSnoozeAlarm(TaskViewNotifier.this, - model.getTaskIdentifier()); + model.getTaskIdentifier(), number * 60); - setResult(RESULT_CANCELED); + setResult(Constants.RESULT_GO_HOME); TaskList.shouldCloseInstance = true; finish(); } - }) - - .show(); + }, r.getString(R.string.notify_snooze_title), 15, 15, 0, 120).show(); } } diff --git a/src/com/timsu/astrid/utilities/Constants.java b/src/com/timsu/astrid/utilities/Constants.java new file mode 100644 index 000000000..99bb27761 --- /dev/null +++ b/src/com/timsu/astrid/utilities/Constants.java @@ -0,0 +1,12 @@ +package com.timsu.astrid.utilities; + +import android.app.Activity; + +/** Astrid constants */ +public class Constants { + + // result codes + + /** Return to the task list view */ + public static final int RESULT_GO_HOME = Activity.RESULT_FIRST_USER; +} diff --git a/src/com/timsu/astrid/utilities/Notifications.java b/src/com/timsu/astrid/utilities/Notifications.java index 8c1022d84..760a94af4 100644 --- a/src/com/timsu/astrid/utilities/Notifications.java +++ b/src/com/timsu/astrid/utilities/Notifications.java @@ -36,8 +36,6 @@ public class Notifications extends BroadcastReceiver { private static final int DEADLINE_NOTIFY_SECS = 60 * 60; /** # of seconds after deadline to repeat reminder*/ private static final int DEADLINE_REPEAT = 10 * 60; - /** # of seconds to snooze */ - private static final int SNOOZE_SECONDS = 10 * 60; // flags public static final int FLAG_DEFINITE_DEADLINE = 1 << 0; @@ -207,9 +205,10 @@ public class Notifications extends BroadcastReceiver { } /** Create a 'snooze' reminder for this task */ - public static void createSnoozeAlarm(Context context, TaskIdentifier id) { + public static void createSnoozeAlarm(Context context, TaskIdentifier id, + int secondsToSnooze) { scheduleAlarm(context, id.getId(), System.currentTimeMillis() + - SNOOZE_SECONDS * 1000, FLAG_SNOOZE); + secondsToSnooze * 1000, FLAG_SNOOZE); } /** Helper method to create a PendingIntent from an ID & flags */