Fix issue "open battery settings, switch locale, apps are still in old locale" into pi-dev
Clear uid to package detail cache by checking locale before use. Fixes: 62422871 Test: RunSettingsRoboTest pass, manual test (1) open advance battery settings page, (2) switch locale, (3) back to advance battery settings page => pass manual test (1) open advance battery settings page, and then back to settings main page (2) switch locale, (3) go to advance battery settings page => pass Change-Id: Ifac830706539022cd9bf51d3f33e728aadc163f4
This commit is contained in:
@@ -38,6 +38,7 @@ import com.android.settingslib.Utils;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.Locale;
|
||||
|
||||
/**
|
||||
* Wraps the power usage data of a BatterySipper with information about package name
|
||||
@@ -55,6 +56,8 @@ public class BatteryEntry {
|
||||
static final ArrayList<BatteryEntry> mRequestQueue = new ArrayList<BatteryEntry>();
|
||||
static Handler sHandler;
|
||||
|
||||
static Locale sCurrentLocale = null;
|
||||
|
||||
static private class NameAndIconLoader extends Thread {
|
||||
private boolean mAbort = false;
|
||||
|
||||
@@ -227,6 +230,13 @@ public class BatteryEntry {
|
||||
}
|
||||
|
||||
void getQuickNameIconForUid(final int uid) {
|
||||
// Locale sync to system config in Settings
|
||||
final Locale locale = Locale.getDefault();
|
||||
if (sCurrentLocale != locale) {
|
||||
clearUidCache();
|
||||
sCurrentLocale = locale;
|
||||
}
|
||||
|
||||
final String uidString = Integer.toString(uid);
|
||||
if (sUidCache.containsKey(uidString)) {
|
||||
UidToDetail utd = sUidCache.get(uidString);
|
||||
|
Reference in New Issue
Block a user