diff --git a/astrid/plugin-src/com/todoroo/astrid/gcal/GCalControlSet.java b/astrid/plugin-src/com/todoroo/astrid/gcal/GCalControlSet.java
index 076029347..b4a2c6915 100644
--- a/astrid/plugin-src/com/todoroo/astrid/gcal/GCalControlSet.java
+++ b/astrid/plugin-src/com/todoroo/astrid/gcal/GCalControlSet.java
@@ -135,14 +135,16 @@ public class GCalControlSet extends PopupControlSet {
values.put("calendar_id", calendarId);
calendarUri = GCalHelper.createTaskEvent(task, cr, values);
- task.setValue(Task.CALENDAR_URI, calendarUri.toString());
-
- if (calendarSelector.getSelectedItemPosition() != 0 && !hasEvent) {
- // pop up the new event
- Intent intent = new Intent(Intent.ACTION_EDIT, calendarUri);
- intent.putExtra("beginTime", values.getAsLong("dtstart"));
- intent.putExtra("endTime", values.getAsLong("dtend"));
- activity.startActivity(intent);
+ if(calendarUri != null) {
+ task.setValue(Task.CALENDAR_URI, calendarUri.toString());
+
+ if (calendarSelector.getSelectedItemPosition() != 0 && !hasEvent) {
+ // pop up the new event
+ Intent intent = new Intent(Intent.ACTION_EDIT, calendarUri);
+ intent.putExtra("beginTime", values.getAsLong("dtstart"));
+ intent.putExtra("endTime", values.getAsLong("dtend"));
+ activity.startActivity(intent);
+ }
}
} catch (Exception e) {
@@ -174,6 +176,7 @@ public class GCalControlSet extends PopupControlSet {
return null;
}
+ @SuppressWarnings("nls")
private void viewCalendarEvent() {
if(calendarUri == null)
return;
diff --git a/astrid/plugin-src/com/todoroo/astrid/reminders/NotificationFragment.java b/astrid/plugin-src/com/todoroo/astrid/reminders/NotificationFragment.java
index 84554ef37..d7f059faf 100644
--- a/astrid/plugin-src/com/todoroo/astrid/reminders/NotificationFragment.java
+++ b/astrid/plugin-src/com/todoroo/astrid/reminders/NotificationFragment.java
@@ -38,6 +38,7 @@ import android.widget.LinearLayout;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.TimePicker;
+import android.widget.Toast;
import com.timsu.astrid.R;
import com.todoroo.andlib.sql.QueryTemplate;
@@ -157,6 +158,7 @@ public class NotificationFragment extends TaskListFragment implements OnTimeSetL
Task task = new Task();
task.setId(taskId);
PluginServices.getTaskService().setComplete(task, true);
+ Toast.makeText(getActivity(), R.string.rmd_NoA_completed_toast, Toast.LENGTH_LONG).show();
getActivity().finish();
}
});
diff --git a/astrid/plugin-src/com/todoroo/astrid/reminders/ReminderDialog.java b/astrid/plugin-src/com/todoroo/astrid/reminders/ReminderDialog.java
index 93fc82377..b7f3e7f50 100644
--- a/astrid/plugin-src/com/todoroo/astrid/reminders/ReminderDialog.java
+++ b/astrid/plugin-src/com/todoroo/astrid/reminders/ReminderDialog.java
@@ -5,9 +5,9 @@ import java.util.Date;
import android.app.Dialog;
import android.app.TimePickerDialog.OnTimeSetListener;
import android.view.View;
-import android.view.View.OnClickListener;
import android.widget.TextView;
import android.widget.TimePicker;
+import android.widget.Toast;
import com.timsu.astrid.R;
import com.todoroo.andlib.utility.DateUtilities;
@@ -17,11 +17,16 @@ import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.service.StatisticsConstants;
import com.todoroo.astrid.service.StatisticsService;
+/**
+ * A dialog that shows your task reminder
+ *
+ * @author sbosley
+ *
+ */
+public class ReminderDialog extends Dialog {
-public class ReminderDialog {
-
- public static void showReminderDialog(final AstridActivity activity, final long taskId, String title) {
- final Dialog d = new Dialog(activity, R.style.ReminderDialog);
+ public ReminderDialog(final AstridActivity activity, final long taskId, String title) {
+ super(activity, R.style.ReminderDialog);
final SnoozeCallback dialogSnooze = new SnoozeCallback() {
@Override
public void snoozeForTime(long time) {
@@ -29,7 +34,7 @@ public class ReminderDialog {
task.setId(taskId);
task.setValue(Task.REMINDER_SNOOZE, time);
PluginServices.getTaskService().save(task);
- d.dismiss();
+ dismiss();
StatisticsService.reportEvent(StatisticsConstants.TASK_SNOOZE);
}
};
@@ -44,47 +49,47 @@ public class ReminderDialog {
dialogSnooze.snoozeForTime(alarmTime.getTime());
}
};
- d.setContentView(R.layout.astrid_reminder_view);
+ setContentView(R.layout.astrid_reminder_view);
// set up listeners
- d.findViewById(R.id.dismiss).setOnClickListener(new OnClickListener() {
+ findViewById(R.id.dismiss).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
- d.dismiss();
+ dismiss();
}
});
- d.findViewById(R.id.reminder_snooze).setOnClickListener(new OnClickListener() {
+ findViewById(R.id.reminder_snooze).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
NotificationFragment.snooze(activity, onTimeSet, dialogSnooze);
}
});
- d.findViewById(R.id.reminder_complete).setOnClickListener(new OnClickListener() {
+ findViewById(R.id.reminder_complete).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
Task task = new Task();
task.setId(taskId);
PluginServices.getTaskService().setComplete(task, true);
- d.dismiss();
+ Toast.makeText(activity, R.string.rmd_NoA_completed_toast, Toast.LENGTH_LONG).show();
+ dismiss();
}
});
- d.findViewById(R.id.reminder_edit).setOnClickListener(new OnClickListener() {
+ findViewById(R.id.reminder_edit).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
- d.dismiss();
+ dismiss();
activity.onTaskListItemClicked(taskId);
}
});
- ((TextView) d.findViewById(R.id.reminder_title)).setText(title);
- ((TextView) d.findViewById(R.id.reminder_message)).setText(
+ ((TextView) findViewById(R.id.reminder_title)).setText(title);
+ ((TextView) findViewById(R.id.reminder_message)).setText(
Notifications.getRandomReminder(activity.getResources().getStringArray(R.array.reminder_responses)));
- d.setOwnerActivity(activity);
- d.show();
+ setOwnerActivity(activity);
}
}
diff --git a/astrid/plugin-src/com/todoroo/astrid/reminders/ReminderView.java b/astrid/plugin-src/com/todoroo/astrid/reminders/ReminderView.java
deleted file mode 100644
index 5d6987ca3..000000000
--- a/astrid/plugin-src/com/todoroo/astrid/reminders/ReminderView.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package com.todoroo.astrid.reminders;
-
-import android.content.Context;
-import android.util.AttributeSet;
-import android.widget.LinearLayout;
-
-public class ReminderView extends LinearLayout {
-
- public ReminderView(Context context, AttributeSet attrs) {
- super(context, attrs);
- // TODO Auto-generated constructor stub
- }
-
-}
diff --git a/astrid/plugin-src/com/todoroo/astrid/repeats/RepeatTaskCompleteListener.java b/astrid/plugin-src/com/todoroo/astrid/repeats/RepeatTaskCompleteListener.java
index 98d64e1f7..6d3c52cee 100644
--- a/astrid/plugin-src/com/todoroo/astrid/repeats/RepeatTaskCompleteListener.java
+++ b/astrid/plugin-src/com/todoroo/astrid/repeats/RepeatTaskCompleteListener.java
@@ -87,29 +87,6 @@ public class RepeatTaskCompleteListener extends BroadcastReceiver {
context.sendOrderedBroadcast(broadcastIntent, null);
Flags.set(Flags.REFRESH);
return;
-
-// // clone to create new task
-// Flags.set(Flags.ACTFM_SUPPRESS_SYNC);
-// Flags.set(Flags.GTASKS_SUPPRESS_SYNC);
-// Task clone = PluginServices.getTaskService().clone(task);
-// clone.setValue(Task.DUE_DATE, newDueDate);
-// clone.setValue(Task.HIDE_UNTIL, hideUntil);
-// clone.setValue(Task.COMPLETION_DATE, 0L);
-// clone.setValue(Task.TIMER_START, 0L);
-// clone.setValue(Task.ELAPSED_SECONDS, 0);
-// clone.setValue(Task.REMINDER_SNOOZE, 0L);
-// clone.setValue(Task.REMINDER_LAST, 0L);
-// clone.setValue(Task.CALENDAR_URI, ""); //$NON-NLS-1$
-//
-// GCalHelper.createTaskEventIfEnabled(clone, false);
-// PluginServices.getTaskService().save(clone);
-//
-// // clear recurrence from completed task so it can be re-completed
-// task.setValue(Task.RECURRENCE, ""); //$NON-NLS-1$
-// task.setValue(Task.DETAILS_DATE, 0L);
-//
-// PluginServices.getTaskService().save(task);
-
}
}
diff --git a/astrid/res/values/strings-reminders.xml b/astrid/res/values/strings-reminders.xml
index 638b88d16..294a11918 100644
--- a/astrid/res/values/strings-reminders.xml
+++ b/astrid/res/values/strings-reminders.xml
@@ -54,8 +54,8 @@
Snooze
-
- Go Away!
+
+ Congratulations on finishing \'%s\'!
@@ -308,7 +308,7 @@
- Lovely weather for a job like this, isn\'t it?
- A spot of tea while you work on this?
- If only you had already done this, then you could go outside and play.
- - It\’s time. You can\’t put off the inevitable.
+ - It\'s time. You can\'t put off the inevitable.
- I die a little every time you ignore me.
diff --git a/astrid/src/com/todoroo/astrid/activity/AstridActivity.java b/astrid/src/com/todoroo/astrid/activity/AstridActivity.java
index a127f555a..843a71642 100644
--- a/astrid/src/com/todoroo/astrid/activity/AstridActivity.java
+++ b/astrid/src/com/todoroo/astrid/activity/AstridActivity.java
@@ -284,7 +284,7 @@ public class AstridActivity extends FragmentActivity
long taskId = customIntent.getLongExtra(NotificationFragment.TOKEN_ID, 0);
if (taskId > 0) {
String text = intent.getStringExtra(Notifications.EXTRAS_TEXT);
- ReminderDialog.showReminderDialog(AstridActivity.this, taskId, text);
+ new ReminderDialog(AstridActivity.this, taskId, text).show();
}
// Remove broadcast
@@ -296,13 +296,18 @@ public class AstridActivity extends FragmentActivity
private class RepeatConfirmationReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
- long taskId = intent.getLongExtra(AstridApiConstants.EXTRAS_TASK_ID, 0);
+ long taskId = intent.getLongExtra(
+ AstridApiConstants.EXTRAS_TASK_ID, 0);
if (taskId > 0) {
- long oldDueDate = intent.getLongExtra(AstridApiConstants.EXTRAS_OLD_DUE_DATE, 0);
- long newDueDate = intent.getLongExtra(AstridApiConstants.EXTRAS_NEW_DUE_DATE, 0);
- Task task = PluginServices.getTaskService().fetchById(taskId, DateChangedAlerts.REPEAT_RESCHEDULED_PROPERTIES);
-
- DateChangedAlerts.showRepeatTaskRescheduledDialog(AstridActivity.this, task, oldDueDate, newDueDate);
+ long oldDueDate = intent.getLongExtra(
+ AstridApiConstants.EXTRAS_OLD_DUE_DATE, 0);
+ long newDueDate = intent.getLongExtra(
+ AstridApiConstants.EXTRAS_NEW_DUE_DATE, 0);
+ Task task = PluginServices.getTaskService().fetchById(taskId,
+ DateChangedAlerts.REPEAT_RESCHEDULED_PROPERTIES);
+
+ DateChangedAlerts.showRepeatTaskRescheduledDialog(
+ AstridActivity.this, task, oldDueDate, newDueDate);
}
}
}
diff --git a/astrid/src/com/todoroo/astrid/ui/DateChangedAlerts.java b/astrid/src/com/todoroo/astrid/ui/DateChangedAlerts.java
index 8bb4b3155..63fb56fca 100644
--- a/astrid/src/com/todoroo/astrid/ui/DateChangedAlerts.java
+++ b/astrid/src/com/todoroo/astrid/ui/DateChangedAlerts.java
@@ -52,8 +52,10 @@ public class DateChangedAlerts {
final long taskId = task.getId();
d.setContentView(R.layout.astrid_reminder_view);
+ Button okButton = (Button) d.findViewById(R.id.reminder_complete);
+
d.findViewById(R.id.reminder_snooze).setVisibility(View.GONE);
- ((Button) d.findViewById(R.id.reminder_complete)).setText(R.string.DLG_ok);
+ okButton.setText(R.string.DLG_ok);
((TextView) d.findViewById(R.id.reminder_title)).setText(activity.getString(R.string.TLA_quickadd_confirm_title, originalText));
Spanned speechBubbleText = constructSpeechBubbleTextForQuickAdd(activity, task);
@@ -91,9 +93,12 @@ public class DateChangedAlerts {
final Dialog d = new Dialog(activity, R.style.ReminderDialog);
d.setContentView(R.layout.astrid_reminder_view);
+ Button okButton = (Button) d.findViewById(R.id.reminder_complete);
+ Button undoButton = (Button) d.findViewById(R.id.reminder_edit);
+
d.findViewById(R.id.reminder_snooze).setVisibility(View.GONE);
- ((Button) d.findViewById(R.id.reminder_complete)).setText(R.string.DLG_ok);
- ((Button) d.findViewById(R.id.reminder_edit)).setText(R.string.DLG_undo);
+ okButton.setText(R.string.DLG_ok);
+ undoButton.setText(R.string.DLG_undo);
((TextView) d.findViewById(R.id.reminder_title)).setText(activity.getString(R.string.repeat_rescheduling_dialog_title, task.getValue(Task.TITLE)));
String oldDueDateString = getRelativeDateAndTimeString(activity, oldDueDate);
@@ -105,7 +110,7 @@ public class DateChangedAlerts {
setupOkAndDismissButtons(d);
setupHideCheckbox(d);
- d.findViewById(R.id.reminder_edit).setOnClickListener(new OnClickListener() {
+ undoButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
d.dismiss();
@@ -162,17 +167,17 @@ public class DateChangedAlerts {
String title = task.getValue(Task.TITLE);
long date = task.getValue(Task.DUE_DATE);
- String dueDate = "";
+ String dueString = "";
if (!TextUtils.isEmpty(task.getValue(Task.RECURRENCE))) {
- dueDate = getRecurrenceString(context, task);
+ dueString = getRecurrenceString(context, task);
}
- if (TextUtils.isEmpty(dueDate)) {
- dueDate = getRelativeDateAndTimeString(context, date);
+ if (TextUtils.isEmpty(dueString)) {
+ dueString = getRelativeDateAndTimeString(context, date);
}
- if (!TextUtils.isEmpty(dueDate))
- dueDate = context.getString(R.string.TLA_quickadd_confirm_speech_bubble_date, dueDate);
+ if (!TextUtils.isEmpty(dueString))
+ dueString = context.getString(R.string.TLA_quickadd_confirm_speech_bubble_date, dueString);
int priority = task.getValue(Task.IMPORTANCE);
if (priority >= priorityStrings.length)
@@ -181,18 +186,20 @@ public class DateChangedAlerts {
int color = context.getResources().getColor(colorsArray[priority]) - 0xff000000;
priorityString = String.format("%s", Integer.toHexString(color), priorityString);
- String fullString = context.getString(R.string.TLA_quickadd_confirm_speech_bubble, title, dueDate, priorityString);
+ String fullString = context.getString(R.string.TLA_quickadd_confirm_speech_bubble, title, dueString, priorityString);
return Html.fromHtml(fullString);
}
+ @SuppressWarnings("nls")
private static String getRelativeDateAndTimeString(Context context, long date) {
- String dueDate = date > 0 ? DateUtilities.getRelativeDay(context, date, false) : "";
+ String dueString = date > 0 ? DateUtilities.getRelativeDay(context, date, false) : "";
if(Task.hasDueTime(date))
- dueDate = String.format("%s at %s", dueDate, //$NON-NLS-1$
+ dueString = String.format("%s at %s", dueString, //$NON-NLS-1$
DateUtilities.getTimeString(context, new Date(date)));
- return dueDate;
+ return dueString;
}
+ @SuppressWarnings("nls")
private static String getRecurrenceString(Context context, Task task) {
try {
RRule rrule = new RRule(task.getValue(Task.RECURRENCE));
@@ -201,22 +208,30 @@ public class DateChangedAlerts {
R.array.repeat_interval);
String frequency = "";
Frequency freq = rrule.getFreq();
- if (freq == Frequency.DAILY) {
+ switch(freq) {
+ case DAILY:
frequency = dateAbbrev[0].toLowerCase();
- } else if (freq == Frequency.WEEKLY) {
+ break;
+ case WEEKLY:
frequency = dateAbbrev[1].toLowerCase();
- } else if (freq == Frequency.MONTHLY) {
+ break;
+ case MONTHLY:
frequency = dateAbbrev[2].toLowerCase();
- } else if (freq == Frequency.HOURLY) {
+ break;
+ case HOURLY:
frequency = dateAbbrev[3].toLowerCase();
- } else if (freq == Frequency.MINUTELY) {
+ break;
+ case MINUTELY:
frequency = dateAbbrev[4].toLowerCase();
- } else if (freq == Frequency.YEARLY) {
+ break;
+ case YEARLY:
frequency = dateAbbrev[5].toLowerCase();
}
+
if (!TextUtils.isEmpty(frequency)) {
String date = String.format("%s %s", rrule.getInterval(), frequency); //$NON-NLS-1$
- return String.format(context.getString(R.string.repeat_detail_duedate), date).toLowerCase(); // Every freq int
+ return String.format(context.getString(R.string.repeat_detail_duedate),
+ date).toLowerCase(); // Every freq int
}
} catch (ParseException e) {