diff options
author | Craig Stout <cstout@google.com> | 2014-07-17 11:32:09 -0700 |
---|---|---|
committer | Craig Stout <cstout@google.com> | 2014-07-17 23:28:48 +0000 |
commit | abdd154334eced2595d42e17a9dbac242a9af7da (patch) | |
tree | 87e5734af1c54b8f97e1be14f837b3ba8e5f5402 | |
parent | 0048da2114b54357e4901f40930afc7d503e0e24 (diff) | |
download | frameworks_base-abdd154334eced2595d42e17a9dbac242a9af7da.zip frameworks_base-abdd154334eced2595d42e17a9dbac242a9af7da.tar.gz frameworks_base-abdd154334eced2595d42e17a9dbac242a9af7da.tar.bz2 |
Fix timepicker double done buttons.
Leanback theme uses a legacy layout with a done button, but
apps won't necessarily have target apilevel L.
Change-Id: Ib38b08df1fe07bd8fb4e64e93633ce0b7eb12567
-rw-r--r-- | core/java/android/app/TimePickerDialog.java | 6 | ||||
-rw-r--r-- | core/java/android/widget/LegacyTimePickerDelegate.java | 9 | ||||
-rw-r--r-- | core/java/android/widget/TimePicker.java | 8 | ||||
-rw-r--r-- | core/java/android/widget/TimePickerDelegate.java | 3 |
4 files changed, 21 insertions, 5 deletions
diff --git a/core/java/android/app/TimePickerDialog.java b/core/java/android/app/TimePickerDialog.java index ff2a174..a2f3050 100644 --- a/core/java/android/app/TimePickerDialog.java +++ b/core/java/android/app/TimePickerDialog.java @@ -113,7 +113,6 @@ public class TimePickerDialog extends AlertDialog if (targetSdkVersion < Build.VERSION_CODES.L) { setIcon(0); setTitle(R.string.time_picker_dialog_title); - setButton(BUTTON_POSITIVE, themeContext.getText(R.string.date_time_done), this); } final LayoutInflater inflater = LayoutInflater.from(themeContext); @@ -122,6 +121,11 @@ public class TimePickerDialog extends AlertDialog mTimePicker = (TimePicker) view.findViewById(R.id.timePicker); mTimePicker.setShowDoneButton(true); + // If time picker layout has no done button, add a dialog button. + if (!mTimePicker.isShowDoneButton()) { + setButton(BUTTON_POSITIVE, themeContext.getText(R.string.date_time_done), this); + } + mTimePicker.setDismissCallback(new TimePicker.TimePickerDismissCallback() { @Override public void dismiss(TimePicker view, boolean isCancel, int hourOfDay, int minute) { diff --git a/core/java/android/widget/LegacyTimePickerDelegate.java b/core/java/android/widget/LegacyTimePickerDelegate.java index 6dd70ba..70db211 100644 --- a/core/java/android/widget/LegacyTimePickerDelegate.java +++ b/core/java/android/widget/LegacyTimePickerDelegate.java @@ -429,11 +429,14 @@ class LegacyTimePickerDelegate extends TimePicker.AbstractTimePickerDelegate { @Override public void setShowDoneButton(boolean showDoneButton) { - mShowDoneButton = showDoneButton; - updateDoneButton(); + if (mDoneButton != null) { + mShowDoneButton = showDoneButton; + updateDoneButton(); + } } - private boolean isShowDoneButton() { + @Override + public boolean isShowDoneButton() { return mShowDoneButton; } diff --git a/core/java/android/widget/TimePicker.java b/core/java/android/widget/TimePicker.java index 58a6562..026a8ee 100644 --- a/core/java/android/widget/TimePicker.java +++ b/core/java/android/widget/TimePicker.java @@ -163,6 +163,13 @@ public class TimePicker extends FrameLayout { /** * @hide */ + public boolean isShowDoneButton() { + return mDelegate.isShowDoneButton(); + } + + /** + * @hide + */ public void setDismissCallback(TimePickerDismissCallback callback) { mDelegate.setDismissCallback(callback); } @@ -234,6 +241,7 @@ public class TimePicker extends FrameLayout { void setEnabled(boolean enabled); boolean isEnabled(); + boolean isShowDoneButton(); void setShowDoneButton(boolean showDoneButton); void setDismissCallback(TimePickerDismissCallback callback); diff --git a/core/java/android/widget/TimePickerDelegate.java b/core/java/android/widget/TimePickerDelegate.java index a9af2f9..45be637 100644 --- a/core/java/android/widget/TimePickerDelegate.java +++ b/core/java/android/widget/TimePickerDelegate.java @@ -564,7 +564,8 @@ class TimePickerDelegate extends TimePicker.AbstractTimePickerDelegate implement return mRadialTimePickerView.getCurrentItemShowing(); } - private boolean isShowDoneButton() { + @Override + public boolean isShowDoneButton() { return mShowDoneButton; } |