diff --git a/packages/SystemUI/src/com/android/systemui/privacy/PrivacyItemController.kt b/packages/SystemUI/src/com/android/systemui/privacy/PrivacyItemController.kt index 59118bf3534e2..a46ecaff77190 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 @@ class PrivacyItemController @Inject constructor( 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 @@ class PrivacyItemController @Inject constructor( 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() @@ -118,12 +120,13 @@ class PrivacyItemController @Inject constructor( // 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 4ba29e6e02a61..25fb7d300b8fc 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 @@ class PrivacyItemControllerFlagsTest : SysuiTestCase() { } @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 @@ class PrivacyItemControllerFlagsTest : SysuiTestCase() { 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 @@ -156,19 +157,12 @@ class PrivacyItemControllerFlagsTest : SysuiTestCase() { verify(appOpsController).addCallback(eq(PrivacyItemController.OPS), any()) } - @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 @@ class PrivacyItemControllerFlagsTest : SysuiTestCase() { @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 @@ class PrivacyItemControllerFlagsTest : SysuiTestCase() { } @Test - fun testAllDeleted_stopListening() { + fun testAllDeleted_micCameraFalse_stopListening() { + changeMicCamera(false) changeAll(true) executor.runAllReady() changeAll(null) @@ -196,13 +191,13 @@ class PrivacyItemControllerFlagsTest : SysuiTestCase() { } @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 5c5df2639cdd9..38e8823adfbb5 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 @@ class PrivacyItemControllerTest : SysuiTestCase() { @Test fun testNotListeningWhenIndicatorsDisabled() { changeAll(false) + changeMicCamera(false) privacyItemController.addCallback(callback) executor.runAllReady() verify(appOpsController, never()).addCallback(eq(PrivacyItemController.OPS),