diff --git a/res/values/strings.xml b/res/values/strings.xml
index 973f79c14..432743b6c 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -218,6 +218,8 @@ If you don\'t want to see the new task right after you complete the old one, you
Stop Timer
Save
+ Task Saved: due in %s
+ Task Saved
diff --git a/src/com/timsu/astrid/activities/TaskEdit.java b/src/com/timsu/astrid/activities/TaskEdit.java
index 1a982a812..c078636d7 100644
--- a/src/com/timsu/astrid/activities/TaskEdit.java
+++ b/src/com/timsu/astrid/activities/TaskEdit.java
@@ -56,6 +56,7 @@ import android.widget.SimpleCursorAdapter;
import android.widget.Spinner;
import android.widget.TabHost;
import android.widget.TextView;
+import android.widget.Toast;
import android.widget.ToggleButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
@@ -71,6 +72,7 @@ import com.timsu.astrid.data.task.TaskModelForEdit;
import com.timsu.astrid.data.task.TaskModelForList;
import com.timsu.astrid.data.task.AbstractTaskModel.RepeatInfo;
import com.timsu.astrid.utilities.Constants;
+import com.timsu.astrid.utilities.DateUtilities;
import com.timsu.astrid.utilities.Notifications;
import com.timsu.astrid.utilities.Preferences;
import com.timsu.astrid.widget.DateControlSet;
@@ -284,11 +286,43 @@ public class TaskEdit extends TaskModificationTabbedActivity {
saveTags();
saveAlerts();
Notifications.updateAlarm(this, controller, alertController, model);
+
+ Date dueDate = model.getPreferredDueDate();
+ if (dueDate == null) {
+ dueDate = model.getDefiniteDueDate();
+ }
+ if (dueDate != null) {
+ showSaveToast(dueDate);
+ } else {
+ showSaveToast();
+ }
+
} catch (Exception e) {
Log.e("astrid", "Error saving", e);
}
}
+ /**
+ * Displays a Toast reporting that the selected task has been saved and is
+ * due in 'x' amount of time, to 2 time-units of precision (e.g. Days + Hours).
+ * @param dueDate the Date when the task is due
+ */
+ private void showSaveToast(Date dueDate) {
+ int timeInSeconds = (int)((dueDate.getTime() - System.currentTimeMillis())/1000L);
+ String formattedDate = DateUtilities.getDurationString(getResources(), timeInSeconds, 2);
+ Toast.makeText(this,
+ getResources().getString(R.string.taskEdit_onTaskSave_Due, formattedDate),
+ Toast.LENGTH_SHORT).show();
+ }
+
+ /**
+ * Displays a Toast reporting that the selected task has been saved.
+ * Use this version when no due Date has been set.
+ */
+ private void showSaveToast() {
+ Toast.makeText(this, R.string.taskEdit_onTaskSave_notDue, Toast.LENGTH_SHORT).show();
+ }
+
/** Save task tags. Must be called after task already has an ID */
private void saveTags() {
Set tagsToDelete;