From 6834df50f8f6ba8da187148cf528e680cf8530a0 Mon Sep 17 00:00:00 2001 From: Henning Hall Date: Thu, 19 Apr 2018 21:16:57 +0200 Subject: [PATCH] Handle wheels visibility --- .../java/com/henninghall/date_picker/PickerView.java | 1 - .../com/henninghall/date_picker/wheels/AmPmWheel.java | 5 +++++ .../com/henninghall/date_picker/wheels/DayWheel.java | 5 +++++ .../com/henninghall/date_picker/wheels/HourWheel.java | 7 ++++++- .../henninghall/date_picker/wheels/MinutesWheel.java | 5 +++++ .../java/com/henninghall/date_picker/wheels/Wheel.java | 10 ++++++++-- 6 files changed, 29 insertions(+), 4 deletions(-) diff --git a/android/src/main/java/com/henninghall/date_picker/PickerView.java b/android/src/main/java/com/henninghall/date_picker/PickerView.java index 216d479..46c3733 100644 --- a/android/src/main/java/com/henninghall/date_picker/PickerView.java +++ b/android/src/main/java/com/henninghall/date_picker/PickerView.java @@ -47,7 +47,6 @@ public class PickerView extends RelativeLayout { dateFormat = new SimpleDateFormat(getDateFormatTemplate(), locale); - ((ViewManager) ampmPicker.getParent()).removeView(ampmPicker); } WheelChangeListener onWheelChangeListener = new WheelChangeListener(){ 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 078c2be..df8094f 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 @@ -28,6 +28,11 @@ public class AmPmWheel extends Wheel { picker.setValue(0); } + @Override + boolean visible() { + return Utils.usesAmPm(locale); + } + @Override public String getFormatTemplate() { return Utils.usesAmPm(locale) ? "a" : ""; diff --git a/android/src/main/java/com/henninghall/date_picker/wheels/DayWheel.java b/android/src/main/java/com/henninghall/date_picker/wheels/DayWheel.java index 549885d..8de374d 100644 --- a/android/src/main/java/com/henninghall/date_picker/wheels/DayWheel.java +++ b/android/src/main/java/com/henninghall/date_picker/wheels/DayWheel.java @@ -41,6 +41,11 @@ public class DayWheel extends Wheel { } + @Override + boolean visible() { + return true; + } + @Override public String getFormatTemplate() { return "yy EEE d MMM"; diff --git a/android/src/main/java/com/henninghall/date_picker/wheels/HourWheel.java b/android/src/main/java/com/henninghall/date_picker/wheels/HourWheel.java index 59898a9..b5417bd 100644 --- a/android/src/main/java/com/henninghall/date_picker/wheels/HourWheel.java +++ b/android/src/main/java/com/henninghall/date_picker/wheels/HourWheel.java @@ -28,9 +28,14 @@ public class HourWheel extends Wheel { picker.setMaxValue(numberOfHours - 1); } + @Override + public boolean visible() { + return true; + } + @Override public String getFormatTemplate() { - return Utils.usesAmPm(locale) ? "hh": "HH"; + return Utils.usesAmPm(locale) ? "h": "HH"; } } 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 e75f022..2b18e40 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 @@ -26,6 +26,11 @@ public class MinutesWheel extends Wheel { picker.setMaxValue(59); } + @Override + boolean visible() { + return true; + } + @Override public String getFormatTemplate() { return "mm"; 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 3374e38..52a8983 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 @@ -16,6 +16,7 @@ import cn.carbswang.android.numberpickerview.library.NumberPickerView; public abstract class Wheel { abstract void init(); + abstract boolean visible(); abstract String getFormatTemplate(); ArrayList values; @@ -42,7 +43,7 @@ public abstract class Wheel { } public String getValue() { - return values.get(picker.getValue()); + return visible() ? values.get(picker.getValue()) : ""; } public void setValue(Date date) { @@ -57,7 +58,12 @@ public abstract class Wheel { private void refresh() { this.format = new SimpleDateFormat(getFormatTemplate(), locale); - init(); + if (visible()) init(); + else remove(); + } + + private void remove() { + ((ViewManager) picker.getParent()).removeView(picker); } }