Skip to content

Commit 3532ac9

Browse files
committed
Migrate from pre-Android 13 app language pref
1 parent 87693a2 commit 3532ac9

1 file changed

Lines changed: 19 additions & 0 deletions

File tree

  • app/src/main/java/org/schabi/newpipe

app/src/main/java/org/schabi/newpipe/App.java

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,14 @@
33
import android.app.Application;
44
import android.content.Context;
55
import android.content.SharedPreferences;
6+
import android.os.Build;
67
import android.util.Log;
78

89
import androidx.annotation.NonNull;
10+
import androidx.appcompat.app.AppCompatDelegate;
911
import androidx.core.app.NotificationChannelCompat;
1012
import androidx.core.app.NotificationManagerCompat;
13+
import androidx.core.os.LocaleListCompat;
1114
import androidx.preference.PreferenceManager;
1215

1316
import com.jakewharton.processphoenix.ProcessPhoenix;
@@ -122,6 +125,22 @@ public void onCreate() {
122125
configureRxJavaErrorHandler();
123126

124127
YoutubeStreamExtractor.setPoTokenProvider(PoTokenProviderImpl.INSTANCE);
128+
129+
if (Build.VERSION.SDK_INT >= 33) {
130+
final String appLanguageKey = getString(R.string.app_language_key);
131+
if (prefs.contains(appLanguageKey)) {
132+
// Migrate to Android per-app language settings
133+
final String languageCode = prefs.getString(appLanguageKey, null);
134+
prefs.edit().remove(appLanguageKey).apply();
135+
try {
136+
AppCompatDelegate.setApplicationLocales(
137+
LocaleListCompat.forLanguageTags(languageCode)
138+
);
139+
} catch (final RuntimeException e) {
140+
Log.e(TAG, "Error migrating to Android 13+ per-app language settings");
141+
}
142+
}
143+
}
125144
}
126145

127146
@Override

0 commit comments

Comments
 (0)