From 7cbd19435c5de1e65753f26bac40e2a0b25ea2d2 Mon Sep 17 00:00:00 2001 From: Tetsutoki Shiozawa Date: Tue, 8 Aug 2017 13:25:00 +0900 Subject: [PATCH] Remove unnecessary right padding from time picker Symptom: When the device language was set to Spanish, "A.M." label was not fully displayed on the time picker widget. "M." was lacked. Root cause: There are unnecessary right paddings on the layout definition of time picker. It uselessly consumes the room for ampm_layout. Bug: 64498105 Change-Id: Ie52fafc0fb7d6d6ea5b0ca2eaeb53755d4aebc19 --- .../android/widget/TimePickerClockDelegate.java | 13 +++++++++---- core/res/res/layout/time_picker_header_material.xml | 8 ++------ 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/core/java/android/widget/TimePickerClockDelegate.java b/core/java/android/widget/TimePickerClockDelegate.java index 77670b35a1eaf..6c039d873493e 100644 --- a/core/java/android/widget/TimePickerClockDelegate.java +++ b/core/java/android/widget/TimePickerClockDelegate.java @@ -454,6 +454,7 @@ class TimePickerClockDelegate extends TimePicker.AbstractTimePickerDelegate { (RelativeLayout.LayoutParams) mAmPmLayout.getLayoutParams(); if (params.getRule(RelativeLayout.RIGHT_OF) != 0 || params.getRule(RelativeLayout.LEFT_OF) != 0) { + final int margin = (int) (mContext.getResources().getDisplayMetrics().density * 8); // Horizontal mode, with AM/PM appearing to left/right of hours and minutes. final boolean isAmPmAtLeft; if (TextUtils.getLayoutDirectionFromLocale(mLocale) == View.LAYOUT_DIRECTION_LTR) { @@ -461,10 +462,6 @@ class TimePickerClockDelegate extends TimePicker.AbstractTimePickerDelegate { } else { isAmPmAtLeft = !isAmPmAtStart; } - if (mIsAmPmAtLeft == isAmPmAtLeft) { - // AM/PM is already at the correct location. No change needed. - return; - } if (isAmPmAtLeft) { params.removeRule(RelativeLayout.RIGHT_OF); @@ -473,6 +470,14 @@ class TimePickerClockDelegate extends TimePicker.AbstractTimePickerDelegate { params.removeRule(RelativeLayout.LEFT_OF); params.addRule(RelativeLayout.RIGHT_OF, mMinuteView.getId()); } + + if (isAmPmAtStart) { + params.setMarginStart(0); + params.setMarginEnd(margin); + } else { + params.setMarginStart(margin); + params.setMarginEnd(0); + } mIsAmPmAtLeft = isAmPmAtLeft; } else if (params.getRule(RelativeLayout.BELOW) != 0 || params.getRule(RelativeLayout.ABOVE) != 0) { diff --git a/core/res/res/layout/time_picker_header_material.xml b/core/res/res/layout/time_picker_header_material.xml index ced17227aa2d7..580c9133a4368 100644 --- a/core/res/res/layout/time_picker_header_material.xml +++ b/core/res/res/layout/time_picker_header_material.xml @@ -76,16 +76,14 @@ android:layout_height="wrap_content" android:layout_toRightOf="@+id/minutes" android:layout_alignBaseline="@+id/minutes" - android:paddingStart="4dp" - android:paddingEnd="4dp" + android:layout_marginStart="8dp" + android:layout_marginEnd="0dp" android:orientation="vertical" android:baselineAlignedChildIndex="1">