Skip to content

Commit

Permalink
Fix locale before API 17
Browse files Browse the repository at this point in the history
  • Loading branch information
QuantumBadger committed Nov 13, 2020
1 parent 98bf155 commit bad55f7
Showing 1 changed file with 18 additions and 5 deletions.
23 changes: 18 additions & 5 deletions src/main/java/org/quantumbadger/redreader/common/PrefsUtility.java
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
import android.content.Context;
import android.content.SharedPreferences;
import android.content.res.Resources;
import android.os.Build;
import android.util.DisplayMetrics;
import android.view.MenuItem;
import androidx.annotation.NonNull;
Expand Down Expand Up @@ -270,8 +271,7 @@ private static void applyLanguage(

for(final Resources res : new Resources[] {
activity.getResources(),
activity.getApplication().getResources()
}) {
activity.getApplication().getResources()}) {

final DisplayMetrics dm = res.getDisplayMetrics();
final android.content.res.Configuration conf = res.getConfiguration();
Expand All @@ -280,20 +280,33 @@ private static void applyLanguage(

if(lang.contains("-r")) {
final String[] split = lang.split("-r");
conf.setLocale(new Locale(split[0], split[1]));
setLocaleOnConfiguration(conf, new Locale(split[0], split[1]));

} else {
conf.setLocale(new Locale(lang));
setLocaleOnConfiguration(conf, new Locale(lang));
}

} else {
conf.setLocale(mDefaultLocale.get());
setLocaleOnConfiguration(conf, mDefaultLocale.get());
}

res.updateConfiguration(conf, dm);
}
}

private static void setLocaleOnConfiguration(
@NonNull final android.content.res.Configuration conf,
@NonNull final Locale locale) {

if(Build.VERSION.SDK_INT >= 17) {
conf.setLocale(locale);
} else {
//noinspection deprecation
conf.locale = locale;
}

}

public enum AppearanceThumbnailsShow {
NEVER, WIFIONLY, ALWAYS
}
Expand Down

0 comments on commit bad55f7

Please sign in to comment.