diff --git a/app/src/main/java/com/topjohnwu/magisk/extensions/XString.kt b/app/src/main/java/com/topjohnwu/magisk/extensions/XString.kt index 4f817e035..26b1a0ac9 100644 --- a/app/src/main/java/com/topjohnwu/magisk/extensions/XString.kt +++ b/app/src/main/java/com/topjohnwu/magisk/extensions/XString.kt @@ -1,8 +1,22 @@ package com.topjohnwu.magisk.extensions import android.content.res.Resources +import android.os.Build -val specialChars = arrayOf('!', '@', '#', '$', '%', '&', '?') +val specialChars = arrayOf('!', '@', '#', '$', '%', '&', '?') +val fullSpecialChars = arrayOf('!', '@', '#', '$', '%', '&', '?') + +fun String.isCJK(): Boolean { + for (i in 0 until length) + if (isCJK(codePointAt(i))) + return true + return false +} + +fun isCJK(codepoint: Int): Boolean { + return if (Build.VERSION.SDK_INT < 19) false /* Pre 5.0 don't need to be pretty.. */ + else Character.isIdeographic(codepoint) +} fun String.replaceRandomWithSpecial(passes: Int): String { var string = this @@ -13,11 +27,12 @@ fun String.replaceRandomWithSpecial(passes: Int): String { } fun String.replaceRandomWithSpecial(): String { + val sp = if (isCJK()) fullSpecialChars else specialChars var random: Char do { random = random() } while (random == '.') - return replace(random, specialChars.random()) + return replace(random, sp.random()) } fun StringBuilder.appendIf(condition: Boolean, builder: StringBuilder.() -> Unit) = @@ -34,4 +49,4 @@ fun String.legalFilename() = replace(" ", "_").replace("'", "").replace("\"", "" .replace("$", "").replace("`", "").replace("*", "").replace("/", "_") .replace("#", "").replace("@", "").replace("\\", "_") -fun String.isEmptyInternal() = isNullOrBlank() \ No newline at end of file +fun String.isEmptyInternal() = isNullOrBlank() diff --git a/app/src/main/java/com/topjohnwu/magisk/ui/home/HomeViewModel.kt b/app/src/main/java/com/topjohnwu/magisk/ui/home/HomeViewModel.kt index b42b02414..1fd23463a 100644 --- a/app/src/main/java/com/topjohnwu/magisk/ui/home/HomeViewModel.kt +++ b/app/src/main/java/com/topjohnwu/magisk/ui/home/HomeViewModel.kt @@ -65,9 +65,6 @@ class HomeViewModel( val stateMagiskProgress = KObservableField(0) val stateManagerProgress = KObservableField(0) - val stateMagiskExpanded = KObservableField(false) - val stateManagerExpanded = KObservableField(false) - val stateHideManagerName = R.string.manager.res().let { if (!statePackageOriginal) { it.replaceRandomWithSpecial(3)