Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit bc190889 authored by Kate Montgomery's avatar Kate Montgomery Committed by Automerger Merge Worker
Browse files

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

Merge "Revert "Update show system experiment behavior."" into tm-dev am: 7c4b55cc am: e0d552c3 am: 493c2466

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/18030765



Change-Id: I49bc3560035598cf9b7bdf883cb1a56d73d6db92
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents c728f2fa 493c2466
Loading
Loading
Loading
Loading
+0 −7
Original line number Original line Diff line number Diff line
@@ -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
+3 −40
Original line number Original line Diff line number Diff line
@@ -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;
            }
            }
        }
        }


+0 −42
Original line number Original line Diff line number Diff line
@@ -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);
    }
}
}
 No newline at end of file