Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 662c57bb authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Use shade dialog context when opening a PrivacyChip dialog" into main

parents 1dd200f9 be3c0092
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -21,8 +21,10 @@ import com.android.systemui.privacy.PrivacyDialogController
import com.android.systemui.privacy.PrivacyDialogControllerV2
import com.android.systemui.privacy.PrivacyItemController
import com.android.systemui.privacy.logging.PrivacyLogger
import com.android.systemui.shade.data.repository.shadeDialogContextInteractor
import com.android.systemui.statusbar.phone.StatusIconContainer
import com.android.systemui.statusbar.policy.DeviceProvisionedController
import com.android.systemui.testKosmos
import com.android.systemui.util.concurrency.FakeExecutor
import com.android.systemui.util.mockito.any
import com.android.systemui.util.mockito.argumentCaptor
@@ -49,6 +51,7 @@ private fun <T> any(): T = Mockito.any<T>()
@RunWith(AndroidJUnit4::class)
class HeaderPrivacyIconsControllerTest : SysuiTestCase() {

    private val kosmos = testKosmos()
    @Mock
    private lateinit var privacyItemController: PrivacyItemController
    @Mock
@@ -113,7 +116,8 @@ class HeaderPrivacyIconsControllerTest : SysuiTestCase() {
                broadcastDispatcher,
                safetyCenterManager,
                deviceProvisionedController,
                featureFlags
                featureFlags,
                kosmos.shadeDialogContextInteractor,
        )

        backgroundExecutor.runAllReady()
+7 −3
Original line number Diff line number Diff line
@@ -30,6 +30,7 @@ import javax.inject.Inject
import com.android.systemui.dagger.qualifiers.Background
import com.android.systemui.dagger.qualifiers.Main
import com.android.systemui.shade.ShadeViewProviderModule.Companion.SHADE_HEADER
import com.android.systemui.shade.domain.interactor.ShadeDialogContextInteractor
import com.android.systemui.statusbar.policy.DeviceProvisionedController
import javax.inject.Named

@@ -63,7 +64,8 @@ class HeaderPrivacyIconsController @Inject constructor(
    private val broadcastDispatcher: BroadcastDispatcher,
    private val safetyCenterManager: SafetyCenterManager,
    private val deviceProvisionedController: DeviceProvisionedController,
    private val featureFlags: FeatureFlags
    private val featureFlags: FeatureFlags,
    private val shadeDialogContextInteractor: ShadeDialogContextInteractor,
) {

    var chipVisibilityListener: ChipVisibilityListener? = null
@@ -75,6 +77,8 @@ class HeaderPrivacyIconsController @Inject constructor(
    private val cameraSlot = privacyChip.resources.getString(R.string.status_bar_camera)
    private val micSlot = privacyChip.resources.getString(R.string.status_bar_microphone)
    private val locationSlot = privacyChip.resources.getString(R.string.status_bar_location)
    private val dialogContext: Context
        get() = shadeDialogContextInteractor.context

    private val safetyCenterReceiver = object : BroadcastReceiver() {
        override fun onReceive(context: Context, intent: Intent) {
@@ -149,12 +153,12 @@ class HeaderPrivacyIconsController @Inject constructor(
            uiEventLogger.log(PrivacyChipEvent.ONGOING_INDICATORS_CHIP_CLICK)
            if (safetyCenterEnabled) {
                if (featureFlags.isEnabled(Flags.ENABLE_NEW_PRIVACY_DIALOG)) {
                    privacyDialogControllerV2.showDialog(privacyChip.context, privacyChip)
                    privacyDialogControllerV2.showDialog(dialogContext, privacyChip)
                } else {
                    showSafetyCenter()
                }
            } else {
                privacyDialogController.showDialog(privacyChip.context)
                privacyDialogController.showDialog(dialogContext)
            }
        }
        setChipVisibility(privacyChip.visibility == View.VISIBLE)
+3 −2
Original line number Diff line number Diff line
@@ -41,6 +41,7 @@ constructor(
    private val privacyDialogController: PrivacyDialogController,
    private val privacyDialogControllerV2: PrivacyDialogControllerV2,
    private val deviceProvisionedController: DeviceProvisionedController,
    private val shadeDialogContextInteractor: ShadeDialogContextInteractor,
) {
    /** The list of PrivacyItems to be displayed by the privacy chip. */
    val privacyItems: StateFlow<List<PrivacyItem>> = repository.privacyItems
@@ -80,9 +81,9 @@ constructor(
        if (!deviceProvisionedController.isDeviceProvisioned) return

        if (repository.isSafetyCenterEnabled.value) {
            privacyDialogControllerV2.showDialog(privacyChip.context, privacyChip)
            privacyDialogControllerV2.showDialog(shadeDialogContextInteractor.context, privacyChip)
        } else {
            privacyDialogController.showDialog(privacyChip.context)
            privacyDialogController.showDialog(shadeDialogContextInteractor.context)
        }
    }
}
+2 −0
Original line number Diff line number Diff line
@@ -21,6 +21,7 @@ import com.android.systemui.kosmos.applicationCoroutineScope
import com.android.systemui.privacy.privacyDialogController
import com.android.systemui.privacy.privacyDialogControllerV2
import com.android.systemui.shade.data.repository.fakePrivacyChipRepository
import com.android.systemui.shade.data.repository.shadeDialogContextInteractor
import com.android.systemui.statusbar.policy.deviceProvisionedController

var Kosmos.privacyChipInteractor: PrivacyChipInteractor by
@@ -31,5 +32,6 @@ var Kosmos.privacyChipInteractor: PrivacyChipInteractor by
            privacyDialogController = privacyDialogController,
            privacyDialogControllerV2 = privacyDialogControllerV2,
            deviceProvisionedController = deviceProvisionedController,
            shadeDialogContextInteractor = shadeDialogContextInteractor,
        )
    }