From bd2ee1e20ad6db9351129eb4bbdf99f0ca67d16a Mon Sep 17 00:00:00 2001 From: Tsung-Mao Fang Date: Tue, 18 Oct 2022 16:01:16 +0800 Subject: [PATCH] Add indexable setting items When work profile is supported on the device, we should support work profile releated setting items. Fix: 238055360 Test: Manual Change-Id: I5b952f958d0c5fc0f7b22838e1f7cfc36239a22e --- res/xml/privacy_dashboard_settings.xml | 6 ++---- .../privacy/PrivacyDashboardFragment.java | 19 +++++++++++++++++++ 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/res/xml/privacy_dashboard_settings.xml b/res/xml/privacy_dashboard_settings.xml index f8f916e916a..4abdeda79ea 100644 --- a/res/xml/privacy_dashboard_settings.xml +++ b/res/xml/privacy_dashboard_settings.xml @@ -86,8 +86,7 @@ + android:summary="@string/summary_placeholder"/> + android:order="999"/> diff --git a/src/com/android/settings/privacy/PrivacyDashboardFragment.java b/src/com/android/settings/privacy/PrivacyDashboardFragment.java index 75ed225e3a6..46a05b06109 100644 --- a/src/com/android/settings/privacy/PrivacyDashboardFragment.java +++ b/src/com/android/settings/privacy/PrivacyDashboardFragment.java @@ -25,9 +25,12 @@ import static android.app.admin.DevicePolicyResources.Strings.Settings.WORK_PROF import android.app.settings.SettingsEnums; import android.content.Context; import android.os.Bundle; +import android.os.UserHandle; +import android.os.UserManager; import android.provider.SearchIndexableResource; import com.android.settings.R; +import com.android.settings.Utils; import com.android.settings.dashboard.DashboardFragment; import com.android.settings.notification.LockScreenNotificationPreferenceController; import com.android.settings.safetycenter.SafetyCenterManagerWrapper; @@ -131,5 +134,21 @@ public class PrivacyDashboardFragment extends DashboardFragment { Context context) { return buildPreferenceControllers(context, null); } + + @Override + public List getNonIndexableKeys(Context context) { + final List keys = super.getNonIndexableKeys(context); + final int profileUserId = + Utils.getManagedProfileId( + UserManager.get(context), UserHandle.myUserId()); + // If work profile is supported, we should keep the search result. + if (profileUserId != UserHandle.USER_NULL) { + return keys; + } + + // Otherwise, we should hide the search result. + keys.add(KEY_NOTIFICATION_WORK_PROFILE_NOTIFICATIONS); + return keys; + } }; }