diff --git a/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/AdvancedSettingsFragment.kt b/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/AdvancedSettingsFragment.kt index 66178ba9..97cd585d 100644 --- a/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/AdvancedSettingsFragment.kt +++ b/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/AdvancedSettingsFragment.kt @@ -326,10 +326,10 @@ class AdvancedSettingsFragment : SubScreenFragment() { zipStream.closeEntry() } zipStream.putNextEntry(ZipEntry(PREFS_FILE_NAME)) - settingsToJsonStream2(sharedPreferences.all, zipStream) + settingsToJsonStream(sharedPreferences.all, zipStream) zipStream.closeEntry() zipStream.putNextEntry(ZipEntry(PROTECTED_PREFS_FILE_NAME)) - settingsToJsonStream2(PreferenceManager.getDefaultSharedPreferences(requireContext()).all, zipStream) + settingsToJsonStream(PreferenceManager.getDefaultSharedPreferences(requireContext()).all, zipStream) zipStream.closeEntry() zipStream.close() } @@ -346,12 +346,13 @@ class AdvancedSettingsFragment : SubScreenFragment() { ZipInputStream(inputStream).use { zip -> var entry: ZipEntry? = zip.nextEntry val filesDir = requireContext().filesDir?.path ?: return + val deviceProtectedFilesDir = DeviceProtectedUtils.getDeviceProtectedContext(requireContext()).filesDir?.path ?: return while (entry != null) { if (entry.name.startsWith("unprotected${File.separator}")) { val adjustedName = entry.name.substringAfter("unprotected${File.separator}") if (backupFilePatterns.any { adjustedName.matches(it) }) { val targetFileName = upgradeFileNames(adjustedName) - val file = File(filesDir, targetFileName) + val file = File(deviceProtectedFilesDir, targetFileName) FileUtils.copyStreamToNewFile(zip, file) } } else if (backupFilePatterns.any { entry!!.name.matches(it) }) { @@ -447,7 +448,7 @@ class AdvancedSettingsFragment : SubScreenFragment() { companion object { @Suppress("UNCHECKED_CAST") // it is checked... but whatever (except string set, because can't check for that)) - private fun settingsToJsonStream2(settings: Map, out: OutputStream) { + private fun settingsToJsonStream(settings: Map, out: OutputStream) { val booleans = settings.filterValues { it is Boolean } as Map val ints = settings.filterValues { it is Int } as Map val longs = settings.filterValues { it is Long } as Map diff --git a/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/UserDictionaryListFragment.java b/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/UserDictionaryListFragment.java index 668e6d90..ddda17bd 100644 --- a/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/UserDictionaryListFragment.java +++ b/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/UserDictionaryListFragment.java @@ -145,7 +145,8 @@ public class UserDictionaryListFragment extends SubScreenFragment { } else { newPref.setTitle(UserDictionarySettings.getLocaleDisplayName(requireContext(), locale)); } - newPref.getExtras().putString("locale", locale.toLanguageTag()); + if (locale == UserDictionarySettings.emptyLocale) newPref.getExtras().putString("locale", ""); + else newPref.getExtras().putString("locale", locale.toLanguageTag()); newPref.setIconSpaceReserved(false); newPref.setFragment(UserDictionarySettings.class.getName()); diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 1471a276..fd391738 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -64,9 +64,9 @@ Emoji key - %sms + %s ms - %smin. + %s min System default