Fix #1246
This commit is contained in:
parent
f0d3865141
commit
412891fc09
|
@ -20,16 +20,33 @@
|
||||||
package androidx.core.os
|
package androidx.core.os
|
||||||
|
|
||||||
import android.annotation.SuppressLint
|
import android.annotation.SuppressLint
|
||||||
import android.os.Build
|
|
||||||
import java.util.*
|
import java.util.*
|
||||||
|
|
||||||
@SuppressLint("RestrictedApi")
|
@SuppressLint("RestrictedApi")
|
||||||
object LocaleHelperAccessor {
|
object LocaleHelperAccessor {
|
||||||
|
fun forLanguageTag(str: String): Locale {
|
||||||
|
if (str.contains("-")) {
|
||||||
|
val args = str.split("-").dropLastWhile { it.isEmpty() }.toTypedArray()
|
||||||
|
if (args.size > 2) {
|
||||||
|
return Locale(args[0], args[1], args[2])
|
||||||
|
} else if (args.size > 1) {
|
||||||
|
return Locale(args[0], args[1])
|
||||||
|
} else if (args.size == 1) {
|
||||||
|
return Locale(args[0])
|
||||||
|
}
|
||||||
|
} else if (str.contains("_")) {
|
||||||
|
val args = str.split("_").dropLastWhile { it.isEmpty() }.toTypedArray()
|
||||||
|
if (args.size > 2) {
|
||||||
|
return Locale(args[0], args[1], args[2])
|
||||||
|
} else if (args.size > 1) {
|
||||||
|
return Locale(args[0], args[1])
|
||||||
|
} else if (args.size == 1) {
|
||||||
|
return Locale(args[0])
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
return Locale(str)
|
||||||
|
}
|
||||||
|
|
||||||
fun forLanguageTag(str: String): Locale = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
|
throw IllegalArgumentException("Can not parse language tag: [$str]")
|
||||||
Locale.forLanguageTag(str)
|
|
||||||
} else {
|
|
||||||
Locale(str)// TODO: Dose it work?
|
|
||||||
// TODO("VERSION.SDK_INT < LOLLIPOP")
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue