Merge "Always apply compat changes to system apps." am: e691553aa6 am: fe17bdccf9
am: ebd7b1c2ea
Change-Id: I790378ff858887374b4384f7f78cc87af5e163f8
This commit is contained in:
@@ -106,6 +106,12 @@ public final class CompatChange {
|
||||
* @return {@code true} if the change should be enabled for the package.
|
||||
*/
|
||||
boolean isEnabled(ApplicationInfo app) {
|
||||
if (app.isSystemApp()) {
|
||||
// All changes are enabled for system apps, and we do not support overrides.
|
||||
// Compatibility issues for system apps should be addressed in the app itself when
|
||||
// the compatibility change is made.
|
||||
return true;
|
||||
}
|
||||
if (mPackageOverrides != null && mPackageOverrides.containsKey(app.packageName)) {
|
||||
return mPackageOverrides.get(app.packageName);
|
||||
}
|
||||
|
||||
@@ -142,4 +142,32 @@ public class CompatConfigTest {
|
||||
CompatConfig pc = new CompatConfig();
|
||||
assertThat(pc.lookupChangeId("MY_CHANGE")).isEqualTo(-1L);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSystemAppDisabledChangeEnabled() {
|
||||
CompatConfig pc = new CompatConfig();
|
||||
pc.addChange(new CompatChange(1234L, "MY_CHANGE", -1, true)); // disabled
|
||||
ApplicationInfo sysApp = makeAppInfo("system.app", 1);
|
||||
sysApp.flags |= ApplicationInfo.FLAG_SYSTEM;
|
||||
assertThat(pc.isChangeEnabled(1234L, sysApp)).isTrue();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSystemAppOverrideIgnored() {
|
||||
CompatConfig pc = new CompatConfig();
|
||||
pc.addChange(new CompatChange(1234L, "MY_CHANGE", -1, false));
|
||||
pc.addOverride(1234L, "system.app", false);
|
||||
ApplicationInfo sysApp = makeAppInfo("system.app", 1);
|
||||
sysApp.flags |= ApplicationInfo.FLAG_SYSTEM;
|
||||
assertThat(pc.isChangeEnabled(1234L, sysApp)).isTrue();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSystemAppTargetSdkIgnored() {
|
||||
CompatConfig pc = new CompatConfig();
|
||||
pc.addChange(new CompatChange(1234L, "MY_CHANGE", 2, false));
|
||||
ApplicationInfo sysApp = makeAppInfo("system.app", 1);
|
||||
sysApp.flags |= ApplicationInfo.FLAG_SYSTEM;
|
||||
assertThat(pc.isChangeEnabled(1234L, sysApp)).isTrue();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user