Loading packages/SystemUI/src/com/android/systemui/qs/HeaderPrivacyIconsController.kt +5 −1 Original line number Diff line number Diff line Loading @@ -11,6 +11,7 @@ import com.android.systemui.privacy.PrivacyItemController import com.android.systemui.privacy.logging.PrivacyLogger import com.android.systemui.statusbar.phone.StatusIconContainer import javax.inject.Inject import com.android.systemui.statusbar.policy.DeviceProvisionedController interface ChipVisibilityListener { fun onChipVisibilityRefreshed(visible: Boolean) Loading @@ -32,7 +33,8 @@ class HeaderPrivacyIconsController @Inject constructor( private val privacyChip: OngoingPrivacyChip, private val privacyDialogController: PrivacyDialogController, private val privacyLogger: PrivacyLogger, private val iconContainer: StatusIconContainer private val iconContainer: StatusIconContainer, private val deviceProvisionedController: DeviceProvisionedController ) { var chipVisibilityListener: ChipVisibilityListener? = null Loading Loading @@ -75,6 +77,8 @@ class HeaderPrivacyIconsController @Inject constructor( fun onParentVisible() { privacyChip.setOnClickListener { // Do not expand dialog while device is not provisioned if (!deviceProvisionedController.isDeviceProvisioned) return@setOnClickListener // If the privacy chip is visible, it means there were some indicators uiEventLogger.log(PrivacyChipEvent.ONGOING_INDICATORS_CHIP_CLICK) privacyDialogController.showDialog(privacyChip.context) Loading packages/SystemUI/tests/src/com/android/systemui/qs/HeaderPrivacyIconsControllerTest.kt +19 −1 Original line number Diff line number Diff line Loading @@ -11,6 +11,7 @@ import com.android.systemui.privacy.PrivacyDialogController import com.android.systemui.privacy.PrivacyItemController import com.android.systemui.privacy.logging.PrivacyLogger import com.android.systemui.statusbar.phone.StatusIconContainer import com.android.systemui.statusbar.policy.DeviceProvisionedController import com.android.systemui.util.mockito.any import com.android.systemui.util.mockito.argumentCaptor import com.android.systemui.util.mockito.capture Loading @@ -18,6 +19,7 @@ import org.junit.Before import org.junit.Test import org.junit.runner.RunWith import org.mockito.Mock import org.mockito.Mockito.never import org.mockito.Mockito.verify import org.mockito.MockitoAnnotations import org.mockito.Mockito.`when` as whenever Loading @@ -38,6 +40,8 @@ class HeaderPrivacyIconsControllerTest : SysuiTestCase() { private lateinit var privacyLogger: PrivacyLogger @Mock private lateinit var iconContainer: StatusIconContainer @Mock private lateinit var deviceProvisionedController: DeviceProvisionedController private lateinit var cameraSlotName: String private lateinit var microphoneSlotName: String Loading @@ -50,6 +54,7 @@ class HeaderPrivacyIconsControllerTest : SysuiTestCase() { MockitoAnnotations.initMocks(this) whenever(privacyChip.context).thenReturn(context) whenever(privacyChip.resources).thenReturn(context.resources) whenever(deviceProvisionedController.isDeviceProvisioned).thenReturn(true) cameraSlotName = context.getString(com.android.internal.R.string.status_bar_camera) microphoneSlotName = context.getString(com.android.internal.R.string.status_bar_microphone) Loading @@ -61,7 +66,8 @@ class HeaderPrivacyIconsControllerTest : SysuiTestCase() { privacyChip, privacyDialogController, privacyLogger, iconContainer iconContainer, deviceProvisionedController ) } Loading Loading @@ -121,6 +127,18 @@ class HeaderPrivacyIconsControllerTest : SysuiTestCase() { verify(privacyDialogController).showDialog(any(Context::class.java)) } @Test fun testNoDialogWhenDeviceNotProvisioned() { whenever(deviceProvisionedController.isDeviceProvisioned).thenReturn(false) controller.onParentVisible() val captor = argumentCaptor<View.OnClickListener>() verify(privacyChip).setOnClickListener(capture(captor)) captor.value.onClick(privacyChip) verify(privacyDialogController, never()).showDialog(any(Context::class.java)) } private fun setPrivacyController(micCamera: Boolean, location: Boolean) { whenever(privacyItemController.micCameraAvailable).thenReturn(micCamera) whenever(privacyItemController.locationAvailable).thenReturn(location) Loading Loading
packages/SystemUI/src/com/android/systemui/qs/HeaderPrivacyIconsController.kt +5 −1 Original line number Diff line number Diff line Loading @@ -11,6 +11,7 @@ import com.android.systemui.privacy.PrivacyItemController import com.android.systemui.privacy.logging.PrivacyLogger import com.android.systemui.statusbar.phone.StatusIconContainer import javax.inject.Inject import com.android.systemui.statusbar.policy.DeviceProvisionedController interface ChipVisibilityListener { fun onChipVisibilityRefreshed(visible: Boolean) Loading @@ -32,7 +33,8 @@ class HeaderPrivacyIconsController @Inject constructor( private val privacyChip: OngoingPrivacyChip, private val privacyDialogController: PrivacyDialogController, private val privacyLogger: PrivacyLogger, private val iconContainer: StatusIconContainer private val iconContainer: StatusIconContainer, private val deviceProvisionedController: DeviceProvisionedController ) { var chipVisibilityListener: ChipVisibilityListener? = null Loading Loading @@ -75,6 +77,8 @@ class HeaderPrivacyIconsController @Inject constructor( fun onParentVisible() { privacyChip.setOnClickListener { // Do not expand dialog while device is not provisioned if (!deviceProvisionedController.isDeviceProvisioned) return@setOnClickListener // If the privacy chip is visible, it means there were some indicators uiEventLogger.log(PrivacyChipEvent.ONGOING_INDICATORS_CHIP_CLICK) privacyDialogController.showDialog(privacyChip.context) Loading
packages/SystemUI/tests/src/com/android/systemui/qs/HeaderPrivacyIconsControllerTest.kt +19 −1 Original line number Diff line number Diff line Loading @@ -11,6 +11,7 @@ import com.android.systemui.privacy.PrivacyDialogController import com.android.systemui.privacy.PrivacyItemController import com.android.systemui.privacy.logging.PrivacyLogger import com.android.systemui.statusbar.phone.StatusIconContainer import com.android.systemui.statusbar.policy.DeviceProvisionedController import com.android.systemui.util.mockito.any import com.android.systemui.util.mockito.argumentCaptor import com.android.systemui.util.mockito.capture Loading @@ -18,6 +19,7 @@ import org.junit.Before import org.junit.Test import org.junit.runner.RunWith import org.mockito.Mock import org.mockito.Mockito.never import org.mockito.Mockito.verify import org.mockito.MockitoAnnotations import org.mockito.Mockito.`when` as whenever Loading @@ -38,6 +40,8 @@ class HeaderPrivacyIconsControllerTest : SysuiTestCase() { private lateinit var privacyLogger: PrivacyLogger @Mock private lateinit var iconContainer: StatusIconContainer @Mock private lateinit var deviceProvisionedController: DeviceProvisionedController private lateinit var cameraSlotName: String private lateinit var microphoneSlotName: String Loading @@ -50,6 +54,7 @@ class HeaderPrivacyIconsControllerTest : SysuiTestCase() { MockitoAnnotations.initMocks(this) whenever(privacyChip.context).thenReturn(context) whenever(privacyChip.resources).thenReturn(context.resources) whenever(deviceProvisionedController.isDeviceProvisioned).thenReturn(true) cameraSlotName = context.getString(com.android.internal.R.string.status_bar_camera) microphoneSlotName = context.getString(com.android.internal.R.string.status_bar_microphone) Loading @@ -61,7 +66,8 @@ class HeaderPrivacyIconsControllerTest : SysuiTestCase() { privacyChip, privacyDialogController, privacyLogger, iconContainer iconContainer, deviceProvisionedController ) } Loading Loading @@ -121,6 +127,18 @@ class HeaderPrivacyIconsControllerTest : SysuiTestCase() { verify(privacyDialogController).showDialog(any(Context::class.java)) } @Test fun testNoDialogWhenDeviceNotProvisioned() { whenever(deviceProvisionedController.isDeviceProvisioned).thenReturn(false) controller.onParentVisible() val captor = argumentCaptor<View.OnClickListener>() verify(privacyChip).setOnClickListener(capture(captor)) captor.value.onClick(privacyChip) verify(privacyDialogController, never()).showDialog(any(Context::class.java)) } private fun setPrivacyController(micCamera: Boolean, location: Boolean) { whenever(privacyItemController.micCameraAvailable).thenReturn(micCamera) whenever(privacyItemController.locationAvailable).thenReturn(location) Loading