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;