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.
|
* @return {@code true} if the change should be enabled for the package.
|
||||||
*/
|
*/
|
||||||
boolean isEnabled(ApplicationInfo app) {
|
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)) {
|
if (mPackageOverrides != null && mPackageOverrides.containsKey(app.packageName)) {
|
||||||
return mPackageOverrides.get(app.packageName);
|
return mPackageOverrides.get(app.packageName);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -142,4 +142,32 @@ public class CompatConfigTest {
|
|||||||
CompatConfig pc = new CompatConfig();
|
CompatConfig pc = new CompatConfig();
|
||||||
assertThat(pc.lookupChangeId("MY_CHANGE")).isEqualTo(-1L);
|
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