From dc67fb3283338695d2a88797a63cf574d0b4ab9a Mon Sep 17 00:00:00 2001 From: Kate Montgomery Date: Fri, 13 May 2022 23:21:11 +0000 Subject: [PATCH] Flag off stickiness of show/hide system setting. Bug: 191503437 Test: atest SettingsRoboTests Change-Id: I96e287cb870265e6ce379e64d01f134f8b3dde59 --- .../RecentLocationAccessPreferenceController.java | 9 +++++++-- .../RecentLocationAccessSeeAllFragment.java | 9 +++++++-- ...tLocationAccessSeeAllPreferenceController.java | 10 ++++++++-- ...RecentLocationRequestPreferenceController.java | 9 +++++++-- ...ntLocationRequestPreferenceControllerTest.java | 15 ++++++++++++++- 5 files changed, 43 insertions(+), 9 deletions(-) diff --git a/src/com/android/settings/location/RecentLocationAccessPreferenceController.java b/src/com/android/settings/location/RecentLocationAccessPreferenceController.java index 35f62572df0..4216d8707c7 100644 --- a/src/com/android/settings/location/RecentLocationAccessPreferenceController.java +++ b/src/com/android/settings/location/RecentLocationAccessPreferenceController.java @@ -20,6 +20,7 @@ import android.content.Intent; import android.icu.text.RelativeDateTimeFormatter; import android.os.UserHandle; import android.os.UserManager; +import android.provider.DeviceConfig; import android.provider.Settings; import androidx.annotation.VisibleForTesting; @@ -27,6 +28,7 @@ import androidx.preference.Preference; import androidx.preference.PreferenceCategory; import androidx.preference.PreferenceScreen; +import com.android.internal.config.sysui.SystemUiDeviceConfigFlags; import com.android.settings.R; import com.android.settings.dashboard.DashboardFragment; import com.android.settings.dashboard.profileselector.ProfileSelectFragment; @@ -82,8 +84,11 @@ public class RecentLocationAccessPreferenceController extends LocationBasePrefer RecentAppOpsAccess recentLocationApps) { super(context, key); mRecentLocationApps = recentLocationApps; - mShowSystem = Settings.Secure.getInt(mContext.getContentResolver(), - Settings.Secure.LOCATION_SHOW_SYSTEM_OPS, 0) == 1; + mShowSystem = DeviceConfig.getBoolean(DeviceConfig.NAMESPACE_PRIVACY, + SystemUiDeviceConfigFlags.PROPERTY_LOCATION_INDICATORS_SMALL_ENABLED, false) + ? Settings.Secure.getInt(mContext.getContentResolver(), + Settings.Secure.LOCATION_SHOW_SYSTEM_OPS, 0) == 1 + : false; } @Override diff --git a/src/com/android/settings/location/RecentLocationAccessSeeAllFragment.java b/src/com/android/settings/location/RecentLocationAccessSeeAllFragment.java index f7bf31a896a..ecbcb30eace 100644 --- a/src/com/android/settings/location/RecentLocationAccessSeeAllFragment.java +++ b/src/com/android/settings/location/RecentLocationAccessSeeAllFragment.java @@ -17,11 +17,13 @@ package com.android.settings.location; import android.content.Context; import android.os.Bundle; +import android.provider.DeviceConfig; import android.provider.Settings; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; +import com.android.internal.config.sysui.SystemUiDeviceConfigFlags; import com.android.internal.logging.nano.MetricsProto.MetricsEvent; import com.android.settings.R; import com.android.settings.dashboard.DashboardFragment; @@ -58,8 +60,11 @@ public class RecentLocationAccessSeeAllFragment extends DashboardFragment { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - mShowSystem = Settings.Secure.getInt(getContentResolver(), - Settings.Secure.LOCATION_SHOW_SYSTEM_OPS, 0) == 1; + mShowSystem = DeviceConfig.getBoolean(DeviceConfig.NAMESPACE_PRIVACY, + SystemUiDeviceConfigFlags.PROPERTY_LOCATION_INDICATORS_SMALL_ENABLED, false) + ? Settings.Secure.getInt(getContentResolver(), + Settings.Secure.LOCATION_SHOW_SYSTEM_OPS, 0) == 1 + : false; } @Override diff --git a/src/com/android/settings/location/RecentLocationAccessSeeAllPreferenceController.java b/src/com/android/settings/location/RecentLocationAccessSeeAllPreferenceController.java index 75406f7132a..d6586673f89 100644 --- a/src/com/android/settings/location/RecentLocationAccessSeeAllPreferenceController.java +++ b/src/com/android/settings/location/RecentLocationAccessSeeAllPreferenceController.java @@ -20,11 +20,13 @@ import static com.android.settings.location.RecentLocationAccessPreferenceContro import android.content.Context; import android.os.UserManager; +import android.provider.DeviceConfig; import android.provider.Settings; import androidx.preference.Preference; import androidx.preference.PreferenceScreen; +import com.android.internal.config.sysui.SystemUiDeviceConfigFlags; import com.android.settings.R; import com.android.settings.dashboard.profileselector.ProfileSelectFragment; import com.android.settings.overlay.FeatureFactory; @@ -48,8 +50,12 @@ public class RecentLocationAccessSeeAllPreferenceController public RecentLocationAccessSeeAllPreferenceController(Context context, String key) { super(context, key); - mShowSystem = Settings.Secure.getInt(mContext.getContentResolver(), - Settings.Secure.LOCATION_SHOW_SYSTEM_OPS, 0) == 1; + mShowSystem = DeviceConfig.getBoolean(DeviceConfig.NAMESPACE_PRIVACY, + SystemUiDeviceConfigFlags.PROPERTY_LOCATION_INDICATORS_SMALL_ENABLED, false) + ? Settings.Secure.getInt(mContext.getContentResolver(), + Settings.Secure.LOCATION_SHOW_SYSTEM_OPS, 0) == 1 + : false; + mRecentLocationAccesses = RecentAppOpsAccess.createForLocation(context); mMetricsFeatureProvider = FeatureFactory.getFactory(context).getMetricsFeatureProvider(); } diff --git a/src/com/android/settings/location/RecentLocationRequestPreferenceController.java b/src/com/android/settings/location/RecentLocationRequestPreferenceController.java index a14e047cb4b..39211ee5202 100644 --- a/src/com/android/settings/location/RecentLocationRequestPreferenceController.java +++ b/src/com/android/settings/location/RecentLocationRequestPreferenceController.java @@ -17,6 +17,7 @@ import android.content.Context; import android.os.Bundle; import android.os.UserHandle; import android.os.UserManager; +import android.provider.DeviceConfig; import android.provider.Settings; import androidx.annotation.VisibleForTesting; @@ -24,6 +25,7 @@ import androidx.preference.Preference; import androidx.preference.PreferenceCategory; import androidx.preference.PreferenceScreen; +import com.android.internal.config.sysui.SystemUiDeviceConfigFlags; import com.android.settings.R; import com.android.settings.applications.appinfo.AppInfoDashboardFragment; import com.android.settings.core.SubSettingLauncher; @@ -84,8 +86,11 @@ public class RecentLocationRequestPreferenceController extends LocationBasePrefe final Context prefContext = mCategoryRecentLocationRequests.getContext(); final List recentLocationRequests = new ArrayList<>(); final UserManager userManager = UserManager.get(mContext); - final boolean showSystem = Settings.Secure.getInt(mContext.getContentResolver(), - Settings.Secure.LOCATION_SHOW_SYSTEM_OPS, 0) == 1; + final boolean showSystem = DeviceConfig.getBoolean(DeviceConfig.NAMESPACE_PRIVACY, + SystemUiDeviceConfigFlags.PROPERTY_LOCATION_INDICATORS_SMALL_ENABLED, false) + ? Settings.Secure.getInt(mContext.getContentResolver(), + Settings.Secure.LOCATION_SHOW_SYSTEM_OPS, 0) == 1 + : false; for (RecentLocationApps.Request request : mRecentLocationApps.getAppListSorted( showSystem)) { diff --git a/tests/robotests/src/com/android/settings/location/RecentLocationRequestPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/location/RecentLocationRequestPreferenceControllerTest.java index be778cbf29f..9e0ce8c7540 100644 --- a/tests/robotests/src/com/android/settings/location/RecentLocationRequestPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/location/RecentLocationRequestPreferenceControllerTest.java @@ -26,15 +26,19 @@ import static org.mockito.Mockito.when; import android.content.Context; import android.graphics.drawable.Drawable; import android.os.UserHandle; +import android.provider.DeviceConfig; import android.provider.Settings; import androidx.preference.PreferenceCategory; import androidx.preference.PreferenceScreen; +import com.android.internal.config.sysui.SystemUiDeviceConfigFlags; import com.android.settings.dashboard.profileselector.ProfileSelectFragment; +import com.android.settings.testutils.shadow.ShadowDeviceConfig; import com.android.settings.testutils.shadow.ShadowUserManager; import com.android.settingslib.location.RecentLocationApps; +import org.junit.After; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; @@ -50,7 +54,7 @@ import java.util.List; import java.util.Set; @RunWith(RobolectricTestRunner.class) -@Config(shadows = {ShadowUserManager.class}) +@Config(shadows = {ShadowDeviceConfig.class, ShadowUserManager.class}) public class RecentLocationRequestPreferenceControllerTest { @Mock private PreferenceScreen mScreen; @@ -72,6 +76,11 @@ public class RecentLocationRequestPreferenceControllerTest { mController.mRecentLocationApps = spy(new RecentLocationApps(mContext)); } + @After + public void tearDown() { + ShadowDeviceConfig.reset(); + } + @Test public void updateState_whenAppListMoreThanThree_shouldDisplayTopThreeApps() { final List requests = createMockRequest(6); @@ -84,6 +93,10 @@ public class RecentLocationRequestPreferenceControllerTest { @Test public void updateState_whenAppListMoreThanThree_showSystem() { + DeviceConfig.setProperty(DeviceConfig.NAMESPACE_PRIVACY, + SystemUiDeviceConfigFlags.PROPERTY_LOCATION_INDICATORS_SMALL_ENABLED, + Boolean.toString(true), + true); when(mController.mRecentLocationApps.getAppListSorted(false)) .thenReturn(createMockRequest(2)); when(mController.mRecentLocationApps.getAppListSorted(true))