Loading src/com/android/settings/applications/appinfo/AppLocaleDetails.java +2 −1 Original line number Diff line number Diff line Loading @@ -48,6 +48,7 @@ import com.android.settingslib.widget.RadioButtonPreference; import java.util.ArrayList; import java.util.Collection; import java.util.HashSet; import java.util.Locale; /** Loading Loading @@ -292,7 +293,7 @@ public class AppLocaleDetails extends AppInfoBase implements RadioButtonPreferen }); // Other locales in suggested languages group. Collection<Locale> supportedSystemLocales = new ArrayList<>(); Collection<Locale> supportedSystemLocales = new HashSet<>(); getCurrentSystemLocales().forEach(systemLocale -> { mAppSupportedLocales.forEach(supportedLocale -> { if (compareLocale(systemLocale, supportedLocale)) { Loading tests/unit/src/com/android/settings/applications/appinfo/AppLocaleDetailsTest.java +36 −4 Original line number Diff line number Diff line Loading @@ -43,7 +43,9 @@ import org.mockito.MockitoAnnotations; import java.util.ArrayList; import java.util.Collection; import java.util.HashSet; import java.util.Locale; import java.util.Set; /** * Unittest for ApplocaleDetails Loading Loading @@ -151,8 +153,9 @@ public class AppLocaleDetailsTest { @Test @UiThreadTest public void handleAllLocalesData_noAppAndNoSupportedSimLocale_1stSuggestedLocaleIsAssetLocale() { Locale firstAssetLocale = new Locale("en", "GB"); handleAllLocalesData_noAppAndNoSupportedSimLocale_suggestedLocaleIsSupported() { Locale testEnAssetLocale = new Locale("en", "GB"); Locale testJaAssetLocale = new Locale("ja", "JP"); setupInitialLocales( /* appLocale= */ "", /* simCountry= */ "tw", Loading @@ -166,8 +169,8 @@ public class AppLocaleDetailsTest { helper.handleAllLocalesData(); Collection<Locale> suggestedLocales = helper.getSuggestedLocales(); Locale locale = suggestedLocales.iterator().next(); assertTrue(locale.equals(firstAssetLocale)); assertTrue(suggestedLocales.contains(testEnAssetLocale)); assertTrue(suggestedLocales.contains(testJaAssetLocale)); } @Test Loading Loading @@ -295,6 +298,35 @@ public class AppLocaleDetailsTest { assertTrue(locale.equals(systemLocale)); } @Test @UiThreadTest public void handleAllLocalesData_sameLocaleButDifferentRegion_notShowDuplicatedLocale() { setupInitialLocales( /* appLocale= */ "", /* simCountry= */ "", /* networkCountry= */ "", /* systemLocales= */ "en-us, en-gb, jp, ne", /* packageLocales= */ "pa, cn, tw, en-us, en-gb", /* assetLocales= */ new String[]{}); DummyAppLocaleDetailsHelper helper = new DummyAppLocaleDetailsHelper(mContext, APP_PACKAGE_NAME); helper.handleAllLocalesData(); Collection<Locale> suggestedLocales = helper.getSuggestedLocales(); assertFalse(hasDuplicatedResult(suggestedLocales)); } private boolean hasDuplicatedResult(Collection<Locale> locales) { Set<Locale> tempSet = new HashSet<>(); for (Locale locale : locales) { if (!tempSet.add(locale)) { return true; } } return false; } @Test @UiThreadTest public void handleAllLocalesData_supportLocaleListIsNotEmpty() { Loading Loading
src/com/android/settings/applications/appinfo/AppLocaleDetails.java +2 −1 Original line number Diff line number Diff line Loading @@ -48,6 +48,7 @@ import com.android.settingslib.widget.RadioButtonPreference; import java.util.ArrayList; import java.util.Collection; import java.util.HashSet; import java.util.Locale; /** Loading Loading @@ -292,7 +293,7 @@ public class AppLocaleDetails extends AppInfoBase implements RadioButtonPreferen }); // Other locales in suggested languages group. Collection<Locale> supportedSystemLocales = new ArrayList<>(); Collection<Locale> supportedSystemLocales = new HashSet<>(); getCurrentSystemLocales().forEach(systemLocale -> { mAppSupportedLocales.forEach(supportedLocale -> { if (compareLocale(systemLocale, supportedLocale)) { Loading
tests/unit/src/com/android/settings/applications/appinfo/AppLocaleDetailsTest.java +36 −4 Original line number Diff line number Diff line Loading @@ -43,7 +43,9 @@ import org.mockito.MockitoAnnotations; import java.util.ArrayList; import java.util.Collection; import java.util.HashSet; import java.util.Locale; import java.util.Set; /** * Unittest for ApplocaleDetails Loading Loading @@ -151,8 +153,9 @@ public class AppLocaleDetailsTest { @Test @UiThreadTest public void handleAllLocalesData_noAppAndNoSupportedSimLocale_1stSuggestedLocaleIsAssetLocale() { Locale firstAssetLocale = new Locale("en", "GB"); handleAllLocalesData_noAppAndNoSupportedSimLocale_suggestedLocaleIsSupported() { Locale testEnAssetLocale = new Locale("en", "GB"); Locale testJaAssetLocale = new Locale("ja", "JP"); setupInitialLocales( /* appLocale= */ "", /* simCountry= */ "tw", Loading @@ -166,8 +169,8 @@ public class AppLocaleDetailsTest { helper.handleAllLocalesData(); Collection<Locale> suggestedLocales = helper.getSuggestedLocales(); Locale locale = suggestedLocales.iterator().next(); assertTrue(locale.equals(firstAssetLocale)); assertTrue(suggestedLocales.contains(testEnAssetLocale)); assertTrue(suggestedLocales.contains(testJaAssetLocale)); } @Test Loading Loading @@ -295,6 +298,35 @@ public class AppLocaleDetailsTest { assertTrue(locale.equals(systemLocale)); } @Test @UiThreadTest public void handleAllLocalesData_sameLocaleButDifferentRegion_notShowDuplicatedLocale() { setupInitialLocales( /* appLocale= */ "", /* simCountry= */ "", /* networkCountry= */ "", /* systemLocales= */ "en-us, en-gb, jp, ne", /* packageLocales= */ "pa, cn, tw, en-us, en-gb", /* assetLocales= */ new String[]{}); DummyAppLocaleDetailsHelper helper = new DummyAppLocaleDetailsHelper(mContext, APP_PACKAGE_NAME); helper.handleAllLocalesData(); Collection<Locale> suggestedLocales = helper.getSuggestedLocales(); assertFalse(hasDuplicatedResult(suggestedLocales)); } private boolean hasDuplicatedResult(Collection<Locale> locales) { Set<Locale> tempSet = new HashSet<>(); for (Locale locale : locales) { if (!tempSet.add(locale)) { return true; } } return false; } @Test @UiThreadTest public void handleAllLocalesData_supportLocaleListIsNotEmpty() { Loading