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

Commit 18feca30 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 am: 4e89c16d

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

Change-Id: Iab7998eb25ce0f3214b954ebbe9cc638b2de0882
parents 90a3e15e 4e89c16d
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)
    }