Merge "Revert "Update show system experiment behavior."" into tm-dev

This commit is contained in:
Kate Montgomery
2022-05-04 14:52:56 +00:00
committed by Android (Google) Code Review
3 changed files with 3 additions and 89 deletions

View File

@@ -7232,13 +7232,6 @@ public final class Settings {
*/
public static final String LOCATION_SHOW_SYSTEM_OPS = "locationShowSystemOps";
/**
* Whether or not an indicator experiment has started.
* @hide
*/
public static final String LOCATION_INDICATOR_EXPERIMENT_STARTED =
"locationIndicatorExperimentStarted";
/**
* A flag containing settings used for biometric weak
* @hide

View File

@@ -86,7 +86,6 @@ public class LocationControllerImpl extends BroadcastReceiver implements Locatio
private boolean mShouldDisplayAllAccesses;
private boolean mShowSystemAccessesFlag;
private boolean mShowSystemAccessesSetting;
private boolean mExperimentStarted;
@Inject
public LocationControllerImpl(Context context, AppOpsController appOpsController,
@@ -108,9 +107,6 @@ public class LocationControllerImpl extends BroadcastReceiver implements Locatio
mShouldDisplayAllAccesses = getAllAccessesSetting();
mShowSystemAccessesFlag = getShowSystemFlag();
mShowSystemAccessesSetting = getShowSystemSetting();
mExperimentStarted = getExperimentStarted();
toggleSystemSettingIfExperimentJustStarted();
mContentObserver = new ContentObserver(mBackgroundHandler) {
@Override
public void onChange(boolean selfChange) {
@@ -127,15 +123,8 @@ public class LocationControllerImpl extends BroadcastReceiver implements Locatio
DeviceConfig.NAMESPACE_PRIVACY,
backgroundHandler::post,
properties -> {
// Update the Device Config flag which controls the experiment to display
// location accesses.
mShouldDisplayAllAccesses = getAllAccessesSetting();
// Update the Device Config flag which controls the experiment to display
// system location accesses.
mShowSystemAccessesFlag = getShowSystemFlag();
// Update the local flag for the system accesses experiment and potentially
// update the behavior based on the flag value.
toggleSystemSettingIfExperimentJustStarted();
mShowSystemAccessesFlag = getShowSystemSetting();
updateActiveLocationRequests();
});
@@ -234,33 +223,6 @@ public class LocationControllerImpl extends BroadcastReceiver implements Locatio
UserHandle.USER_CURRENT) == 1;
}
private boolean getExperimentStarted() {
return mSecureSettings
.getInt(Settings.Secure.LOCATION_INDICATOR_EXPERIMENT_STARTED, 0) == 1;
}
private void toggleSystemSettingIfExperimentJustStarted() {
// mShowSystemAccessesFlag indicates whether the Device Config flag is flipped
// by an experiment. mExperimentStarted is the local device value which indicates the last
// value the device has seen for the Device Config flag.
// The local device value is needed to determine that the Device Config flag was just
// flipped, as the experiment behavior should only happen once after the experiment is
// enabled.
if (mShowSystemAccessesFlag && !mExperimentStarted) {
// If the Device Config flag is enabled, but the local device setting is not then the
// experiment just started. Update the local flag to match and enable the experiment
// behavior by flipping the show system setting value.
mSecureSettings.putInt(Settings.Secure.LOCATION_INDICATOR_EXPERIMENT_STARTED, 1);
mSecureSettings.putInt(Settings.Secure.LOCATION_SHOW_SYSTEM_OPS, 1);
mExperimentStarted = true;
} else if (!mShowSystemAccessesFlag && mExperimentStarted) {
// If the Device Config flag is disabled, but the local device flag is enabled then
// update the local device flag to match.
mSecureSettings.putInt(Settings.Secure.LOCATION_INDICATOR_EXPERIMENT_STARTED, 0);
mExperimentStarted = false;
}
}
/**
* Returns true if there currently exist active high power location requests.
*/
@@ -288,6 +250,7 @@ public class LocationControllerImpl extends BroadcastReceiver implements Locatio
}
boolean hadActiveLocationRequests = mAreActiveLocationRequests;
boolean shouldDisplay = false;
boolean showSystem = mShowSystemAccessesFlag || mShowSystemAccessesSetting;
boolean systemAppOp = false;
boolean nonSystemAppOp = false;
boolean isSystemApp;
@@ -305,7 +268,7 @@ public class LocationControllerImpl extends BroadcastReceiver implements Locatio
nonSystemAppOp = true;
}
shouldDisplay = mShowSystemAccessesSetting || shouldDisplay || !isSystemApp;
shouldDisplay = showSystem || shouldDisplay || !isSystemApp;
}
}

View File

@@ -365,46 +365,4 @@ public class LocationControllerImplTest extends SysuiTestCase {
// No new callbacks
verify(callback).onLocationSettingsChanged(anyBoolean());
}
@Test
public void testExperimentFlipsSystemFlag() throws Exception {
mSecureSettings.putInt(Settings.Secure.LOCATION_SHOW_SYSTEM_OPS, 0);
mDeviceConfigProxy.setProperty(
DeviceConfig.NAMESPACE_PRIVACY,
SystemUiDeviceConfigFlags.PROPERTY_LOCATION_INDICATORS_SMALL_ENABLED,
"true",
true);
// Show system experiment not running
mDeviceConfigProxy.setProperty(
DeviceConfig.NAMESPACE_PRIVACY,
SystemUiDeviceConfigFlags.PROPERTY_LOCATION_INDICATORS_SHOW_SYSTEM,
"false",
false);
mTestableLooper.processAllMessages();
// Flip experiment on
mDeviceConfigProxy.setProperty(
DeviceConfig.NAMESPACE_PRIVACY,
SystemUiDeviceConfigFlags.PROPERTY_LOCATION_INDICATORS_SHOW_SYSTEM,
"true",
true);
mTestableLooper.processAllMessages();
// Verify settings were flipped
assertThat(mSecureSettings.getInt(Settings.Secure.LOCATION_SHOW_SYSTEM_OPS))
.isEqualTo(1);
assertThat(mSecureSettings.getInt(Settings.Secure.LOCATION_INDICATOR_EXPERIMENT_STARTED))
.isEqualTo(1);
// Flip experiment off
mDeviceConfigProxy.setProperty(
DeviceConfig.NAMESPACE_PRIVACY,
SystemUiDeviceConfigFlags.PROPERTY_LOCATION_INDICATORS_SHOW_SYSTEM,
"false",
false);
mTestableLooper.processAllMessages();
assertThat(mSecureSettings.getInt(Settings.Secure.LOCATION_INDICATOR_EXPERIMENT_STARTED))
.isEqualTo(0);
}
}