summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCraig Stout <cstout@google.com>2014-07-17 11:32:09 -0700
committerCraig Stout <cstout@google.com>2014-07-17 23:28:48 +0000
commitabdd154334eced2595d42e17a9dbac242a9af7da (patch)
tree87e5734af1c54b8f97e1be14f837b3ba8e5f5402
parent0048da2114b54357e4901f40930afc7d503e0e24 (diff)
downloadframeworks_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.java6
-rw-r--r--core/java/android/widget/LegacyTimePickerDelegate.java9
-rw-r--r--core/java/android/widget/TimePicker.java8
-rw-r--r--core/java/android/widget/TimePickerDelegate.java3
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;
}