Merge "Revert "Update show system experiment behavior."" into tm-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
7c4b55cc6c
@@ -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
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user