diff options
author | 2023-08-30 09:21:00 -0700 | |
---|---|---|
committer | 2024-01-12 00:05:01 +0000 | |
commit | c02e03ab4c3884a661be0d4062a269f6657913fd (patch) | |
tree | 08d6354b296dff805f02629df8282f664ae02893 | |
parent | 5547da50b08d696a49b79a881cea77e48985a266 (diff) |
Fix privacy controls redirection
When camera/mic global indicators are disabled,
then clicking on sensor warning banner, long press
on camera/mic QS tile or notification are redirecting
user to safety center home page, when safety center is
enabled, This leaves the user confused if they wish
to switch/enable camera/mic global toggle.
Relnote: Fix privacy controls redirection when safety center is enabled.
Bug: 289038596
Test: atest SensorBlockedBannerTest
(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:337fe28f9dadf94839e773d185da66a0aefdae44)
Merged-In: Idf37d83b2572eab863f2c2c09ddddeb5cc619008
Change-Id: Idf37d83b2572eab863f2c2c09ddddeb5cc619008
-rw-r--r-- | PermissionController/src/com/android/permissioncontroller/permission/ui/handheld/PermissionAppsFragment.java | 25 |
1 files changed, 23 insertions, 2 deletions
diff --git a/PermissionController/src/com/android/permissioncontroller/permission/ui/handheld/PermissionAppsFragment.java b/PermissionController/src/com/android/permissioncontroller/permission/ui/handheld/PermissionAppsFragment.java index 6bcf926d3..ba839ee0e 100644 --- a/PermissionController/src/com/android/permissioncontroller/permission/ui/handheld/PermissionAppsFragment.java +++ b/PermissionController/src/com/android/permissioncontroller/permission/ui/handheld/PermissionAppsFragment.java @@ -35,6 +35,7 @@ import android.os.Handler; import android.os.Looper; import android.os.UserHandle; import android.provider.Settings; +import android.safetycenter.SafetyCenterManager; import android.util.ArrayMap; import android.view.Menu; import android.view.MenuInflater; @@ -93,6 +94,8 @@ public final class PermissionAppsFragment extends SettingsWithLargeHeader implem private static final int MENU_PERMISSION_USAGE = MENU_HIDE_SYSTEM + 1; + private static final String PRIVACY_CONTROLS_ACTION = "android.settings.PRIVACY_CONTROLS"; + /** * Create a bundle with the arguments needed by this fragment * @@ -281,12 +284,30 @@ public final class PermissionAppsFragment extends SettingsWithLargeHeader implem findPreference(ALLOWED_FOREGROUND.getCategoryName()).setVisible(false); } + @RequiresApi(Build.VERSION_CODES.TIRAMISU) + private String getPrivacyControlsIntent() { + SafetyCenterManager safetyCenterManager = + getContext().getSystemService(SafetyCenterManager.class); + if (safetyCenterManager.isSafetyCenterEnabled()) { + return PRIVACY_CONTROLS_ACTION; + } else { + return Settings.ACTION_PRIVACY_SETTINGS; + } + } + @RequiresApi(Build.VERSION_CODES.S) private CardViewPreference createSensorCard() { boolean isLocation = Manifest.permission_group.LOCATION.equals(mPermGroupName); Context context = getPreferenceManager().getContext(); - String action = isLocation ? Settings.ACTION_LOCATION_SOURCE_SETTINGS - : Settings.ACTION_PRIVACY_SETTINGS; + + String action; + if (isLocation) { + action = Settings.ACTION_LOCATION_SOURCE_SETTINGS; + } else if (SdkLevel.isAtLeastT()) { + action = getPrivacyControlsIntent(); + } else { + action = Settings.ACTION_PRIVACY_SETTINGS; + } CardViewPreference sensorCard = new CardViewPreference(context, action); sensorCard.setKey(BLOCKED_SENSOR_PREF_KEY); sensorCard.setIcon(Utils.getBlockedIcon(mPermGroupName)); |