diff --git a/src/main/java/org/tasks/ui/DeadlineControlSet.java b/src/main/java/org/tasks/ui/DeadlineControlSet.java index 6ab9e27ed..b75d89054 100644 --- a/src/main/java/org/tasks/ui/DeadlineControlSet.java +++ b/src/main/java/org/tasks/ui/DeadlineControlSet.java @@ -32,7 +32,6 @@ import static com.todoroo.andlib.utility.AndroidUtilities.atLeastHoneycomb; import static java.util.Arrays.asList; import static org.tasks.date.DateTimeUtils.newDate; import static org.tasks.date.DateTimeUtils.newDateTime; -import static org.tasks.preferences.ResourceResolver.getData; import static org.tasks.preferences.ResourceResolver.getResource; public class DeadlineControlSet extends TaskEditControlSetBase { @@ -58,6 +57,7 @@ public class DeadlineControlSet extends TaskEditControlSetBase { private FragmentActivity activity; private Spinner dueDateSpinner; private Spinner dueTimeSpinner; + private View clearButton; private ArrayAdapter dueDateAdapter; private ArrayAdapter dueTimeAdapter; private long date = 0; @@ -86,7 +86,6 @@ public class DeadlineControlSet extends TaskEditControlSetBase { tomorrowString = activity.getString(R.string.tomorrow); dueDateOptions.addAll(asList( "", - activity.getString(R.string.TEA_no_date), todayString, tomorrowString, "", @@ -109,6 +108,7 @@ public class DeadlineControlSet extends TaskEditControlSetBase { private void refreshDisplayView() { updateDueDateOptions(); updateDueTimeOptions(); + clearButton.setVisibility(date > 0 ? View.VISIBLE : View.GONE); } private void updateDueDateOptions() { @@ -127,7 +127,7 @@ public class DeadlineControlSet extends TaskEditControlSetBase { dueDateOptions.set(0, DateUtilities.getLongDateStringHideYear(newDate(date))); } } - dueDateOptions.set(4, nextWeekString); + dueDateOptions.set(3, nextWeekString); dueDateAdapter.notifyDataSetChanged(); dueDateSpinner.setSelection(0); } @@ -160,6 +160,15 @@ public class DeadlineControlSet extends TaskEditControlSetBase { @Override protected void afterInflate() { View view = getView(); + clearButton = view.findViewById(R.id.clear_due_date); + clearButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + date = 0; + time = -1; + refreshDisplayView(); + } + }); dueDateSpinner = (Spinner) view.findViewById(R.id.due_date); dueDateAdapter = new ArrayAdapter(activity, android.R.layout.simple_spinner_item, dueDateOptions) { @Override @@ -298,26 +307,20 @@ public class DeadlineControlSet extends TaskEditControlSetBase { case 0: return; case 1: - date = 0; - setTime(-1); - dueDateAdapter.notifyDataSetChanged(); + setDate(today.getMillis()); break; case 2: - date = today.getMillis(); + setDate(today.plusDays(1).getMillis()); break; case 3: - date = today.plusDays(1).getMillis(); + setDate(today.plusWeeks(1).getMillis()); break; case 4: - date = today.plusWeeks(1).getMillis(); - break; - case 5: MyDatePickerDialog dialog = new MyDatePickerDialog(); dialog.initialize(new DatePickerDialog.OnDateSetListener() { @Override public void onDateSet(DatePickerDialog datePickerDialog, int year, int month, int day) { - date = new DateTime(year, month + 1, day, 0, 0, 0, 0).getMillis(); - refreshDisplayView(); + setDate(new DateTime(year, month + 1, day, 0, 0, 0, 0).getMillis()); } }, today.getYear(), today.getMonthOfYear() - 1, today.getDayOfMonth(), false); dialog.setOnCancelListener(new DialogInterface.OnCancelListener() { @@ -329,9 +332,6 @@ public class DeadlineControlSet extends TaskEditControlSetBase { dialog.show(activity.getSupportFragmentManager(), FRAG_TAG_PICK_A_DATE); break; } - - dueDateAdapter.notifyDataSetChanged(); - updateDueTimeOptions(); } @Override @@ -372,7 +372,7 @@ public class DeadlineControlSet extends TaskEditControlSetBase { dialog.setOnDismissListener(new DialogInterface.OnDismissListener() { @Override public void onDismiss(DialogInterface dialog) { - updateDueTimeOptions(); + refreshDisplayView(); } }); dialog.show(activity.getSupportFragmentManager(), FRAG_TAG_PICK_A_TIME); @@ -387,6 +387,14 @@ public class DeadlineControlSet extends TaskEditControlSetBase { }); } + private void setDate(long millis) { + date = millis; + if (date == 0) { + time = -1; + } + refreshDisplayView(); + } + private void setTime(int millisOfDay) { time = millisOfDay; @@ -396,10 +404,9 @@ public class DeadlineControlSet extends TaskEditControlSetBase { dateTime = dateTime.plusDays(1); } date = dateTime.withMillisOfDay(0).getMillis(); - updateDueDateOptions(); } - updateDueTimeOptions(); + refreshDisplayView(); } @Override diff --git a/src/main/res/drawable-hdpi/ic_cancel_black_24dp.png b/src/main/res/drawable-hdpi/ic_cancel_black_24dp.png new file mode 100644 index 000000000..50dbfef93 Binary files /dev/null and b/src/main/res/drawable-hdpi/ic_cancel_black_24dp.png differ diff --git a/src/main/res/drawable-hdpi/ic_cancel_white_24dp.png b/src/main/res/drawable-hdpi/ic_cancel_white_24dp.png new file mode 100644 index 000000000..73f5116bd Binary files /dev/null and b/src/main/res/drawable-hdpi/ic_cancel_white_24dp.png differ diff --git a/src/main/res/drawable-xhdpi/ic_cancel_black_24dp.png b/src/main/res/drawable-xhdpi/ic_cancel_black_24dp.png new file mode 100644 index 000000000..6253c0d47 Binary files /dev/null and b/src/main/res/drawable-xhdpi/ic_cancel_black_24dp.png differ diff --git a/src/main/res/drawable-xhdpi/ic_cancel_white_24dp.png b/src/main/res/drawable-xhdpi/ic_cancel_white_24dp.png new file mode 100644 index 000000000..6ebbc8316 Binary files /dev/null and b/src/main/res/drawable-xhdpi/ic_cancel_white_24dp.png differ diff --git a/src/main/res/drawable-xxhdpi/ic_cancel_black_24dp.png b/src/main/res/drawable-xxhdpi/ic_cancel_black_24dp.png new file mode 100644 index 000000000..98c59c176 Binary files /dev/null and b/src/main/res/drawable-xxhdpi/ic_cancel_black_24dp.png differ diff --git a/src/main/res/drawable-xxhdpi/ic_cancel_white_24dp.png b/src/main/res/drawable-xxhdpi/ic_cancel_white_24dp.png new file mode 100644 index 000000000..dc32a14f9 Binary files /dev/null and b/src/main/res/drawable-xxhdpi/ic_cancel_white_24dp.png differ diff --git a/src/main/res/drawable/ic_cancel_black_24dp.png b/src/main/res/drawable/ic_cancel_black_24dp.png new file mode 100644 index 000000000..f19848466 Binary files /dev/null and b/src/main/res/drawable/ic_cancel_black_24dp.png differ diff --git a/src/main/res/drawable/ic_cancel_white_24dp.png b/src/main/res/drawable/ic_cancel_white_24dp.png new file mode 100644 index 000000000..787e25937 Binary files /dev/null and b/src/main/res/drawable/ic_cancel_white_24dp.png differ diff --git a/src/main/res/layout/alarm_edit_row.xml b/src/main/res/layout/alarm_edit_row.xml index c67a3e96c..00816e5be 100644 --- a/src/main/res/layout/alarm_edit_row.xml +++ b/src/main/res/layout/alarm_edit_row.xml @@ -29,14 +29,18 @@ + android:paddingStart="10dp" + android:paddingLeft="10dp" + android:paddingRight="10dp" + android:paddingEnd="10dp" /> diff --git a/src/main/res/layout/control_set_deadline.xml b/src/main/res/layout/control_set_deadline.xml index 330653ee4..a3caed84b 100644 --- a/src/main/res/layout/control_set_deadline.xml +++ b/src/main/res/layout/control_set_deadline.xml @@ -1,22 +1,47 @@ - + android:layout_weight="100" + android:orientation="horizontal"> + + + + - + + + android:layout_height="fill_parent" + android:layout_gravity="center" + android:layout_weight="1" + android:alpha="@dimen/drawer_icon_alpha" + android:background="?attr/selectableItemBackgroundBorderless" + android:clickable="true" + android:contentDescription="@android:string/cancel" + android:paddingEnd="10dp" + android:paddingLeft="10dp" + android:paddingRight="10dp" + android:paddingStart="10dp" + android:src="?attr/ic_cancel" + android:visibility="gone" /> diff --git a/src/main/res/values/attrs.xml b/src/main/res/values/attrs.xml index acfa84a10..7c95a4d40 100644 --- a/src/main/res/values/attrs.xml +++ b/src/main/res/values/attrs.xml @@ -58,6 +58,7 @@ + diff --git a/src/main/res/values/styles_dark.xml b/src/main/res/values/styles_dark.xml index fb198f24f..2f4f7ba0f 100644 --- a/src/main/res/values/styles_dark.xml +++ b/src/main/res/values/styles_dark.xml @@ -66,6 +66,7 @@ @drawable/ic_close_white_24dp @drawable/textfield_underline_white @style/SpinnerNoPadding + @drawable/ic_cancel_white_24dp