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:
@@ -39,6 +39,8 @@ import org.mockito.junit.MockitoJUnit;
|
||||
import org.mockito.junit.MockitoRule;
|
||||
import org.robolectric.RobolectricTestRunner;
|
||||
|
||||
import java.util.Locale;
|
||||
|
||||
@RunWith(RobolectricTestRunner.class)
|
||||
public class BatteryEntryTest {
|
||||
|
||||
@@ -148,4 +150,17 @@ public class BatteryEntryTest {
|
||||
|
||||
assertThat(entry.extractPackagesFromSipper(entry.sipper)).isEqualTo(entry.sipper.mPackages);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testUidCache_switchLocale_shouldCleanCache() {
|
||||
BatteryEntry.stopRequestQueue();
|
||||
|
||||
Locale.setDefault(new Locale("en_US"));
|
||||
BatteryEntry.sUidCache.put(Integer.toString(APP_UID), null);
|
||||
assertThat(BatteryEntry.sUidCache).isNotEmpty();
|
||||
|
||||
Locale.setDefault(new Locale("zh_TW"));
|
||||
createBatteryEntryForApp();
|
||||
assertThat(BatteryEntry.sUidCache).isEmpty(); // check if cache is clear
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user