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";
|
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
|
* A flag containing settings used for biometric weak
|
||||||
* @hide
|
* @hide
|
||||||
|
|||||||
@@ -86,7 +86,6 @@ public class LocationControllerImpl extends BroadcastReceiver implements Locatio
|
|||||||
private boolean mShouldDisplayAllAccesses;
|
private boolean mShouldDisplayAllAccesses;
|
||||||
private boolean mShowSystemAccessesFlag;
|
private boolean mShowSystemAccessesFlag;
|
||||||
private boolean mShowSystemAccessesSetting;
|
private boolean mShowSystemAccessesSetting;
|
||||||
private boolean mExperimentStarted;
|
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
public LocationControllerImpl(Context context, AppOpsController appOpsController,
|
public LocationControllerImpl(Context context, AppOpsController appOpsController,
|
||||||
@@ -108,9 +107,6 @@ public class LocationControllerImpl extends BroadcastReceiver implements Locatio
|
|||||||
mShouldDisplayAllAccesses = getAllAccessesSetting();
|
mShouldDisplayAllAccesses = getAllAccessesSetting();
|
||||||
mShowSystemAccessesFlag = getShowSystemFlag();
|
mShowSystemAccessesFlag = getShowSystemFlag();
|
||||||
mShowSystemAccessesSetting = getShowSystemSetting();
|
mShowSystemAccessesSetting = getShowSystemSetting();
|
||||||
mExperimentStarted = getExperimentStarted();
|
|
||||||
toggleSystemSettingIfExperimentJustStarted();
|
|
||||||
|
|
||||||
mContentObserver = new ContentObserver(mBackgroundHandler) {
|
mContentObserver = new ContentObserver(mBackgroundHandler) {
|
||||||
@Override
|
@Override
|
||||||
public void onChange(boolean selfChange) {
|
public void onChange(boolean selfChange) {
|
||||||
@@ -127,15 +123,8 @@ public class LocationControllerImpl extends BroadcastReceiver implements Locatio
|
|||||||
DeviceConfig.NAMESPACE_PRIVACY,
|
DeviceConfig.NAMESPACE_PRIVACY,
|
||||||
backgroundHandler::post,
|
backgroundHandler::post,
|
||||||
properties -> {
|
properties -> {
|
||||||
// Update the Device Config flag which controls the experiment to display
|
|
||||||
// location accesses.
|
|
||||||
mShouldDisplayAllAccesses = getAllAccessesSetting();
|
mShouldDisplayAllAccesses = getAllAccessesSetting();
|
||||||
// Update the Device Config flag which controls the experiment to display
|
mShowSystemAccessesFlag = getShowSystemSetting();
|
||||||
// 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();
|
|
||||||
updateActiveLocationRequests();
|
updateActiveLocationRequests();
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -234,33 +223,6 @@ public class LocationControllerImpl extends BroadcastReceiver implements Locatio
|
|||||||
UserHandle.USER_CURRENT) == 1;
|
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.
|
* 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 hadActiveLocationRequests = mAreActiveLocationRequests;
|
||||||
boolean shouldDisplay = false;
|
boolean shouldDisplay = false;
|
||||||
|
boolean showSystem = mShowSystemAccessesFlag || mShowSystemAccessesSetting;
|
||||||
boolean systemAppOp = false;
|
boolean systemAppOp = false;
|
||||||
boolean nonSystemAppOp = false;
|
boolean nonSystemAppOp = false;
|
||||||
boolean isSystemApp;
|
boolean isSystemApp;
|
||||||
@@ -305,7 +268,7 @@ public class LocationControllerImpl extends BroadcastReceiver implements Locatio
|
|||||||
nonSystemAppOp = true;
|
nonSystemAppOp = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
shouldDisplay = mShowSystemAccessesSetting || shouldDisplay || !isSystemApp;
|
shouldDisplay = showSystem || shouldDisplay || !isSystemApp;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -365,46 +365,4 @@ public class LocationControllerImplTest extends SysuiTestCase {
|
|||||||
// No new callbacks
|
// No new callbacks
|
||||||
verify(callback).onLocationSettingsChanged(anyBoolean());
|
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