Don't set date picker dialog title on date changed

This never worked as intended and we never want an automatically
assigned date picker title, anyway.

Also updates method annotations.

Bug: 24786592
Change-Id: I6d7681f808f7ef0b7da38d8e09177dc87617fd4f
This commit is contained in:
Alan Viverette
2016-01-13 11:13:50 -05:00
parent 32895546c6
commit 8ae4ff7005

View File

@@ -23,7 +23,6 @@ import android.content.Context;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.os.Bundle;
import android.text.format.DateUtils;
import android.util.TypedValue;
import android.view.LayoutInflater;
import android.view.View;
@@ -49,19 +48,16 @@ public class DatePickerDialog extends AlertDialog implements OnClickListener,
private static final String DAY = "day";
private final DatePicker mDatePicker;
private final Calendar mCalendar;
private OnDateSetListener mDateSetListener;
private boolean mTitleNeedsUpdate = true;
/**
* Creates a new date picker dialog for the current date using the parent
* context's default date picker dialog theme.
*
* @param context the parent context
*/
public DatePickerDialog(Context context) {
public DatePickerDialog(@NonNull Context context) {
this(context, 0);
}
@@ -73,7 +69,7 @@ public class DatePickerDialog extends AlertDialog implements OnClickListener,
* this dialog, or {@code 0} to use the parent
* {@code context}'s default alert dialog theme
*/
public DatePickerDialog(Context context, @StyleRes int themeResId) {
public DatePickerDialog(@NonNull Context context, @StyleRes int themeResId) {
super(context, resolveDialogTheme(context, themeResId));
final Context themeContext = getContext();
@@ -85,11 +81,10 @@ public class DatePickerDialog extends AlertDialog implements OnClickListener,
setButton(BUTTON_NEGATIVE, themeContext.getString(R.string.cancel), this);
setButtonPanelLayoutHint(LAYOUT_HINT_SIDE);
mCalendar = Calendar.getInstance();
final int year = mCalendar.get(Calendar.YEAR);
final int monthOfYear = mCalendar.get(Calendar.MONTH);
final int dayOfMonth = mCalendar.get(Calendar.DAY_OF_MONTH);
final Calendar calendar = Calendar.getInstance();
final int year = calendar.get(Calendar.YEAR);
final int monthOfYear = calendar.get(Calendar.MONTH);
final int dayOfMonth = calendar.get(Calendar.DAY_OF_MONTH);
mDatePicker = (DatePicker) view.findViewById(R.id.datePicker);
mDatePicker.init(year, monthOfYear, dayOfMonth, this);
mDatePicker.setValidationCallback(mValidationCallback);
@@ -107,7 +102,7 @@ public class DatePickerDialog extends AlertDialog implements OnClickListener,
* @param dayOfMonth the initially selected day of month (1-31, depending
* on month)
*/
public DatePickerDialog(@Nullable Context context, @Nullable OnDateSetListener listener,
public DatePickerDialog(@NonNull Context context, @Nullable OnDateSetListener listener,
int year, int month, int dayOfMonth) {
this(context, 0, listener, year, month, dayOfMonth);
}
@@ -135,7 +130,7 @@ public class DatePickerDialog extends AlertDialog implements OnClickListener,
mDatePicker.updateDate(year, month, dayOfMonth);
}
static int resolveDialogTheme(@NonNull Context context, @StyleRes int themeResId) {
static @StyleRes int resolveDialogTheme(@NonNull Context context, @StyleRes int themeResId) {
if (themeResId == 0) {
final TypedValue outValue = new TypedValue();
context.getTheme().resolveAttribute(R.attr.datePickerDialogTheme, outValue, true);
@@ -146,9 +141,8 @@ public class DatePickerDialog extends AlertDialog implements OnClickListener,
}
@Override
public void onDateChanged(DatePicker view, int year, int month, int dayOfMonth) {
public void onDateChanged(@NonNull DatePicker view, int year, int month, int dayOfMonth) {
mDatePicker.init(year, month, dayOfMonth, this);
updateTitle(year, month, dayOfMonth);
}
/**
@@ -161,7 +155,7 @@ public class DatePickerDialog extends AlertDialog implements OnClickListener,
}
@Override
public void onClick(DialogInterface dialog, int which) {
public void onClick(@NonNull DialogInterface dialog, int which) {
switch (which) {
case BUTTON_POSITIVE:
if (mDateSetListener != null) {
@@ -200,29 +194,6 @@ public class DatePickerDialog extends AlertDialog implements OnClickListener,
mDatePicker.updateDate(year, month, dayOfMonth);
}
private void updateTitle(int year, int month, int dayOfMonth) {
if (!mDatePicker.getCalendarViewShown()) {
mCalendar.set(Calendar.YEAR, year);
mCalendar.set(Calendar.MONTH, month);
mCalendar.set(Calendar.DAY_OF_MONTH, dayOfMonth);
final String title = DateUtils.formatDateTime(mContext,
mCalendar.getTimeInMillis(),
DateUtils.FORMAT_SHOW_DATE
| DateUtils.FORMAT_SHOW_WEEKDAY
| DateUtils.FORMAT_SHOW_YEAR
| DateUtils.FORMAT_ABBREV_MONTH
| DateUtils.FORMAT_ABBREV_WEEKDAY);
setTitle(title);
mTitleNeedsUpdate = true;
} else if (mTitleNeedsUpdate) {
setTitle(R.string.date_picker_dialog_title);
mTitleNeedsUpdate = false;
}
}
@Override
public Bundle onSaveInstanceState() {
final Bundle state = super.onSaveInstanceState();