Loading core/java/android/provider/Settings.java +0 −7 Original line number Diff line number Diff line Loading @@ -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 Loading packages/SystemUI/src/com/android/systemui/statusbar/policy/LocationControllerImpl.java +3 −40 Original line number Diff line number Diff line Loading @@ -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, Loading @@ -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) { Loading @@ -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(); }); Loading Loading @@ -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. */ Loading Loading @@ -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; Loading @@ -305,7 +268,7 @@ public class LocationControllerImpl extends BroadcastReceiver implements Locatio nonSystemAppOp = true; } shouldDisplay = mShowSystemAccessesSetting || shouldDisplay || !isSystemApp; shouldDisplay = showSystem || shouldDisplay || !isSystemApp; } } Loading packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/LocationControllerImplTest.java +0 −42 Original line number Diff line number Diff line Loading @@ -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); } } No newline at end of file Loading
core/java/android/provider/Settings.java +0 −7 Original line number Diff line number Diff line Loading @@ -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 Loading
packages/SystemUI/src/com/android/systemui/statusbar/policy/LocationControllerImpl.java +3 −40 Original line number Diff line number Diff line Loading @@ -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, Loading @@ -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) { Loading @@ -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(); }); Loading Loading @@ -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. */ Loading Loading @@ -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; Loading @@ -305,7 +268,7 @@ public class LocationControllerImpl extends BroadcastReceiver implements Locatio nonSystemAppOp = true; } shouldDisplay = mShowSystemAccessesSetting || shouldDisplay || !isSystemApp; shouldDisplay = showSystem || shouldDisplay || !isSystemApp; } } Loading
packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/LocationControllerImplTest.java +0 −42 Original line number Diff line number Diff line Loading @@ -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); } } No newline at end of file