Merge "Tweak compat change override policy"

am: 880792723a

Change-Id: I8b93e3493cb4117891813ae58daa87ca4909e169
This commit is contained in:
Andrei Onea
2020-01-17 12:23:54 -08:00
committed by android-build-merger
2 changed files with 9 additions and 9 deletions

View File

@@ -53,6 +53,7 @@ public class OverrideValidatorImpl extends IOverrideValidator.Stub {
public OverrideAllowedState getOverrideAllowedState(long changeId, String packageName) { public OverrideAllowedState getOverrideAllowedState(long changeId, String packageName) {
boolean debuggableBuild = false; boolean debuggableBuild = false;
boolean finalBuild = false; boolean finalBuild = false;
int minTargetSdk = mCompatConfig.minTargetSdkForChangeId(changeId);
debuggableBuild = mAndroidBuildClassifier.isDebuggableBuild(); debuggableBuild = mAndroidBuildClassifier.isDebuggableBuild();
finalBuild = mAndroidBuildClassifier.isFinalBuild(); finalBuild = mAndroidBuildClassifier.isFinalBuild();
@@ -76,15 +77,14 @@ public class OverrideValidatorImpl extends IOverrideValidator.Stub {
if ((applicationInfo.flags & ApplicationInfo.FLAG_DEBUGGABLE) == 0) { if ((applicationInfo.flags & ApplicationInfo.FLAG_DEBUGGABLE) == 0) {
return new OverrideAllowedState(DISABLED_NOT_DEBUGGABLE, -1, -1); return new OverrideAllowedState(DISABLED_NOT_DEBUGGABLE, -1, -1);
} }
int minTargetSdk = mCompatConfig.minTargetSdkForChangeId(changeId);
// Do not allow overriding non-target sdk gated changes on user builds
if (minTargetSdk == -1) {
return new OverrideAllowedState(DISABLED_NON_TARGET_SDK, appTargetSdk, minTargetSdk);
}
// Allow overriding any change for debuggable apps on non-final builds. // Allow overriding any change for debuggable apps on non-final builds.
if (!finalBuild) { if (!finalBuild) {
return new OverrideAllowedState(ALLOWED, appTargetSdk, minTargetSdk); return new OverrideAllowedState(ALLOWED, appTargetSdk, minTargetSdk);
} }
// Do not allow overriding non-target sdk gated changes on user builds
if (minTargetSdk == -1) {
return new OverrideAllowedState(DISABLED_NON_TARGET_SDK, appTargetSdk, minTargetSdk);
}
// Only allow to opt-in for a targetSdk gated change. // Only allow to opt-in for a targetSdk gated change.
if (applicationInfo.targetSdkVersion < minTargetSdk) { if (applicationInfo.targetSdkVersion < minTargetSdk) {
return new OverrideAllowedState(ALLOWED, appTargetSdk, minTargetSdk); return new OverrideAllowedState(ALLOWED, appTargetSdk, minTargetSdk);

View File

@@ -188,7 +188,7 @@ public class OverrideValidatorImplTest {
} }
@Test @Test
public void getOverrideAllowedState_betaBuildEnabledChangeDebugApp_rejectOverride() public void getOverrideAllowedState_betaBuildEnabledChangeDebugApp_allowOverride()
throws Exception { throws Exception {
CompatConfig config = CompatConfigBuilder.create(betaBuild(), mContext) CompatConfig config = CompatConfigBuilder.create(betaBuild(), mContext)
.addEnabledChangeWithId(1).build(); .addEnabledChangeWithId(1).build();
@@ -203,11 +203,11 @@ public class OverrideValidatorImplTest {
overrideValidator.getOverrideAllowedState(1, PACKAGE_NAME); overrideValidator.getOverrideAllowedState(1, PACKAGE_NAME);
assertThat(allowedState) assertThat(allowedState)
.isEqualTo(new OverrideAllowedState(DISABLED_NON_TARGET_SDK, -1, -1)); .isEqualTo(new OverrideAllowedState(ALLOWED, -1, -1));
} }
@Test @Test
public void getOverrideAllowedState_betaBuildDisabledChangeDebugApp_rejectOverride() public void getOverrideAllowedState_betaBuildDisabledChangeDebugApp_allowOverride()
throws Exception { throws Exception {
CompatConfig config = CompatConfigBuilder.create(betaBuild(), mContext) CompatConfig config = CompatConfigBuilder.create(betaBuild(), mContext)
.addDisabledChangeWithId(1).build(); .addDisabledChangeWithId(1).build();
@@ -221,7 +221,7 @@ public class OverrideValidatorImplTest {
overrideValidator.getOverrideAllowedState(1, PACKAGE_NAME); overrideValidator.getOverrideAllowedState(1, PACKAGE_NAME);
assertThat(allowedState) assertThat(allowedState)
.isEqualTo(new OverrideAllowedState(DISABLED_NON_TARGET_SDK, -1, -1)); .isEqualTo(new OverrideAllowedState(ALLOWED, -1, -1));
} }
@Test @Test