From a0146d3fb73dd4f9f9666472ea79a409d0885648 Mon Sep 17 00:00:00 2001 From: Stanley Wang Date: Fri, 24 Dec 2021 18:09:58 +0800 Subject: [PATCH] Fix the problem that some items can't be searched in Privacy category. The source of problem is that the controller returns the wrong availability status value and the searchable attribut of the preference is false. Fix: 200249682 Test: manual test and see the search result Change-Id: I2265514c49303f6a0910f1be84b281fccb9abb45 --- res/xml/privacy_dashboard_settings.xml | 4 +--- .../android/settings/privacy/CameraToggleController.java | 2 +- src/com/android/settings/privacy/MicToggleController.java | 2 +- .../privacy/WorkPolicyInfoPreferenceController.java | 4 +--- .../privacy/WorkPolicyInfoPreferenceControllerTest.java | 8 ++++---- 5 files changed, 8 insertions(+), 12 deletions(-) diff --git a/res/xml/privacy_dashboard_settings.xml b/res/xml/privacy_dashboard_settings.xml index cd7d79836e7..7e1d5ced190 100644 --- a/res/xml/privacy_dashboard_settings.xml +++ b/res/xml/privacy_dashboard_settings.xml @@ -49,7 +49,6 @@ android:key="privacy_permissions_usage" android:title="@string/permissions_usage_title" android:summary="@string/permissions_usage_summary" - settings:searchable="false" settings:controller="com.android.settings.privacy.PrivacyHubPreferenceController"> @@ -58,8 +57,7 @@ + android:summary="@string/runtime_permissions_summary_control_app_access"> diff --git a/src/com/android/settings/privacy/CameraToggleController.java b/src/com/android/settings/privacy/CameraToggleController.java index 1a5da76869c..756553c4bf6 100644 --- a/src/com/android/settings/privacy/CameraToggleController.java +++ b/src/com/android/settings/privacy/CameraToggleController.java @@ -40,7 +40,7 @@ public class CameraToggleController extends SensorToggleController { public int getAvailabilityStatus() { return mSensorPrivacyManagerHelper.supportsSensorToggle(getSensor()) && DeviceConfig.getBoolean(DeviceConfig.NAMESPACE_PRIVACY, "camera_toggle_enabled", - true) ? AVAILABLE_UNSEARCHABLE : UNSUPPORTED_ON_DEVICE; + true) ? AVAILABLE : UNSUPPORTED_ON_DEVICE; } @Override diff --git a/src/com/android/settings/privacy/MicToggleController.java b/src/com/android/settings/privacy/MicToggleController.java index 23d41d65cc8..c2389d2439e 100644 --- a/src/com/android/settings/privacy/MicToggleController.java +++ b/src/com/android/settings/privacy/MicToggleController.java @@ -40,7 +40,7 @@ public class MicToggleController extends SensorToggleController { public int getAvailabilityStatus() { return mSensorPrivacyManagerHelper.supportsSensorToggle(getSensor()) && DeviceConfig.getBoolean(DeviceConfig.NAMESPACE_PRIVACY, "mic_toggle_enabled", - true) ? AVAILABLE_UNSEARCHABLE : UNSUPPORTED_ON_DEVICE; + true) ? AVAILABLE : UNSUPPORTED_ON_DEVICE; } @Override diff --git a/src/com/android/settings/privacy/WorkPolicyInfoPreferenceController.java b/src/com/android/settings/privacy/WorkPolicyInfoPreferenceController.java index 977d1bf79e9..55ba0646af5 100644 --- a/src/com/android/settings/privacy/WorkPolicyInfoPreferenceController.java +++ b/src/com/android/settings/privacy/WorkPolicyInfoPreferenceController.java @@ -37,9 +37,7 @@ public class WorkPolicyInfoPreferenceController extends BasePreferenceController @Override public int getAvailabilityStatus() { - return mEnterpriseProvider.hasWorkPolicyInfo() - ? AVAILABLE_UNSEARCHABLE - : UNSUPPORTED_ON_DEVICE; + return mEnterpriseProvider.hasWorkPolicyInfo() ? AVAILABLE : UNSUPPORTED_ON_DEVICE; } @Override diff --git a/tests/robotests/src/com/android/settings/privacy/WorkPolicyInfoPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/privacy/WorkPolicyInfoPreferenceControllerTest.java index 79aec301e17..82444aade07 100644 --- a/tests/robotests/src/com/android/settings/privacy/WorkPolicyInfoPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/privacy/WorkPolicyInfoPreferenceControllerTest.java @@ -16,7 +16,7 @@ package com.android.settings.privacy; -import static com.android.settings.core.BasePreferenceController.AVAILABLE_UNSEARCHABLE; +import static com.android.settings.core.BasePreferenceController.AVAILABLE; import static com.android.settings.core.BasePreferenceController.UNSUPPORTED_ON_DEVICE; import static com.google.common.truth.Truth.assertThat; @@ -33,8 +33,8 @@ import com.android.settings.enterprise.EnterprisePrivacyFeatureProvider; import com.android.settings.testutils.FakeFeatureFactory; import org.junit.Before; -import org.junit.runner.RunWith; import org.junit.Test; +import org.junit.runner.RunWith; import org.mockito.MockitoAnnotations; import org.robolectric.RobolectricTestRunner; import org.robolectric.RuntimeEnvironment; @@ -64,12 +64,12 @@ public class WorkPolicyInfoPreferenceControllerTest { } @Test - public void getAvailabilityStatus_haveWorkPolicyInfo_shouldReturnAvailableUnsearchable() { + public void getAvailabilityStatus_haveWorkPolicyInfo_shouldReturnAvailable() { when(mEnterpriseProvider.hasWorkPolicyInfo()).thenReturn(true); WorkPolicyInfoPreferenceController controller = new WorkPolicyInfoPreferenceController(mContext, "test_key"); - assertThat(controller.getAvailabilityStatus()).isEqualTo(AVAILABLE_UNSEARCHABLE); + assertThat(controller.getAvailabilityStatus()).isEqualTo(AVAILABLE); } @Test