Merge "Tweak compat change override policy"
am: 880792723a
Change-Id: I8b93e3493cb4117891813ae58daa87ca4909e169
This commit is contained in:
@@ -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);
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user