Skip to content

Commit 46fdf18

Browse files
committed
Fixed detekt warnings
1 parent 518ecb7 commit 46fdf18

File tree

4 files changed

+38
-11
lines changed

4 files changed

+38
-11
lines changed

WordPress/src/main/java/org/wordpress/android/ui/prefs/AppPrefsWrapper.kt

-2
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
11
package org.wordpress.android.ui.prefs
22

33
import android.content.SharedPreferences
4-
import androidx.preference.PreferenceManager
54
import com.google.gson.Gson
6-
import org.wordpress.android.WordPress.Companion.getContext
75
import org.wordpress.android.fluxc.model.JetpackCapability
86
import org.wordpress.android.fluxc.store.QuickStartStore.QuickStartTask
97
import org.wordpress.android.models.ReaderTag

WordPress/src/main/java/org/wordpress/android/ui/prefs/AppSettingsFragment.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ public void onCreate(@Nullable Bundle savedInstanceState) {
126126
((WordPress) getActivity().getApplication()).component().inject(this);
127127
mDispatcher.register(this);
128128

129-
mIsPerAppLanguagePrefsEnabled = mLocaleHelper.isPerAppLanguagePrefsEnabled(getContext());
129+
mIsPerAppLanguagePrefsEnabled = mLocaleHelper.isPerAppLanguagePrefsEnabled();
130130

131131
addPreferencesFromResource(R.xml.app_settings);
132132

@@ -652,7 +652,7 @@ private boolean handleAppLocalePickerClick() {
652652
// if per-app language preferences are enabled and the device is on API 33+, take the user to the
653653
// system app settings to change the language
654654
if (mIsPerAppLanguagePrefsEnabled && Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
655-
startActivity(new Intent(Settings.ACTION_SETTINGS));
655+
mLocaleHelper.openAppSettings(getContext());
656656
return true;
657657
} else if (getActivity() instanceof AppCompatActivity) {
658658
LocalePickerBottomSheet bottomSheet = LocalePickerBottomSheet.newInstance();

WordPress/src/main/java/org/wordpress/android/ui/prefs/ExperimentalFeaturesActivity.kt

+2-1
Original file line numberDiff line numberDiff line change
@@ -39,12 +39,13 @@ import kotlinx.coroutines.flow.update
3939
import org.wordpress.android.R
4040
import org.wordpress.android.ui.compose.theme.AppThemeM3
4141
import org.wordpress.android.ui.compose.unit.Margin
42+
import org.wordpress.android.ui.prefs.language.LocaleHelper
4243
import org.wordpress.android.util.extensions.setContent
4344

4445
val experimentalFeatures = listOf(
4546
Feature(key = "experimental_block_editor"),
4647
Feature(key = "experimental_block_editor_theme_styles"),
47-
Feature(key = "experimental_per_app_language_prefs")
48+
Feature(key = LocaleHelper.EXPERIMENTAL_PER_APP_LANGUAGE_PREF_KEY)
4849
)
4950

5051
data class Feature(

WordPress/src/main/java/org/wordpress/android/ui/prefs/language/LocaleHelper.kt

+34-6
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
package org.wordpress.android.ui.prefs.language
22

33
import android.content.Context
4+
import android.content.Intent
5+
import android.net.Uri
6+
import android.provider.Settings
47
import androidx.appcompat.app.AppCompatDelegate
58
import androidx.core.os.LocaleListCompat
69
import org.wordpress.android.R
@@ -57,22 +60,47 @@ class LocaleHelper @Inject constructor(
5760
* Previously the app locale was stored in SharedPreferences, so here we migrate to AndroidX per-app language prefs
5861
*/
5962
fun performMigrationIfNecessary(context: Context) {
60-
if (isPerAppLanguagePrefsEnabled(context) && isApplicationLocaleEmpty()) {
63+
if (isPerAppLanguagePrefsEnabled() && isApplicationLocaleEmpty()) {
6164
val languagePrefKey = context.getString(R.string.pref_key_language)
6265
val previousLanguage = appPrefsWrapper.prefs().getString(languagePrefKey, "")
6366
if (previousLanguage?.isNotEmpty() == true) {
64-
appLogWrapper.d(AppLog.T.SETTINGS, "LocaleHelper: performing migration to AndroidX per-app language prefs")
67+
appLogWrapper.d(
68+
AppLog.T.SETTINGS,
69+
"LocaleHelper: performing migration to AndroidX per-app language prefs"
70+
)
6571
setCurrentLocaleByLanguageCode(previousLanguage)
6672
appPrefsWrapper.prefs().edit().remove(languagePrefKey).apply()
6773
} else {
68-
appLogWrapper.d(AppLog.T.SETTINGS, "LocaleHelper: setting default locale")
74+
appLogWrapper.d(
75+
AppLog.T.SETTINGS,
76+
"LocaleHelper: setting default locale"
77+
)
6978
setCurrentLocaleByLanguageCode(Locale.getDefault().language)
7079
}
7180
}
7281
}
7382

74-
fun isPerAppLanguagePrefsEnabled(context: Context): Boolean {
75-
val prefKey = context.getString(R.string.experimental_per_app_language_prefs)
76-
return appPrefsWrapper.getManualFeatureConfig(prefKey)
83+
fun isPerAppLanguagePrefsEnabled(): Boolean {
84+
return appPrefsWrapper.getManualFeatureConfig(EXPERIMENTAL_PER_APP_LANGUAGE_PREF_KEY)
85+
}
86+
87+
/**
88+
* Open the app settings screen so the user can change the app locale - note that
89+
* the locale is only available in API 33+
90+
*/
91+
fun openAppSettings(context: Context) {
92+
Intent().also { intent ->
93+
intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS)
94+
intent.addCategory(Intent.CATEGORY_DEFAULT)
95+
intent.setData(Uri.parse("package:" + context.packageName))
96+
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
97+
intent.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY)
98+
intent.addFlags(Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS)
99+
context.startActivity(intent)
100+
}
101+
}
102+
103+
companion object {
104+
const val EXPERIMENTAL_PER_APP_LANGUAGE_PREF_KEY = "experimental_per_app_language_prefs"
77105
}
78106
}

0 commit comments

Comments
 (0)