Add top level privacy hub preference
Bug: 176902658
Test: Manually tested on Sargo DVT
Change-Id: I15d09f0288acadd7599dbe7a2a01223949b40e8f
diff --git a/res/values/strings.xml b/res/values/strings.xml
index e5784e3..6c98cbe 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -9951,6 +9951,12 @@
<!-- Runtime permissions preference summary, which describes what the permission manager does. [CHAR LIMIT=NONE] -->
<string name="runtime_permissions_summary_control_app_access">Control app access to your data</string>
+ <!-- Permissions usage title [CHAR LIMIT=NONE] -->
+ <string name="permissions_usage_title">Permissions usage</string>
+
+ <!-- Permissions usage summary, which describes what the permissions usage does [CHAR LIMIT=NONE] -->
+ <string name="permissions_usage_summary">Show which apps recently used permissions</string>
+
<!-- Label for showing apps that have not been used for months. [CHAR LIMIT=40]-->
<string name="unused_apps">Unused apps</string>
diff --git a/res/xml/privacy_dashboard_settings.xml b/res/xml/privacy_dashboard_settings.xml
index bd6a954..fcd0de4 100644
--- a/res/xml/privacy_dashboard_settings.xml
+++ b/res/xml/privacy_dashboard_settings.xml
@@ -58,6 +58,16 @@
<intent android:action="android.intent.action.MANAGE_PERMISSIONS"/>
</Preference>
+ <!-- Permissions usage -->
+ <Preference
+ 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">
+ <intent android:action="android.intent.action.REVIEW_PERMISSION_USAGE"/>
+ </Preference>
+
<!-- Show passwords -->
<SwitchPreference
android:key="show_password"
diff --git a/src/com/android/settings/privacy/PrivacyHubPreferenceController.java b/src/com/android/settings/privacy/PrivacyHubPreferenceController.java
new file mode 100644
index 0000000..b07b5f5
--- /dev/null
+++ b/src/com/android/settings/privacy/PrivacyHubPreferenceController.java
@@ -0,0 +1,40 @@
+/*
+ * Copyright (C) 2021 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.privacy;
+
+import android.annotation.NonNull;
+import android.content.Context;
+import android.provider.DeviceConfig;
+
+import com.android.settings.core.BasePreferenceController;
+
+/**
+ * The preference controller for privacy hub top level preference.
+ */
+public final class PrivacyHubPreferenceController extends BasePreferenceController {
+ public static final String PROPERTY_PRIVACY_HUB_ENABLED = "privacy_hub_enabled";
+
+ public PrivacyHubPreferenceController(@NonNull Context context, @NonNull String key) {
+ super(context, key);
+ }
+
+ @Override
+ public int getAvailabilityStatus() {
+ return DeviceConfig.getBoolean(DeviceConfig.NAMESPACE_PRIVACY,
+ PROPERTY_PRIVACY_HUB_ENABLED, false) ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
+ }
+}