OSDN Git Service

Remove unnecessary right padding from time picker
authorTetsutoki Shiozawa <tetsutoki.shiozawa@sony.com>
Tue, 8 Aug 2017 04:25:00 +0000 (13:25 +0900)
committerShunta Sato <shunta.sato@sony.com>
Tue, 8 Jan 2019 03:14:05 +0000 (12:14 +0900)
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

core/java/android/widget/TimePickerClockDelegate.java
core/res/res/layout/time_picker_header_material.xml

index 77670b3..6c039d8 100644 (file)
@@ -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) {
index ced1722..580c913 100644 (file)
         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">
         <RadioButton
             android:id="@+id/am_label"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
-            android:paddingLeft="4dp"
-            android:paddingRight="4dp"
             android:paddingTop="8dp"
             android:paddingBottom="8dp"
             android:layout_marginBottom="-8dp"
             android:id="@+id/pm_label"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
-            android:paddingLeft="4dp"
-            android:paddingRight="4dp"
             android:paddingTop="8dp"
             android:paddingBottom="8dp"
             android:textAppearance="@style/TextAppearance.Material.TimePicker.AmPmLabel"