From 355518eb404dc23efbc446962b8321f3fe0f5cd4 Mon Sep 17 00:00:00 2001 From: Henning Hall Date: Sat, 19 May 2018 12:15:10 +0200 Subject: [PATCH] Keep date state when changing locale. --- .../com/henninghall/date_picker/wheels/AmPmWheel.java | 5 ----- .../com/henninghall/date_picker/wheels/DayWheel.java | 4 +--- .../java/com/henninghall/date_picker/wheels/Wheel.java | 9 ++++++--- example/package.json | 2 +- example/yarn.lock | 6 +++--- package.json | 2 +- 6 files changed, 12 insertions(+), 16 deletions(-) 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 4d3b28e..25f8994 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 @@ -3,11 +3,7 @@ package com.henninghall.date_picker.wheels; import com.henninghall.date_picker.Utils; import com.henninghall.date_picker.WheelChangeListener; -import java.text.Format; -import java.text.SimpleDateFormat; -import java.util.ArrayList; import java.util.Calendar; -import java.util.Date; import java.util.Locale; import cn.carbswang.android.numberpickerview.library.NumberPickerView; @@ -34,7 +30,6 @@ public class AmPmWheel extends Wheel { picker.setMinValue(0); picker.setMaxValue(1); - picker.setValue(0); } @Override 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 b5b8037..64a4007 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 @@ -17,9 +17,9 @@ public class DayWheel extends Wheel { @Override void init() { - int min = 0; int max = 10000; // bug + Calendar cal = Calendar.getInstance(); cal.add(Calendar.DAY_OF_MONTH, -max/2); @@ -40,8 +40,6 @@ public class DayWheel extends Wheel { picker.setMinValue(min); picker.setMaxValue(max); - picker.setValue(5000); - } @Override 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 4ec74b4..29daac4 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 @@ -33,7 +33,7 @@ public abstract class Wheel { this.locale = locale; this.picker = picker; - refresh(); + refresh(false); picker.setOnValueChangedListener(new NumberPickerView.OnValueChangeListener() { @Override @@ -62,18 +62,21 @@ public abstract class Wheel { public void setLocale(Locale locale) { this.locale = locale; - refresh(); + refresh(true); } - private void refresh() { + private void refresh(boolean keepOldValue) { this.displayFormat = new SimpleDateFormat(getFormatTemplate(), locale); this.format = new SimpleDateFormat(getFormatTemplate(), LocaleUtils.toLocale("en_US")); this.values = new ArrayList<>(); this.displayValues= new ArrayList<>(); + int oldValue = picker.getValue(); if (visible()) { add(); init(); + if(keepOldValue) picker.setValue(oldValue); + } else remove(); diff --git a/example/package.json b/example/package.json index 6c47c1b..d00475b 100644 --- a/example/package.json +++ b/example/package.json @@ -10,7 +10,7 @@ "moment": "^2.22.1", "react": "16.3.1", "react-native": "0.55.2", - "react-native-date-picker-x": "^1.0.5", + "react-native-date-picker-x": "^1.0.6", "react-native-device-info": "^0.21.5", "react-native-search-filter": "^0.1.3" }, diff --git a/example/yarn.lock b/example/yarn.lock index 9a1b53d..bb0835d 100644 --- a/example/yarn.lock +++ b/example/yarn.lock @@ -4297,9 +4297,9 @@ react-is@^16.3.1: version "16.3.1" resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.3.1.tgz#ee66e6d8283224a83b3030e110056798488359ba" -react-native-date-picker-x@1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/react-native-date-picker-x/-/react-native-date-picker-x-1.0.4.tgz#290a48cc21d555bd704c42a8b52cc68876891609" +react-native-date-picker-x@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/react-native-date-picker-x/-/react-native-date-picker-x-1.0.6.tgz#4f2c8d0aed0ded1ab49786986a7ebff4e3df4ecf" react-native-device-info@^0.21.5: version "0.21.5" diff --git a/package.json b/package.json index 701bd76..ebe641c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-native-date-picker-x", - "version": "1.0.5", + "version": "1.0.6", "description": "A Cross Platform React Native Picker", "main": "index.js", "scripts": {