Merge "Disable the mic/cam toggles when admin disallows" into sc-dev am: caa670fad4
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/15089520 Change-Id: I4d26a22136ef98071de7f36f1d836e902c2aae85
This commit is contained in:
@@ -64,14 +64,14 @@
|
|||||||
</Preference>
|
</Preference>
|
||||||
|
|
||||||
<!-- Camera toggle -->
|
<!-- Camera toggle -->
|
||||||
<SwitchPreference
|
<com.android.settingslib.RestrictedSwitchPreference
|
||||||
android:key="privacy_camera_toggle"
|
android:key="privacy_camera_toggle"
|
||||||
android:title="@string/camera_toggle_title"
|
android:title="@string/camera_toggle_title"
|
||||||
android:summary="@string/sensor_toggle_description"
|
android:summary="@string/sensor_toggle_description"
|
||||||
settings:controller="com.android.settings.privacy.CameraToggleController"/>
|
settings:controller="com.android.settings.privacy.CameraToggleController"/>
|
||||||
|
|
||||||
<!-- Microphone toggle -->
|
<!-- Microphone toggle -->
|
||||||
<SwitchPreference
|
<com.android.settingslib.RestrictedSwitchPreference
|
||||||
android:key="privacy_mic_toggle"
|
android:key="privacy_mic_toggle"
|
||||||
android:title="@string/mic_toggle_title"
|
android:title="@string/mic_toggle_title"
|
||||||
android:summary="@string/sensor_toggle_description"
|
android:summary="@string/sensor_toggle_description"
|
||||||
|
@@ -16,6 +16,8 @@
|
|||||||
|
|
||||||
package com.android.settings.privacy;
|
package com.android.settings.privacy;
|
||||||
|
|
||||||
|
import static android.os.UserManager.DISALLOW_CAMERA_TOGGLE;
|
||||||
|
|
||||||
import static com.android.settings.utils.SensorPrivacyManagerHelper.CAMERA;
|
import static com.android.settings.utils.SensorPrivacyManagerHelper.CAMERA;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
@@ -40,4 +42,9 @@ public class CameraToggleController extends SensorToggleController {
|
|||||||
&& DeviceConfig.getBoolean(DeviceConfig.NAMESPACE_PRIVACY, "camera_toggle_enabled",
|
&& DeviceConfig.getBoolean(DeviceConfig.NAMESPACE_PRIVACY, "camera_toggle_enabled",
|
||||||
true) ? AVAILABLE_UNSEARCHABLE : UNSUPPORTED_ON_DEVICE;
|
true) ? AVAILABLE_UNSEARCHABLE : UNSUPPORTED_ON_DEVICE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected String getRestriction() {
|
||||||
|
return DISALLOW_CAMERA_TOGGLE;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -16,6 +16,8 @@
|
|||||||
|
|
||||||
package com.android.settings.privacy;
|
package com.android.settings.privacy;
|
||||||
|
|
||||||
|
import static android.os.UserManager.DISALLOW_MICROPHONE_TOGGLE;
|
||||||
|
|
||||||
import static com.android.settings.utils.SensorPrivacyManagerHelper.MICROPHONE;
|
import static com.android.settings.utils.SensorPrivacyManagerHelper.MICROPHONE;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
@@ -41,4 +43,8 @@ public class MicToggleController extends SensorToggleController {
|
|||||||
true) ? AVAILABLE_UNSEARCHABLE : UNSUPPORTED_ON_DEVICE;
|
true) ? AVAILABLE_UNSEARCHABLE : UNSUPPORTED_ON_DEVICE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected String getRestriction() {
|
||||||
|
return DISALLOW_MICROPHONE_TOGGLE;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -24,6 +24,8 @@ import androidx.preference.PreferenceScreen;
|
|||||||
|
|
||||||
import com.android.settings.core.TogglePreferenceController;
|
import com.android.settings.core.TogglePreferenceController;
|
||||||
import com.android.settings.utils.SensorPrivacyManagerHelper;
|
import com.android.settings.utils.SensorPrivacyManagerHelper;
|
||||||
|
import com.android.settingslib.RestrictedLockUtilsInternal;
|
||||||
|
import com.android.settingslib.RestrictedSwitchPreference;
|
||||||
|
|
||||||
import java.util.concurrent.Executor;
|
import java.util.concurrent.Executor;
|
||||||
|
|
||||||
@@ -46,6 +48,10 @@ public abstract class SensorToggleController extends TogglePreferenceController
|
|||||||
*/
|
*/
|
||||||
public abstract int getSensor();
|
public abstract int getSensor();
|
||||||
|
|
||||||
|
protected String getRestriction() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isChecked() {
|
public boolean isChecked() {
|
||||||
return !mSensorPrivacyManagerHelper.isSensorBlocked(getSensor());
|
return !mSensorPrivacyManagerHelper.isSensorBlocked(getSensor());
|
||||||
@@ -60,6 +66,14 @@ public abstract class SensorToggleController extends TogglePreferenceController
|
|||||||
@Override
|
@Override
|
||||||
public void displayPreference(PreferenceScreen screen) {
|
public void displayPreference(PreferenceScreen screen) {
|
||||||
super.displayPreference(screen);
|
super.displayPreference(screen);
|
||||||
|
|
||||||
|
RestrictedSwitchPreference preference =
|
||||||
|
(RestrictedSwitchPreference) screen.findPreference(getPreferenceKey());
|
||||||
|
if (preference != null) {
|
||||||
|
preference.setDisabledByAdmin(RestrictedLockUtilsInternal
|
||||||
|
.checkIfRestrictionEnforced(mContext, getRestriction(), mContext.getUserId()));
|
||||||
|
}
|
||||||
|
|
||||||
mSensorPrivacyManagerHelper.addSensorBlockedListener(
|
mSensorPrivacyManagerHelper.addSensorBlockedListener(
|
||||||
getSensor(),
|
getSensor(),
|
||||||
(sensor, blocked) -> updateState(screen.findPreference(mPreferenceKey)),
|
(sensor, blocked) -> updateState(screen.findPreference(mPreferenceKey)),
|
||||||
|
Reference in New Issue
Block a user