diff options
author | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2022-12-13 18:29:09 +0000 |
---|---|---|
committer | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2022-12-13 18:29:09 +0000 |
commit | c3165ba89ae41ba0c6aa853e34f365c8262412be (patch) | |
tree | 78625e79e5bdb5428587b712656403a53991cb35 | |
parent | 6f44b5efdb9d0492f21cc898891189496cf9bf7e (diff) | |
parent | 5e457e2a2bb1a41d6b786deae471bc08e45a6655 (diff) | |
download | base-c3165ba89ae41ba0c6aa853e34f365c8262412be.tar.gz |
Merge cherrypicks of ['ag/20327583'] into security-aosp-tm-release.android-security-13.0.0_r2
Change-Id: I0b43fd0027ada8b8178686c828f5534f1fa36897
-rw-r--r-- | packages/SystemUI/src/com/android/systemui/qs/HeaderPrivacyIconsController.kt | 6 | ||||
-rw-r--r-- | packages/SystemUI/tests/src/com/android/systemui/qs/HeaderPrivacyIconsControllerTest.kt | 19 |
2 files changed, 23 insertions, 2 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/qs/HeaderPrivacyIconsController.kt b/packages/SystemUI/src/com/android/systemui/qs/HeaderPrivacyIconsController.kt index dc79f40ffef6..6f645b562008 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/HeaderPrivacyIconsController.kt +++ b/packages/SystemUI/src/com/android/systemui/qs/HeaderPrivacyIconsController.kt @@ -26,6 +26,7 @@ import java.util.concurrent.Executor import javax.inject.Inject import com.android.systemui.dagger.qualifiers.Background import com.android.systemui.dagger.qualifiers.Main +import com.android.systemui.statusbar.policy.DeviceProvisionedController interface ChipVisibilityListener { fun onChipVisibilityRefreshed(visible: Boolean) @@ -54,7 +55,8 @@ class HeaderPrivacyIconsController @Inject constructor( private val activityStarter: ActivityStarter, private val appOpsController: AppOpsController, private val broadcastDispatcher: BroadcastDispatcher, - private val safetyCenterManager: SafetyCenterManager + private val safetyCenterManager: SafetyCenterManager, + private val deviceProvisionedController: DeviceProvisionedController ) { var chipVisibilityListener: ChipVisibilityListener? = null @@ -134,6 +136,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) if (safetyCenterEnabled) { diff --git a/packages/SystemUI/tests/src/com/android/systemui/qs/HeaderPrivacyIconsControllerTest.kt b/packages/SystemUI/tests/src/com/android/systemui/qs/HeaderPrivacyIconsControllerTest.kt index 4c7240673fb0..3620233fc9df 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/qs/HeaderPrivacyIconsControllerTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/qs/HeaderPrivacyIconsControllerTest.kt @@ -19,6 +19,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.concurrency.FakeExecutor import com.android.systemui.util.mockito.any import com.android.systemui.util.mockito.argumentCaptor @@ -66,6 +67,8 @@ class HeaderPrivacyIconsControllerTest : SysuiTestCase() { private lateinit var broadcastDispatcher: BroadcastDispatcher @Mock private lateinit var safetyCenterManager: SafetyCenterManager + @Mock + private lateinit var deviceProvisionedController: DeviceProvisionedController private val uiExecutor = FakeExecutor(FakeSystemClock()) private val backgroundExecutor = FakeExecutor(FakeSystemClock()) @@ -80,6 +83,7 @@ class HeaderPrivacyIconsControllerTest : SysuiTestCase() { whenever(privacyChip.context).thenReturn(context) whenever(privacyChip.resources).thenReturn(context.resources) whenever(privacyChip.isAttachedToWindow).thenReturn(true) + 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) @@ -98,7 +102,8 @@ class HeaderPrivacyIconsControllerTest : SysuiTestCase() { activityStarter, appOpsController, broadcastDispatcher, - safetyCenterManager + safetyCenterManager, + deviceProvisionedController ) backgroundExecutor.runAllReady() @@ -199,6 +204,18 @@ class HeaderPrivacyIconsControllerTest : SysuiTestCase() { ) } + @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) |