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

Commit 506ef4a2 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Automerger Merge Worker
Browse files

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

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/15820398

Change-Id: I7c08670ac64a520fa45681bc15fefea5d4026205
parents 9bf3bffd c8e92727
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)
    }