Loading services/core/java/com/android/server/compat/overrides/AppCompatOverridesService.java +10 −9 Original line number Original line Diff line number Diff line Loading @@ -25,6 +25,7 @@ import static android.provider.DeviceConfig.NAMESPACE_APP_COMPAT_OVERRIDES; import static com.android.server.compat.overrides.AppCompatOverridesParser.FLAG_OWNED_CHANGE_IDS; import static com.android.server.compat.overrides.AppCompatOverridesParser.FLAG_OWNED_CHANGE_IDS; import static com.android.server.compat.overrides.AppCompatOverridesParser.FLAG_REMOVE_OVERRIDES; import static com.android.server.compat.overrides.AppCompatOverridesParser.FLAG_REMOVE_OVERRIDES; import static java.util.Collections.emptyMap; import static java.util.Collections.emptySet; import static java.util.Collections.emptySet; import android.annotation.NonNull; import android.annotation.NonNull; Loading Loading @@ -157,17 +158,17 @@ public final class AppCompatOverridesService { Map<String, CompatibilityOverridesToRemoveConfig> packageNameToOverridesToRemove = Map<String, CompatibilityOverridesToRemoveConfig> packageNameToOverridesToRemove = new ArrayMap<>(); new ArrayMap<>(); for (String packageName : packageNames) { for (String packageName : packageNames) { Long versionCode = getVersionCodeOrNull(packageName); if (versionCode == null) { // Package isn't installed yet. continue; } Set<Long> changeIdsToSkip = packageToChangeIdsToSkip.getOrDefault(packageName, Set<Long> changeIdsToSkip = packageToChangeIdsToSkip.getOrDefault(packageName, emptySet()); emptySet()); Map<Long, PackageOverride> overridesToAdd = mOverridesParser.parsePackageOverrides( Map<Long, PackageOverride> overridesToAdd = emptyMap(); Long versionCode = getVersionCodeOrNull(packageName); if (versionCode != null) { // Only if package installed add overrides, otherwise just remove. overridesToAdd = mOverridesParser.parsePackageOverrides( properties.getString(packageName, /* defaultValue= */ ""), packageName, properties.getString(packageName, /* defaultValue= */ ""), packageName, versionCode, changeIdsToSkip); versionCode, changeIdsToSkip); } if (!overridesToAdd.isEmpty()) { if (!overridesToAdd.isEmpty()) { packageNameToOverridesToAdd.put(packageName, packageNameToOverridesToAdd.put(packageName, new CompatibilityOverrideConfig(overridesToAdd)); new CompatibilityOverrideConfig(overridesToAdd)); Loading services/tests/mockingservicestests/src/com/android/server/compat/overrides/AppCompatOverridesServiceTest.java +5 −1 Original line number Original line Diff line number Diff line Loading @@ -183,7 +183,8 @@ public class AppCompatOverridesServiceTest { mOverridesToRemoveByPackageConfigCaptor.getValue().packageNameToOverridesToRemove; mOverridesToRemoveByPackageConfigCaptor.getValue().packageNameToOverridesToRemove; Map<Long, PackageOverride> addedOverrides; Map<Long, PackageOverride> addedOverrides; assertThat(packageNameToAddedOverrides.keySet()).containsExactly(PACKAGE_1, PACKAGE_3); assertThat(packageNameToAddedOverrides.keySet()).containsExactly(PACKAGE_1, PACKAGE_3); assertThat(packageNameToRemovedOverrides.keySet()).containsExactly(PACKAGE_3, PACKAGE_4); assertThat(packageNameToRemovedOverrides.keySet()).containsExactly(PACKAGE_2, PACKAGE_3, PACKAGE_4); // Package 1 // Package 1 addedOverrides = packageNameToAddedOverrides.get(PACKAGE_1).overrides; addedOverrides = packageNameToAddedOverrides.get(PACKAGE_1).overrides; assertThat(addedOverrides).hasSize(3); assertThat(addedOverrides).hasSize(3); Loading @@ -193,6 +194,9 @@ public class AppCompatOverridesServiceTest { new PackageOverride.Builder().setMinVersionCode(2).setEnabled(true).build()); new PackageOverride.Builder().setMinVersionCode(2).setEnabled(true).build()); assertThat(addedOverrides.get(789L)).isEqualTo( assertThat(addedOverrides.get(789L)).isEqualTo( new PackageOverride.Builder().setEnabled(false).build()); new PackageOverride.Builder().setEnabled(false).build()); // Package 2 assertThat(packageNameToRemovedOverrides.get(PACKAGE_2).changeIds).containsExactly(123L, 456L, 789L); // Package 3 // Package 3 addedOverrides = packageNameToAddedOverrides.get(PACKAGE_3).overrides; addedOverrides = packageNameToAddedOverrides.get(PACKAGE_3).overrides; assertThat(addedOverrides).hasSize(1); assertThat(addedOverrides).hasSize(1); Loading Loading
services/core/java/com/android/server/compat/overrides/AppCompatOverridesService.java +10 −9 Original line number Original line Diff line number Diff line Loading @@ -25,6 +25,7 @@ import static android.provider.DeviceConfig.NAMESPACE_APP_COMPAT_OVERRIDES; import static com.android.server.compat.overrides.AppCompatOverridesParser.FLAG_OWNED_CHANGE_IDS; import static com.android.server.compat.overrides.AppCompatOverridesParser.FLAG_OWNED_CHANGE_IDS; import static com.android.server.compat.overrides.AppCompatOverridesParser.FLAG_REMOVE_OVERRIDES; import static com.android.server.compat.overrides.AppCompatOverridesParser.FLAG_REMOVE_OVERRIDES; import static java.util.Collections.emptyMap; import static java.util.Collections.emptySet; import static java.util.Collections.emptySet; import android.annotation.NonNull; import android.annotation.NonNull; Loading Loading @@ -157,17 +158,17 @@ public final class AppCompatOverridesService { Map<String, CompatibilityOverridesToRemoveConfig> packageNameToOverridesToRemove = Map<String, CompatibilityOverridesToRemoveConfig> packageNameToOverridesToRemove = new ArrayMap<>(); new ArrayMap<>(); for (String packageName : packageNames) { for (String packageName : packageNames) { Long versionCode = getVersionCodeOrNull(packageName); if (versionCode == null) { // Package isn't installed yet. continue; } Set<Long> changeIdsToSkip = packageToChangeIdsToSkip.getOrDefault(packageName, Set<Long> changeIdsToSkip = packageToChangeIdsToSkip.getOrDefault(packageName, emptySet()); emptySet()); Map<Long, PackageOverride> overridesToAdd = mOverridesParser.parsePackageOverrides( Map<Long, PackageOverride> overridesToAdd = emptyMap(); Long versionCode = getVersionCodeOrNull(packageName); if (versionCode != null) { // Only if package installed add overrides, otherwise just remove. overridesToAdd = mOverridesParser.parsePackageOverrides( properties.getString(packageName, /* defaultValue= */ ""), packageName, properties.getString(packageName, /* defaultValue= */ ""), packageName, versionCode, changeIdsToSkip); versionCode, changeIdsToSkip); } if (!overridesToAdd.isEmpty()) { if (!overridesToAdd.isEmpty()) { packageNameToOverridesToAdd.put(packageName, packageNameToOverridesToAdd.put(packageName, new CompatibilityOverrideConfig(overridesToAdd)); new CompatibilityOverrideConfig(overridesToAdd)); Loading
services/tests/mockingservicestests/src/com/android/server/compat/overrides/AppCompatOverridesServiceTest.java +5 −1 Original line number Original line Diff line number Diff line Loading @@ -183,7 +183,8 @@ public class AppCompatOverridesServiceTest { mOverridesToRemoveByPackageConfigCaptor.getValue().packageNameToOverridesToRemove; mOverridesToRemoveByPackageConfigCaptor.getValue().packageNameToOverridesToRemove; Map<Long, PackageOverride> addedOverrides; Map<Long, PackageOverride> addedOverrides; assertThat(packageNameToAddedOverrides.keySet()).containsExactly(PACKAGE_1, PACKAGE_3); assertThat(packageNameToAddedOverrides.keySet()).containsExactly(PACKAGE_1, PACKAGE_3); assertThat(packageNameToRemovedOverrides.keySet()).containsExactly(PACKAGE_3, PACKAGE_4); assertThat(packageNameToRemovedOverrides.keySet()).containsExactly(PACKAGE_2, PACKAGE_3, PACKAGE_4); // Package 1 // Package 1 addedOverrides = packageNameToAddedOverrides.get(PACKAGE_1).overrides; addedOverrides = packageNameToAddedOverrides.get(PACKAGE_1).overrides; assertThat(addedOverrides).hasSize(3); assertThat(addedOverrides).hasSize(3); Loading @@ -193,6 +194,9 @@ public class AppCompatOverridesServiceTest { new PackageOverride.Builder().setMinVersionCode(2).setEnabled(true).build()); new PackageOverride.Builder().setMinVersionCode(2).setEnabled(true).build()); assertThat(addedOverrides.get(789L)).isEqualTo( assertThat(addedOverrides.get(789L)).isEqualTo( new PackageOverride.Builder().setEnabled(false).build()); new PackageOverride.Builder().setEnabled(false).build()); // Package 2 assertThat(packageNameToRemovedOverrides.get(PACKAGE_2).changeIds).containsExactly(123L, 456L, 789L); // Package 3 // Package 3 addedOverrides = packageNameToAddedOverrides.get(PACKAGE_3).overrides; addedOverrides = packageNameToAddedOverrides.get(PACKAGE_3).overrides; assertThat(addedOverrides).hasSize(1); assertThat(addedOverrides).hasSize(1); Loading