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

Commit c8e92727 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Show privacy dialog on secondary user calls" into sc-qpr1-dev

parents d8ea4342 30ead8d8
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -155,7 +155,7 @@ class PrivacyDialogController(
            val items = usage.mapNotNull {
                val type = filterType(permGroupToPrivacyType(it.permGroupName))
                val userInfo = userInfos.firstOrNull { ui -> ui.id == UserHandle.getUserId(it.uid) }
                userInfo?.let { ui ->
                if (userInfo != null || it.isPhoneCall) {
                    type?.let { t ->
                        // Only try to get the app name if we actually need it
                        val appName = if (it.isPhoneCall) {
@@ -171,10 +171,14 @@ class PrivacyDialogController(
                                it.attribution,
                                it.lastAccess,
                                it.isActive,
                                ui.isManagedProfile,
                                // If there's no user info, we're in a phoneCall in secondary user
                                userInfo?.isManagedProfile ?: false,
                                it.isPhoneCall
                        )
                    }
                } else {
                    // No matching user or phone call
                    null
                }
            }
            uiExecutor.execute {
+16 −0
Original line number Diff line number Diff line
@@ -22,6 +22,7 @@ import android.content.Intent
import android.content.pm.ApplicationInfo
import android.content.pm.PackageManager
import android.content.pm.UserInfo
import android.os.Process.SYSTEM_UID
import android.os.UserHandle
import android.permission.PermGroupUsage
import android.permission.PermissionManager
@@ -550,6 +551,21 @@ class PrivacyDialogControllerTest : SysuiTestCase() {
        verify(dialog, never()).dismiss()
    }

    @Test
    fun testCallOnSecondaryUser() {
        // Calls happen in
        val usage = createMockPermGroupUsage(uid = SYSTEM_UID, isPhoneCall = true)
        `when`(permissionManager.getIndicatorAppOpUsageData(anyBoolean())).thenReturn(listOf(usage))
        `when`(userTracker.userProfiles).thenReturn(listOf(
                UserInfo(ENT_USER_ID, "", 0)
        ))

        controller.showDialog(context)
        exhaustExecutors()

        verify(dialog).show()
    }

    private fun exhaustExecutors() {
        FakeExecutor.exhaustExecutors(backgroundExecutor, uiExecutor)
    }