From 69ca7de49b12926f027bfb2a722ef5c09757ecb9 Mon Sep 17 00:00:00 2001 From: Henning Hall Date: Sun, 23 Aug 2020 21:41:29 +0200 Subject: [PATCH] fix picker width and wheel spacing (#234) --- .../henninghall/date_picker/ui/Wheels.java | 18 ++++++++++++- .../date_picker/wheels/AmPmWheel.java | 2 +- .../date_picker/wheels/MinutesWheel.java | 2 +- .../henninghall/date_picker/wheels/Wheel.java | 7 ++--- android/src/main/res/layout/ios_clone.xml | 26 ++++++++++++++++++- 5 files changed, 48 insertions(+), 7 deletions(-) diff --git a/android/src/main/java/com/henninghall/date_picker/ui/Wheels.java b/android/src/main/java/com/henninghall/date_picker/ui/Wheels.java index 6e3ee01..6b855ca 100644 --- a/android/src/main/java/com/henninghall/date_picker/ui/Wheels.java +++ b/android/src/main/java/com/henninghall/date_picker/ui/Wheels.java @@ -2,6 +2,7 @@ package com.henninghall.date_picker.ui; import android.view.View; +import com.henninghall.date_picker.models.Variant; import com.henninghall.date_picker.pickers.Picker; import com.henninghall.date_picker.R; import com.henninghall.date_picker.State; @@ -25,9 +26,13 @@ import java.util.Arrays; import java.util.HashMap; import java.util.List; +import cn.carbswang.android.numberpickerview.library.NumberPickerView; + public class Wheels { private final State state; + private final NumberPickerView emptyStart; + private final NumberPickerView emptyEnd; private HourWheel hourWheel; private DayWheel dayWheel; private MinutesWheel minutesWheel; @@ -52,8 +57,9 @@ public class Wheels { minutesWheel = new MinutesWheel(getPickerWithId(R.id.minutes), state); ampmWheel = new AmPmWheel(getPickerWithId(R.id.ampm), state); hourWheel = new HourWheel(getPickerWithId(R.id.hour), state); + emptyStart = rootView.findViewById(R.id.empty_start); + emptyEnd = rootView.findViewById(R.id.empty_end); wheelPerWheelType = getWheelPerType(); - changeAmPmWhenPassingMidnightOrNoon(); } @@ -80,16 +86,26 @@ public class Wheels { void updateHeight() { int shownCount = state.derived.getShownCount(); applyOnAll(new SetShowCount(shownCount)); + if(state.getVariant() == Variant.iosClone) { + emptyStart.setShownCount(shownCount); + emptyEnd.setShownCount(shownCount); + } } void updateDividerHeight() { int height = state.getDividerHeight(); applyOnAll(new SetDividerHeight(height)); + if(state.getVariant() == Variant.iosClone) { + emptyStart.setDividerHeight(height); + emptyEnd.setDividerHeight(height); + } } void updateWheelOrder() { pickerWrapper.removeAll(); + if(state.getVariant() == Variant.iosClone) pickerWrapper.addPicker(emptyStart); addInOrder(); + if(state.getVariant() == Variant.iosClone) pickerWrapper.addPicker(emptyEnd); } Wheel getWheel(WheelType type){ diff --git a/android/src/main/java/com/henninghall/date_picker/wheels/AmPmWheel.java b/android/src/main/java/com/henninghall/date_picker/wheels/AmPmWheel.java index cb95ae0..233e416 100644 --- a/android/src/main/java/com/henninghall/date_picker/wheels/AmPmWheel.java +++ b/android/src/main/java/com/henninghall/date_picker/wheels/AmPmWheel.java @@ -47,7 +47,7 @@ public class AmPmWheel extends Wheel { @Override public Paint.Align getTextAlign() { - return Paint.Align.LEFT; + return Paint.Align.RIGHT; } } diff --git a/android/src/main/java/com/henninghall/date_picker/wheels/MinutesWheel.java b/android/src/main/java/com/henninghall/date_picker/wheels/MinutesWheel.java index 3c3f96f..740fb50 100644 --- a/android/src/main/java/com/henninghall/date_picker/wheels/MinutesWheel.java +++ b/android/src/main/java/com/henninghall/date_picker/wheels/MinutesWheel.java @@ -47,7 +47,7 @@ public class MinutesWheel extends Wheel { @Override public Paint.Align getTextAlign() { - return state.derived.usesAmPm() ? Paint.Align.RIGHT: Paint.Align.LEFT; + return Paint.Align.RIGHT; } } diff --git a/android/src/main/java/com/henninghall/date_picker/wheels/Wheel.java b/android/src/main/java/com/henninghall/date_picker/wheels/Wheel.java index e8609d6..12357a8 100644 --- a/android/src/main/java/com/henninghall/date_picker/wheels/Wheel.java +++ b/android/src/main/java/com/henninghall/date_picker/wheels/Wheel.java @@ -123,10 +123,11 @@ public abstract class Wheel { public int getHorizontalPadding() { Mode mode = state.getMode(); switch (mode){ - case time: return 15; - case date: return 10; + case date: return 15; + case time: case datetime: - default: return 5; + default: + return 5; } } } diff --git a/android/src/main/res/layout/ios_clone.xml b/android/src/main/res/layout/ios_clone.xml index e38e915..feb88e9 100644 --- a/android/src/main/res/layout/ios_clone.xml +++ b/android/src/main/res/layout/ios_clone.xml @@ -13,9 +13,18 @@ android:orientation="horizontal" android:gravity="center_horizontal" > - + + +