Cleaned up activity result code, added snooze minutes to snooze button, and updated the colors.

pull/14/head
Tim Su 16 years ago
parent d879e63129
commit 2c5c9ee356

@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.timsu.astrid"
android:versionCode="34"
android:versionName="1.9.8">
android:versionCode="35"
android:versionName="1.9.9">
<uses-permission android:name="android.permission.VIBRATE"/>

@ -20,7 +20,7 @@
-->
<resources>
<color name="task_list_overdue">#FF340A</color>
<color name="task_list_overdue">#FFFB0000</color>
<color name="task_list_done">#ff777777</color>
<color name="taskList_dueDateOverdue">#ffFFBF9E</color>
@ -32,9 +32,9 @@
<color name="view_table_values">#ffbbbbbb</color>
<color name="view_table_overdue">#ffff0000</color>
<color name="importance_1">#fffff75c</color>
<color name="importance_2">#ffa1b4ff</color>
<color name="importance_3">#ff5274ff</color>
<color name="importance_4">#ff0033ff</color>
<color name="importance_1">#ffffffff</color>
<color name="importance_2">#ffc0c4dc</color>
<color name="importance_3">#ff7381c8</color>
<color name="importance_4">#ff446592</color>
</resources>

@ -179,12 +179,14 @@
<string name="notify_yes">Let's do it!</string>
<string name="notify_snooze">Snooze!</string>
<string name="notify_no">No, quit.</string>
<string name="notify_snooze_title">Minutes to snooze?</string>
<string name="delete_title">Delete</string>
<string name="delete_this_task_title">Delete this task?</string>
<string name="delete_this_tag_title">Remove this tag from all tasks?</string>
<string name="stop_timer_title">Stop the timer?</string>
<!-- Notification -->
<skip />

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

@ -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<TaskModelForEdit> {
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<TaskModelForEdit> {
* ======================================================= 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<TaskModelForEdit> {
public void onClick(DialogInterface dialog, int which) {
controller.deleteTask(model.getTaskIdentifier());
shouldSaveState = false;
setResult(RESULT_DELETE);
setResult(Constants.RESULT_GO_HOME);
finish();
}
})

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

@ -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<TaskModelForView> {
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<TaskModelForView> {
* ======================================================= 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();
}
}

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

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

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

Loading…
Cancel
Save