Browse Source

Merge pull request #156 from henninghall/onChange-not-called

Bugfix: onDateChange not called for some locales
master
Henning Hall 5 years ago
committed by GitHub
parent
commit
a6111552f1
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
12 changed files with 74 additions and 38 deletions
  1. +1
    -1
      android/src/main/java/com/henninghall/date_picker/PickerView.java
  2. +2
    -1
      android/src/main/java/com/henninghall/date_picker/WheelChangeListenerImpl.java
  3. +6
    -1
      android/src/main/java/com/henninghall/date_picker/wheels/AmPmWheel.java
  4. +5
    -0
      android/src/main/java/com/henninghall/date_picker/wheels/DateWheel.java
  5. +6
    -1
      android/src/main/java/com/henninghall/date_picker/wheels/DayWheel.java
  6. +7
    -2
      android/src/main/java/com/henninghall/date_picker/wheels/HourWheel.java
  7. +5
    -0
      android/src/main/java/com/henninghall/date_picker/wheels/MinutesWheel.java
  8. +6
    -1
      android/src/main/java/com/henninghall/date_picker/wheels/MonthWheel.java
  9. +2
    -1
      android/src/main/java/com/henninghall/date_picker/wheels/Wheel.java
  10. +6
    -0
      android/src/main/java/com/henninghall/date_picker/wheels/YearWheel.java
  11. +26
    -26
      examples/advanced/package.json
  12. +2
    -4
      examples/advanced/yarn.lock

+ 1
- 1
android/src/main/java/com/henninghall/date_picker/PickerView.java View File

