Browse Source

Merge pull request #177 from ipk2015/master

Bugfix: Wrong display texts in date mode for some locales (Chinese, Japanese, etc)
master
Henning Hall 5 years ago
committed by GitHub
parent
commit
06c6addce0
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 48 additions and 4 deletions
  1. +1
    -1
      .github/workflows/android.yml
  2. +4
    -1
      android/src/main/java/com/henninghall/date_picker/LocaleUtils.java
  3. +1
    -1
      android/src/main/java/com/henninghall/date_picker/Utils.java
  4. +42
    -1
      examples/detox/e2e/tests/displayText.spec.js

+ 1
- 1
.github/workflows/android.yml View File

@ -1,6 +1,6 @@
name: "Android: build & test"
on: [push]
on: [push, pull_request]
jobs:
build_and_test:

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

@ -26,7 +26,10 @@ public class LocaleUtils {
public static String getDatePattern(Locale locale){
DateFormat df = DateFormat.getDateInstance(DateFormat.FULL, locale);
return ((SimpleDateFormat)df).toLocalizedPattern().replace(",", "");
return ((SimpleDateFormat) df).toLocalizedPattern()
.replaceAll(",", "")
.replaceAll("([a-zA-Z]+)", " $1")
.trim();
}
static String getDateTimePattern(Locale locale){

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

@ -62,7 +62,7 @@ public class Utils {
}
public static ArrayList<String> splitOnSpace(String value){
String[] array = value.split(" ");
String[] array = value.split("\\s+");
ArrayList<String> arrayList = new ArrayList<>();
Collections.addAll(arrayList, array);
return arrayList;

+ 42
- 1
examples/detox/e2e/tests/displayText.spec.js View File

@ -1,4 +1,11 @@
const { setLocale, expectDateString, scrollWheel } = require('../utils')
const {
setMode,
setLocale,
expectDateString,
scrollWheel,
setMinimumDate,
setMaximumDate,
} = require('../utils')
describe('Display text', () => {
before(async () => {
@ -32,6 +39,40 @@ describe('Display text', () => {
})
})
describe('date', () => {
before(async () => {
await device.reloadReactNative()
await element(by.text('Advanced')).tap()
await setMinimumDate(undefined)
await setMaximumDate(undefined)
await setMode('date')
})
it('en-US', async () => {
await expectLocaleDateString('en-US', 'February' + '1' + '2000')
})
it('pt-BR', async () => {
await expectLocaleDateString('pt-BR', '2janeiro' + '2000')
})
it('sv-SE', async () => {
await expectLocaleDateString('sv-SE', '2' + 'januari' + '2000')
})
it('ko', async () => {
await expectLocaleDateString('ko', '2001년' + '1월' + '1일')
})
it('ja', async () => {
await expectLocaleDateString('ja', '2001年' + '1月' + '1日')
})
it('zh-CH', async () => {
await expectLocaleDateString('zh-CH', '2001年' + '一月' + '1日')
})
})
const expectLocaleDateString = async (locale, dateString) => {
await setLocale(locale)
await scrollWheel(0, 1)

Loading…
Cancel
Save