diff options
| author | 2021-06-23 21:08:52 -0700 | |
|---|---|---|
| committer | 2021-07-01 10:42:11 -0700 | |
| commit | 06a6055a1c28307c9bf4128b53e884a69671b47c (patch) | |
| tree | a97847678d86ae941bf655bf8b950ad308a685e5 | |
| parent | 79bbe49b4bfd10766fbc65ea08e07c86a6a5e76c (diff) | |
Disable mic/cam quicksettings tiles when admin disallows
Also add longpressing sends to privacy settings
Test: Use test DPC app
Bug: 184927615
Change-Id: I7a1a8e9601baeb59723999031e0171b896540491
3 files changed, 21 insertions, 2 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/qs/tiles/CameraToggleTile.java b/packages/SystemUI/src/com/android/systemui/qs/tiles/CameraToggleTile.java index 45c71744e0ec..fa2d4447f26d 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/tiles/CameraToggleTile.java +++ b/packages/SystemUI/src/com/android/systemui/qs/tiles/CameraToggleTile.java @@ -17,6 +17,7 @@ package com.android.systemui.qs.tiles; import static android.hardware.SensorPrivacyManager.Sensors.CAMERA; +import static android.os.UserManager.DISALLOW_CAMERA_TOGGLE; import static com.android.systemui.DejankUtils.whitelistIpcs; @@ -86,4 +87,9 @@ public class CameraToggleTile extends SensorPrivacyToggleTile { public @Sensor int getSensorId() { return CAMERA; } + + @Override + public String getRestriction() { + return DISALLOW_CAMERA_TOGGLE; + } } diff --git a/packages/SystemUI/src/com/android/systemui/qs/tiles/MicrophoneToggleTile.java b/packages/SystemUI/src/com/android/systemui/qs/tiles/MicrophoneToggleTile.java index 48a1ad673d76..f4f0b2cdc432 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/tiles/MicrophoneToggleTile.java +++ b/packages/SystemUI/src/com/android/systemui/qs/tiles/MicrophoneToggleTile.java @@ -17,6 +17,7 @@ package com.android.systemui.qs.tiles; import static android.hardware.SensorPrivacyManager.Sensors.MICROPHONE; +import static android.os.UserManager.DISALLOW_MICROPHONE_TOGGLE; import static com.android.systemui.DejankUtils.whitelistIpcs; @@ -86,4 +87,9 @@ public class MicrophoneToggleTile extends SensorPrivacyToggleTile { public @Sensor int getSensorId() { return MICROPHONE; } + + @Override + public String getRestriction() { + return DISALLOW_MICROPHONE_TOGGLE; + } } diff --git a/packages/SystemUI/src/com/android/systemui/qs/tiles/SensorPrivacyToggleTile.java b/packages/SystemUI/src/com/android/systemui/qs/tiles/SensorPrivacyToggleTile.java index f13576c2d4cc..fa73a73545f2 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/tiles/SensorPrivacyToggleTile.java +++ b/packages/SystemUI/src/com/android/systemui/qs/tiles/SensorPrivacyToggleTile.java @@ -20,6 +20,7 @@ import android.content.Intent; import android.hardware.SensorPrivacyManager.Sensors.Sensor; import android.os.Handler; import android.os.Looper; +import android.provider.Settings; import android.service.quicksettings.Tile; import android.view.View; import android.widget.Switch; @@ -61,6 +62,11 @@ public abstract class SensorPrivacyToggleTile extends QSTileImpl<QSTile.BooleanS */ public abstract @DrawableRes int getIconRes(boolean isBlocked); + /** + * @return the user restriction name + */ + public abstract String getRestriction(); + protected SensorPrivacyToggleTile(QSHost host, @Background Looper backgroundLooper, @Main Handler mainHandler, @@ -101,6 +107,8 @@ public abstract class SensorPrivacyToggleTile extends QSTileImpl<QSTile.BooleanS boolean isBlocked = arg == null ? mSensorPrivacyController.isSensorBlocked(getSensorId()) : (boolean) arg; + checkIfRestrictionEnforcedByAdminOnly(state, getRestriction()); + state.icon = ResourceIcon.get(getIconRes(isBlocked)); state.state = isBlocked ? Tile.STATE_INACTIVE : Tile.STATE_ACTIVE; state.value = !isBlocked; @@ -110,7 +118,6 @@ public abstract class SensorPrivacyToggleTile extends QSTileImpl<QSTile.BooleanS } else { state.secondaryLabel = mContext.getString(R.string.quick_settings_camera_mic_available); } - state.handlesLongClick = false; state.contentDescription = state.label; state.expandedAccessibilityClassName = Switch.class.getName(); } @@ -122,7 +129,7 @@ public abstract class SensorPrivacyToggleTile extends QSTileImpl<QSTile.BooleanS @Override public Intent getLongClickIntent() { - return null; + return new Intent(Settings.ACTION_PRIVACY_SETTINGS); } @Override |