Browse Source

Keep date state when changing locale.

master
Henning Hall 7 years ago
parent
commit
355518eb40
6 changed files with 12 additions and 16 deletions
  1. +0
    -5
      android/src/main/java/com/henninghall/date_picker/wheels/AmPmWheel.java
  2. +1
    -3
      android/src/main/java/com/henninghall/date_picker/wheels/DayWheel.java
  3. +6
    -3
      android/src/main/java/com/henninghall/date_picker/wheels/Wheel.java
  4. +1
    -1
      example/package.json
  5. +3
    -3
      example/yarn.lock
  6. +1
    -1
      package.json

+ 0
- 5
android/src/main/java/com/henninghall/date_picker/wheels/AmPmWheel.java View File

@ -3,11 +3,7 @@ package com.henninghall.date_picker.wheels;
import com.henninghall.date_picker.Utils; import com.henninghall.date_picker.Utils;
import com.henninghall.date_picker.WheelChangeListener; 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.Calendar;
import java.util.Date;
import java.util.Locale; import java.util.Locale;
import cn.carbswang.android.numberpickerview.library.NumberPickerView; import cn.carbswang.android.numberpickerview.library.NumberPickerView;
@ -34,7 +30,6 @@ public class AmPmWheel extends Wheel {
picker.setMinValue(0); picker.setMinValue(0);
picker.setMaxValue(1); picker.setMaxValue(1);
picker.setValue(0);
} }
@Override @Override

+ 1
- 3
android/src/main/java/com/henninghall/date_picker/wheels/DayWheel.java View File

@ -17,9 +17,9 @@ public class DayWheel extends Wheel {
@Override @Override
void init() { void init() {
int min = 0; int min = 0;
int max = 10000; // bug int max = 10000; // bug
Calendar cal = Calendar.getInstance(); Calendar cal = Calendar.getInstance();
cal.add(Calendar.DAY_OF_MONTH, -max/2); cal.add(Calendar.DAY_OF_MONTH, -max/2);
@ -40,8 +40,6 @@ public class DayWheel extends Wheel {
picker.setMinValue(min); picker.setMinValue(min);
picker.setMaxValue(max); picker.setMaxValue(max);
picker.setValue(5000);
} }
@Override @Override

+ 6
- 3
android/src/main/java/com/henninghall/date_picker/wheels/Wheel.java View File

@ -33,7 +33,7 @@ public abstract class Wheel {
this.locale = locale; this.locale = locale;
this.picker = picker; this.picker = picker;
refresh();
refresh(false);
picker.setOnValueChangedListener(new NumberPickerView.OnValueChangeListener() { picker.setOnValueChangedListener(new NumberPickerView.OnValueChangeListener() {
@Override @Override
@ -62,18 +62,21 @@ public abstract class Wheel {
public void setLocale(Locale locale) { public void setLocale(Locale locale) {
this.locale = locale; this.locale = locale;
refresh();
refresh(true);
} }
private void refresh() {
private void refresh(boolean keepOldValue) {
this.displayFormat = new SimpleDateFormat(getFormatTemplate(), locale); this.displayFormat = new SimpleDateFormat(getFormatTemplate(), locale);
this.format = new SimpleDateFormat(getFormatTemplate(), LocaleUtils.toLocale("en_US")); this.format = new SimpleDateFormat(getFormatTemplate(), LocaleUtils.toLocale("en_US"));
this.values = new ArrayList<>(); this.values = new ArrayList<>();
this.displayValues= new ArrayList<>(); this.displayValues= new ArrayList<>();
int oldValue = picker.getValue();
if (visible()) { if (visible()) {
add(); add();
init(); init();
if(keepOldValue) picker.setValue(oldValue);
} }
else remove(); else remove();

+ 1
- 1
example/package.json View File

@ -10,7 +10,7 @@
"moment": "^2.22.1", "moment": "^2.22.1",
"react": "16.3.1", "react": "16.3.1",
"react-native": "0.55.2", "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-device-info": "^0.21.5",
"react-native-search-filter": "^0.1.3" "react-native-search-filter": "^0.1.3"
}, },

+ 3
- 3
example/yarn.lock View File

@ -4297,9 +4297,9 @@ react-is@^16.3.1:
version "16.3.1" version "16.3.1"
resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.3.1.tgz#ee66e6d8283224a83b3030e110056798488359ba" 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: react-native-device-info@^0.21.5:
version "0.21.5" version "0.21.5"

+ 1
- 1
package.json View File

@ -1,6 +1,6 @@
{ {
"name": "react-native-date-picker-x", "name": "react-native-date-picker-x",
"version": "1.0.5",
"version": "1.0.6",
"description": "A Cross Platform React Native Picker", "description": "A Cross Platform React Native Picker",
"main": "index.js", "main": "index.js",
"scripts": { "scripts": {

Loading…
Cancel
Save