If task had no due time, edit box should reflect this

pull/14/head
Tim Su 16 years ago
parent 3e2c86ff72
commit 5b5dd9e55e

@ -690,14 +690,17 @@ public final class TaskEditActivity extends TabActivity {
OnItemSelectedListener, OnDeadlineTimeSetListener, OnDateSetListener, OnItemSelectedListener, OnDeadlineTimeSetListener, OnDateSetListener,
OnCancelListener { OnCancelListener {
private static final long SPECIFIC_DATE = -1; private static final int SPECIFIC_DATE = -1;
private static final int EXISTING_TIME_UNSET = -2;
private final Spinner spinner; private final Spinner spinner;
private ArrayAdapter<UrgencyValue> urgencyAdapter; private ArrayAdapter<UrgencyValue> urgencyAdapter;
private int previousSetting = Task.URGENCY_NONE; private int previousSetting = Task.URGENCY_NONE;
private int existingDateHour = -1;
private int existingDateMinutes = -1; private long existingDate = EXISTING_TIME_UNSET;
private int existingDateHour = EXISTING_TIME_UNSET;
private int existingDateMinutes = EXISTING_TIME_UNSET;
/** /**
* Container class for urgencies * Container class for urgencies
@ -762,6 +765,8 @@ public final class TaskEditActivity extends TabActivity {
for(int i = 0; i < urgencyValues.length; i++) for(int i = 0; i < urgencyValues.length; i++)
if(urgencyValues[i].dueDate == dueDate) { if(urgencyValues[i].dueDate == dueDate) {
selection = i; selection = i;
if(dueDate > 0)
existingDate = dueDate;
break; break;
} }
@ -773,11 +778,14 @@ public final class TaskEditActivity extends TabActivity {
Date dueDateAsDate = new Date(dueDate); Date dueDateAsDate = new Date(dueDate);
updated[0] = new UrgencyValue(DateUtilities.getDateStringWithTime(TaskEditActivity.this, dueDateAsDate), updated[0] = new UrgencyValue(DateUtilities.getDateStringWithTime(TaskEditActivity.this, dueDateAsDate),
Task.URGENCY_SPECIFIC_DAY_TIME, dueDate); Task.URGENCY_SPECIFIC_DAY_TIME, dueDate);
existingDate = dueDate;
existingDateHour = dueDateAsDate.getHours(); existingDateHour = dueDateAsDate.getHours();
existingDateMinutes = dueDateAsDate.getMinutes(); existingDateMinutes = dueDateAsDate.getMinutes();
} else { } else {
updated[0] = new UrgencyValue(DateUtilities.getDateString(TaskEditActivity.this, new Date(dueDate)), updated[0] = new UrgencyValue(DateUtilities.getDateString(TaskEditActivity.this, new Date(dueDate)),
Task.URGENCY_SPECIFIC_DAY, dueDate); Task.URGENCY_SPECIFIC_DAY, dueDate);
existingDate = dueDate;
existingDateHour = SPECIFIC_DATE;
} }
selection = 0; selection = 0;
urgencyValues = updated; urgencyValues = updated;
@ -800,7 +808,7 @@ public final class TaskEditActivity extends TabActivity {
UrgencyValue item = urgencyAdapter.getItem(position); UrgencyValue item = urgencyAdapter.getItem(position);
if(item.dueDate == SPECIFIC_DATE) { if(item.dueDate == SPECIFIC_DATE) {
customSetting = item.setting; customSetting = item.setting;
customDate = new Date(); customDate = new Date(existingDate == EXISTING_TIME_UNSET ? DateUtilities.now() : existingDate);
customDate.setSeconds(0); customDate.setSeconds(0);
DatePickerDialog datePicker = new DatePickerDialog(TaskEditActivity.this, DatePickerDialog datePicker = new DatePickerDialog(TaskEditActivity.this,
this, 1900 + customDate.getYear(), customDate.getMonth(), customDate.getDate()); this, 1900 + customDate.getYear(), customDate.getMonth(), customDate.getDate());
@ -831,14 +839,17 @@ public final class TaskEditActivity extends TabActivity {
return; return;
} }
if(existingDateHour == -1) boolean specificTime = existingDateHour != SPECIFIC_DATE;
if(existingDateHour < 0) {
existingDateHour = customDate.getHours(); existingDateHour = customDate.getHours();
if(existingDateMinutes == -1)
existingDateMinutes= customDate.getMinutes(); existingDateMinutes= customDate.getMinutes();
}
DeadlineTimePickerDialog timePicker = new DeadlineTimePickerDialog(TaskEditActivity.this, this, DeadlineTimePickerDialog timePicker = new DeadlineTimePickerDialog(TaskEditActivity.this, this,
existingDateHour, existingDateMinutes, existingDateHour, existingDateMinutes,
DateUtilities.is24HourFormat(TaskEditActivity.this)); DateUtilities.is24HourFormat(TaskEditActivity.this),
specificTime);
timePicker.setOnCancelListener(this); timePicker.setOnCancelListener(this);
timePicker.show(); timePicker.show();
} }

@ -82,9 +82,9 @@ public class DeadlineTimePickerDialog extends AlertDialog implements OnClickList
*/ */
public DeadlineTimePickerDialog(Context context, public DeadlineTimePickerDialog(Context context,
OnDeadlineTimeSetListener callBack, OnDeadlineTimeSetListener callBack,
int hourOfDay, int minute, boolean is24HourView) { int hourOfDay, int minute, boolean is24HourView, boolean hasTime) {
this(context, android.R.style.Theme_Dialog, this(context, android.R.style.Theme_Dialog,
callBack, hourOfDay, minute, is24HourView); callBack, hourOfDay, minute, is24HourView, hasTime);
} }
/** /**
@ -98,7 +98,7 @@ public class DeadlineTimePickerDialog extends AlertDialog implements OnClickList
public DeadlineTimePickerDialog(Context context, public DeadlineTimePickerDialog(Context context,
int theme, int theme,
OnDeadlineTimeSetListener callBack, OnDeadlineTimeSetListener callBack,
int hourOfDay, int minute, boolean is24HourView) { int hourOfDay, int minute, boolean is24HourView, boolean hasTime) {
super(context, theme); super(context, theme);
mCallback = callBack; mCallback = callBack;
mInitialHourOfDay = hourOfDay; mInitialHourOfDay = hourOfDay;
@ -118,7 +118,7 @@ public class DeadlineTimePickerDialog extends AlertDialog implements OnClickList
setView(view); setView(view);
mTimePicker = (TimePicker) view.findViewById(R.id.timePicker); mTimePicker = (TimePicker) view.findViewById(R.id.timePicker);
mHasTime = (CheckBox) view.findViewById(R.id.hasTime); mHasTime = (CheckBox) view.findViewById(R.id.hasTime);
mHasTime.setOnCheckedChangeListener(new OnCheckedChangeListener() { OnCheckedChangeListener listener = new OnCheckedChangeListener() {
@Override @Override
public void onCheckedChanged(CompoundButton buttonView, public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) { boolean isChecked) {
@ -128,8 +128,10 @@ public class DeadlineTimePickerDialog extends AlertDialog implements OnClickList
else else
setTitle(R.string.TEA_urgency_time_none); setTitle(R.string.TEA_urgency_time_none);
} }
}); };
mHasTime.setChecked(true); mHasTime.setOnCheckedChangeListener(listener);
mHasTime.setChecked(hasTime);
listener.onCheckedChanged(null, hasTime);
// initialize state // initialize state
mTimePicker.setCurrentHour(mInitialHourOfDay); mTimePicker.setCurrentHour(mInitialHourOfDay);

Loading…
Cancel
Save