Check config to Show/Hide Private space Hide Illustration
Enable/disable the search tile content and hide illustration
in Hide Private Space Settings page based on the config value.
By default the config value is set to true which will be used in Pixel
to show the illustration and search tile content.
OEM can set value of config_enableSearchTileHideIllustrationInPrivateSpace in the device
overlay file to false to disable it and with this change it is taken
care to hide them if the config value is false
Screenshot:
go/ss/56WxtgXd5NSqVFm.png
Bug: 346612477
Test: Manual
Flag: android.multiuser.private_space_search_illustration_config
Change-Id: Ia9fbdebd9a220f4d995369d662a75989f07a2916
diff --git a/res/xml/private_space_hide_locked.xml b/res/xml/private_space_hide_locked.xml
index d166b73..56dd151 100644
--- a/res/xml/private_space_hide_locked.xml
+++ b/res/xml/private_space_hide_locked.xml
@@ -21,7 +21,8 @@
<com.android.settingslib.widget.IllustrationPreference
android:key="private_space_hide_illustration"
settings:searchable="false"
- settings:lottie_rawRes="@raw/private_space_hide_when_locked_illustration"/>
+ settings:lottie_rawRes="@raw/private_space_hide_when_locked_illustration"
+ settings:controller="com.android.settings.privatespace.HidePrivateSpaceIllustrationController"/>
<com.android.settingslib.widget.MainSwitchPreference
android:key="hide_when_locked"
@@ -35,7 +36,9 @@
settings:searchable="false" />
<PreferenceCategory
- android:title="@string/private_space_access_header">
+ android:key="private_space_access"
+ android:title="@string/private_space_access_header"
+ settings:controller="com.android.settings.privatespace.HidePrivateSpaceCategoryController">
<Preference
android:key="search_when_locked_footer"
diff --git a/src/com/android/settings/privatespace/HidePrivateSpaceCategoryController.java b/src/com/android/settings/privatespace/HidePrivateSpaceCategoryController.java
new file mode 100644
index 0000000..d754b20
--- /dev/null
+++ b/src/com/android/settings/privatespace/HidePrivateSpaceCategoryController.java
@@ -0,0 +1,43 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.privatespace;
+
+import android.content.Context;
+import android.content.res.Resources;
+
+import androidx.annotation.NonNull;
+
+import com.android.settings.widget.PreferenceCategoryController;
+
+public class HidePrivateSpaceCategoryController extends PreferenceCategoryController {
+ public HidePrivateSpaceCategoryController(@NonNull Context context, @NonNull String key) {
+ super(context, key);
+ }
+
+ @Override
+ public int getAvailabilityStatus() {
+ if (android.multiuser.Flags.privateSpaceSearchIllustrationConfig()) {
+ boolean configValue =
+ Resources.getSystem()
+ .getBoolean(
+ com.android.internal.R.bool
+ .config_enableSearchTileHideIllustrationInPrivateSpace);
+ return configValue ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
+ }
+ return AVAILABLE;
+ }
+}
diff --git a/src/com/android/settings/privatespace/HidePrivateSpaceIllustrationController.java b/src/com/android/settings/privatespace/HidePrivateSpaceIllustrationController.java
new file mode 100644
index 0000000..1606498
--- /dev/null
+++ b/src/com/android/settings/privatespace/HidePrivateSpaceIllustrationController.java
@@ -0,0 +1,44 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.privatespace;
+
+import android.content.Context;
+import android.content.res.Resources;
+
+import androidx.annotation.NonNull;
+
+import com.android.settings.core.BasePreferenceController;
+
+public class HidePrivateSpaceIllustrationController extends BasePreferenceController {
+
+ public HidePrivateSpaceIllustrationController(@NonNull Context context, @NonNull String key) {
+ super(context, key);
+ }
+
+ @Override
+ public int getAvailabilityStatus() {
+ if (android.multiuser.Flags.privateSpaceSearchIllustrationConfig()) {
+ boolean configValue =
+ Resources.getSystem()
+ .getBoolean(
+ com.android.internal.R.bool
+ .config_enableSearchTileHideIllustrationInPrivateSpace);
+ return configValue ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
+ }
+ return AVAILABLE;
+ }
+}