Enable mic & camera by default
This CL sets the default value of device config for camera and mic (when
the setting hasn't been set before) as true.
Test: atest com.android.systemui.privacy
Test: manual
Bug: 168209929
Change-Id: I71107c692e1e7e6beea355ffa51317584f2b6e7c
Merged-In: I71107c692e1e7e6beea355ffa51317584f2b6e7c
(cherry picked from commit 22e8b46aae0949f5b89f43746a8c4f4a5a748654)
diff --git a/packages/SystemUI/src/com/android/systemui/privacy/PrivacyItemController.kt b/packages/SystemUI/src/com/android/systemui/privacy/PrivacyItemController.kt
index 59118bf..a46ecaf 100644
--- a/packages/SystemUI/src/com/android/systemui/privacy/PrivacyItemController.kt
+++ b/packages/SystemUI/src/com/android/systemui/privacy/PrivacyItemController.kt
@@ -72,6 +72,8 @@
private const val ALL_INDICATORS =
SystemUiDeviceConfigFlags.PROPERTY_PERMISSIONS_HUB_ENABLED
private const val MIC_CAMERA = SystemUiDeviceConfigFlags.PROPERTY_MIC_CAMERA_ENABLED
+ private const val DEFAULT_ALL_INDICATORS = false
+ private const val DEFAULT_MIC_CAMERA = true
}
@VisibleForTesting
@@ -81,12 +83,12 @@
fun isAllIndicatorsEnabled(): Boolean {
return deviceConfigProxy.getBoolean(DeviceConfig.NAMESPACE_PRIVACY,
- ALL_INDICATORS, false)
+ ALL_INDICATORS, DEFAULT_ALL_INDICATORS)
}
private fun isMicCameraEnabled(): Boolean {
return deviceConfigProxy.getBoolean(DeviceConfig.NAMESPACE_PRIVACY,
- MIC_CAMERA, false)
+ MIC_CAMERA, DEFAULT_MIC_CAMERA)
}
private var currentUserIds = emptyList<Int>()
@@ -118,12 +120,13 @@
// Running on the ui executor so can iterate on callbacks
if (properties.keyset.contains(ALL_INDICATORS)) {
- allIndicatorsAvailable = properties.getBoolean(ALL_INDICATORS, false)
+ allIndicatorsAvailable = properties.getBoolean(ALL_INDICATORS,
+ DEFAULT_ALL_INDICATORS)
callbacks.forEach { it.get()?.onFlagAllChanged(allIndicatorsAvailable) }
}
if (properties.keyset.contains(MIC_CAMERA)) {
- micCameraAvailable = properties.getBoolean(MIC_CAMERA, false)
+ micCameraAvailable = properties.getBoolean(MIC_CAMERA, DEFAULT_MIC_CAMERA)
callbacks.forEach { it.get()?.onFlagMicCameraChanged(micCameraAvailable) }
}
internalUiExecutor.updateListeningState()
diff --git a/packages/SystemUI/tests/src/com/android/systemui/privacy/PrivacyItemControllerFlagsTest.kt b/packages/SystemUI/tests/src/com/android/systemui/privacy/PrivacyItemControllerFlagsTest.kt
index 4ba29e6..25fb7d3 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/privacy/PrivacyItemControllerFlagsTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/privacy/PrivacyItemControllerFlagsTest.kt
@@ -96,22 +96,24 @@
}
@Test
- fun testNotListeningByDefault() {
+ fun testNotListeningAllByDefault() {
assertFalse(privacyItemController.allIndicatorsAvailable)
- assertFalse(privacyItemController.micCameraAvailable)
+ }
- verify(appOpsController, never()).addCallback(any(), any())
+ @Test
+ fun testMicCameraListeningByDefault() {
+ assertTrue(privacyItemController.micCameraAvailable)
}
@Test
fun testMicCameraChanged() {
- changeMicCamera(true)
+ changeMicCamera(false) // default is true
executor.runAllReady()
- verify(callback).onFlagMicCameraChanged(true)
+ verify(callback).onFlagMicCameraChanged(false)
verify(callback, never()).onFlagAllChanged(anyBoolean())
- assertTrue(privacyItemController.micCameraAvailable)
+ assertFalse(privacyItemController.micCameraAvailable)
assertFalse(privacyItemController.allIndicatorsAvailable)
}
@@ -124,20 +126,19 @@
verify(callback, never()).onFlagMicCameraChanged(anyBoolean())
assertTrue(privacyItemController.allIndicatorsAvailable)
- assertFalse(privacyItemController.micCameraAvailable)
}
@Test
fun testBothChanged() {
changeAll(true)
- changeMicCamera(true)
+ changeMicCamera(false)
executor.runAllReady()
verify(callback, atLeastOnce()).onFlagAllChanged(true)
- verify(callback, atLeastOnce()).onFlagMicCameraChanged(true)
+ verify(callback, atLeastOnce()).onFlagMicCameraChanged(false)
assertTrue(privacyItemController.allIndicatorsAvailable)
- assertTrue(privacyItemController.micCameraAvailable)
+ assertFalse(privacyItemController.micCameraAvailable)
}
@Test
@@ -157,18 +158,11 @@
}
@Test
- fun testAll_listening() {
- changeAll(true)
- executor.runAllReady()
-
- verify(appOpsController).addCallback(eq(PrivacyItemController.OPS), any())
- }
-
- @Test
fun testAllFalse_notListening() {
changeAll(true)
executor.runAllReady()
changeAll(false)
+ changeMicCamera(false)
executor.runAllReady()
verify(appOpsController).removeCallback(any(), any())
@@ -176,8 +170,8 @@
@Test
fun testSomeListening_stillListening() {
+ // Mic and camera are true by default
changeAll(true)
- changeMicCamera(true)
executor.runAllReady()
changeAll(false)
executor.runAllReady()
@@ -186,7 +180,8 @@
}
@Test
- fun testAllDeleted_stopListening() {
+ fun testAllDeleted_micCameraFalse_stopListening() {
+ changeMicCamera(false)
changeAll(true)
executor.runAllReady()
changeAll(null)
@@ -196,13 +191,13 @@
}
@Test
- fun testMicDeleted_stopListening() {
+ fun testMicDeleted_stillListening() {
changeMicCamera(true)
executor.runAllReady()
changeMicCamera(null)
executor.runAllReady()
- verify(appOpsController).removeCallback(any(), any())
+ verify(appOpsController, never()).removeCallback(any(), any())
}
private fun changeMicCamera(value: Boolean?) = changeProperty(MIC_CAMERA, value)
diff --git a/packages/SystemUI/tests/src/com/android/systemui/privacy/PrivacyItemControllerTest.kt b/packages/SystemUI/tests/src/com/android/systemui/privacy/PrivacyItemControllerTest.kt
index 5c5df26..38e8823 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/privacy/PrivacyItemControllerTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/privacy/PrivacyItemControllerTest.kt
@@ -272,6 +272,7 @@
@Test
fun testNotListeningWhenIndicatorsDisabled() {
changeAll(false)
+ changeMicCamera(false)
privacyItemController.addCallback(callback)
executor.runAllReady()
verify(appOpsController, never()).addCallback(eq(PrivacyItemController.OPS),