summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Evan Severson <evanseverson@google.com> 2021-06-23 21:08:52 -0700
committer Evan Severson <evanseverson@google.com> 2021-07-01 10:42:11 -0700
commit06a6055a1c28307c9bf4128b53e884a69671b47c (patch)
treea97847678d86ae941bf655bf8b950ad308a685e5
parent79bbe49b4bfd10766fbc65ea08e07c86a6a5e76c (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
-rw-r--r--packages/SystemUI/src/com/android/systemui/qs/tiles/CameraToggleTile.java6
-rw-r--r--packages/SystemUI/src/com/android/systemui/qs/tiles/MicrophoneToggleTile.java6
-rw-r--r--packages/SystemUI/src/com/android/systemui/qs/tiles/SensorPrivacyToggleTile.java11
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