@ -155,7 +155,7 @@ public class PickerView extends RelativeLayout {
return dateTemplate + " " return dateTemplate + " "
+ hourWheel.getFormatTemplate() + " " + hourWheel.getFormatTemplate() + " "
+ minutesWheel.getFormatTemplate() + minutesWheel.getFormatTemplate()
+ ampmWheel.getFormatTemplate();
+ ampmWheel.getFormatTemplate();
} }
public String getDateString() { public String getDateString() {

+ 2
- 1
android/src/main/java/com/henninghall/date_picker/WheelChangeListenerImpl.java View File

@ -30,7 +30,8 @@ public class WheelChangeListenerImpl implements WheelChangeListener {
try { try {
dateFormat.setTimeZone(timeZone); dateFormat.setTimeZone(timeZone);
Calendar date = Calendar.getInstance(timeZone); Calendar date = Calendar.getInstance(timeZone);
date.setTime(dateFormat.parse(this.pickerView.getDateString()));
String toParse = this.pickerView.getDateString();
date.setTime(dateFormat.parse(toParse));
if (minDate != null && date.before(minDate)) pickerView.applyOnVisibleWheels( if (minDate != null && date.before(minDate)) pickerView.applyOnVisibleWheels(
new AnimateToDate(minDate) new AnimateToDate(minDate)

+ 6
- 1
android/src/main/java/com/henninghall/date_picker/wheels/AmPmWheel.java View File

@ -41,10 +41,15 @@ public class AmPmWheel extends Wheel {
} }
@Override @Override
public String getFormatTemplate() {
public String getDisplayFormatTemplate() {
return Settings.usesAmPm() ? " a " : ""; return Settings.usesAmPm() ? " a " : "";
} }
@Override
public String getFormatTemplate() {
return " a ";
}
@Override @Override
public Paint.Align getTextAlign() { public Paint.Align getTextAlign() {
return Paint.Align.LEFT; return Paint.Align.LEFT;

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

@ -33,6 +33,11 @@ public class DateWheel extends Wheel
return this.pickerView.mode == Mode.date; return this.pickerView.mode == Mode.date;
} }
@Override
public String getDisplayFormatTemplate() {
return "d";
}
@Override @Override
public String getFormatTemplate() { public String getFormatTemplate() {
return "d"; return "d";

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

@ -111,7 +111,7 @@ public class DayWheel extends Wheel {
} }
@Override @Override
public String getFormatTemplate() {
public String getDisplayFormatTemplate() {
String locale = pickerView.locale.getLanguage(); String locale = pickerView.locale.getLanguage();
if(locale.equals("ko")) if(locale.equals("ko"))
return "yy MMM d일 (EEE)"; return "yy MMM d일 (EEE)";
@ -123,6 +123,11 @@ public class DayWheel extends Wheel {
else return "yy EEE d MMM"; else return "yy EEE d MMM";
} }
@Override
public String getFormatTemplate() {
return "yy EEE MMM d";
}
@Override @Override
public Paint.Align getTextAlign() { public Paint.Align getTextAlign() {
return Paint.Align.RIGHT; return Paint.Align.RIGHT;

+ 7
- 2
android/src/main/java/com/henninghall/date_picker/wheels/HourWheel.java View File

@ -20,7 +20,7 @@ public class HourWheel extends Wheel {
for(int i=0; i<numberOfHours; i++) { for(int i=0; i<numberOfHours; i++) {
values.add(format.format(cal.getTime())); values.add(format.format(cal.getTime()));
displayValues.add(format.format(cal.getTime()));
displayValues.add(displayFormat.format(cal.getTime()));
cal.add(Calendar.HOUR_OF_DAY, 1); cal.add(Calendar.HOUR_OF_DAY, 1);
} }
picker.setDisplayedValues(values.toArray(new String[0]),true); picker.setDisplayedValues(values.toArray(new String[0]),true);
@ -34,10 +34,15 @@ public class HourWheel extends Wheel {
} }
@Override @Override
public String getFormatTemplate() {
public String getDisplayFormatTemplate() {
return Settings.usesAmPm() ? "h": "HH"; return Settings.usesAmPm() ? "h": "HH";
} }
@Override
public String getFormatTemplate() {
return "h";
}
@Override @Override
public Paint.Align getTextAlign() { public Paint.Align getTextAlign() {
return Paint.Align.RIGHT; return Paint.Align.RIGHT;

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

@ -35,6 +35,11 @@ public class MinutesWheel extends Wheel {
return pickerView.mode != Mode.date; return pickerView.mode != Mode.date;
} }
@Override
public String getDisplayFormatTemplate() {
return "mm";
}
@Override @Override
public String getFormatTemplate() { public String getFormatTemplate() {
return "mm"; return "mm";

+ 6
- 1
android/src/main/java/com/henninghall/date_picker/wheels/MonthWheel.java View File

@ -32,6 +32,11 @@ public class MonthWheel extends Wheel
return this.pickerView.mode == Mode.date; return this.pickerView.mode == Mode.date;
} }
@Override
public String getDisplayFormatTemplate() {
return "LLLL";
}
@Override @Override
public String getFormatTemplate() { public String getFormatTemplate() {
return "LLLL"; return "LLLL";
@ -55,6 +60,6 @@ public class MonthWheel extends Wheel
} }
private SimpleDateFormat getFormat(Locale locale) { private SimpleDateFormat getFormat(Locale locale) {
return new SimpleDateFormat(this.getFormatTemplate(), locale);
return new SimpleDateFormat(this.getDisplayFormatTemplate(), locale);
} }
} }

+ 2
- 1
android/src/main/java/com/henninghall/date_picker/wheels/Wheel.java View File

@ -20,6 +20,7 @@ public abstract class Wheel {
abstract void init(); abstract void init();
public abstract boolean visible(); public abstract boolean visible();
public abstract Paint.Align getTextAlign(); public abstract Paint.Align getTextAlign();
public abstract String getDisplayFormatTemplate();
public abstract String getFormatTemplate(); public abstract String getFormatTemplate();
ArrayList<String> values; ArrayList<String> values;
@ -44,7 +45,7 @@ public abstract class Wheel {
} }
private void clearValues(){ private void clearValues(){
this.displayFormat = new SimpleDateFormat(getFormatTemplate(), pickerView.locale);
this.displayFormat = new SimpleDateFormat(getDisplayFormatTemplate(), pickerView.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<>();

+ 6
- 0
android/src/main/java/com/henninghall/date_picker/wheels/YearWheel.java View File

@ -59,10 +59,16 @@ public class YearWheel extends Wheel
return Paint.Align.RIGHT; return Paint.Align.RIGHT;
} }
@Override
public String getDisplayFormatTemplate() {
return "y";
}
@Override @Override
public String getFormatTemplate() { public String getFormatTemplate() {
return "y"; return "y";
} }
} }

+ 26
- 26
examples/advanced/package.json View File

@ -1,28 +1,28 @@
{ {
"name": "rn602",
"version": "0.0.1",
"private": true,
"scripts": {
"start": "react-native start",
"test": "jest",
"lint": "eslint ."
},
"dependencies": {
"react": "16.8.6",
"react-native": "0.60.3",
"react-native-date-picker": "^2.6.1"
},
"devDependencies": {
"@babel/core": "^7.5.4",
"@babel/runtime": "^7.5.4",
"@react-native-community/eslint-config": "^0.0.5",
"babel-jest": "^24.8.0",
"eslint": "^6.0.1",
"jest": "^24.8.0",
"metro-react-native-babel-preset": "^0.55.0",
"react-test-renderer": "16.8.6"
},
"jest": {
"preset": "react-native"
}
"name": "rn602",
"version": "0.0.1",
"private": true,
"scripts": {
"start": "react-native start",
"test": "jest",
"lint": "eslint ."
},
"dependencies": {
"react": "16.8.6",
"react-native": "0.60.3",
"react-native-date-picker": "../../"
},
"devDependencies": {
"@babel/core": "^7.5.4",
"@babel/runtime": "^7.5.4",
"@react-native-community/eslint-config": "^0.0.5",
"babel-jest": "^24.8.0",
"eslint": "^6.0.1",
"jest": "^24.8.0",
"metro-react-native-babel-preset": "^0.55.0",
"react-test-renderer": "16.8.6"
},
"jest": {
"preset": "react-native"
}
} }

+ 2
- 4
examples/advanced/yarn.lock View File

@ -5132,10 +5132,8 @@ react-is@^16.8.1, react-is@^16.8.4, react-is@^16.8.6:
resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.8.6.tgz#5bbc1e2d29141c9fbdfed456343fe2bc430a6a16" resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.8.6.tgz#5bbc1e2d29141c9fbdfed456343fe2bc430a6a16"
integrity sha512-aUk3bHfZ2bRSVFFbbeVS4i+lNPZr3/WM5jT2J5omUVV1zzcs1nAaf3l51ctA5FFvCRbhrH0bdAsRRQddFJZPtA== integrity sha512-aUk3bHfZ2bRSVFFbbeVS4i+lNPZr3/WM5jT2J5omUVV1zzcs1nAaf3l51ctA5FFvCRbhrH0bdAsRRQddFJZPtA==
react-native-date-picker@^2.6.1:
version "2.6.1"
resolved "https://registry.yarnpkg.com/react-native-date-picker/-/react-native-date-picker-2.6.1.tgz#ad322cc12a760ad7a2cabce18928652dd4f8b8f0"
integrity sha512-9FVOMulMs5mWfjWcoEuHotIh5LiJPHvrSUEsHfiYW48kME3GF/nE0DyNg4qDuJFRsZr8mIdiNyLQHQbnhGKZ/Q==
react-native-date-picker@../../:
version "2.7.3"
dependencies: dependencies:
moment "^2.22.1" moment "^2.22.1"

Loading…
Cancel
Save