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

Commit 508f03b2 authored by Steven Ng's avatar Steven Ng Committed by Android (Google) Code Review
Browse files

Merge "Replace the main user look up with UserManager#getMainUser" into udc-dev

parents ab9ca8fe 43e79b2d
Loading
Loading
Loading
Loading
+15 −4
Original line number Diff line number Diff line
@@ -18,9 +18,11 @@ package com.android.systemui.notetask.shortcut

import android.content.Context
import android.content.Intent
import android.content.pm.UserInfo
import android.os.Build
import android.os.Bundle
import android.os.UserHandle
import android.os.UserManager
import android.util.Log
import androidx.activity.ComponentActivity
import com.android.systemui.notetask.NoteTaskController
import com.android.systemui.notetask.NoteTaskEntryPoint
@@ -63,9 +65,13 @@ constructor(
        //        | Bubble#showOrHideAppBubble |   <--------------
        //        |      (with WP user ID)     |
        //         ----------------------------
        val mainUser: UserInfo? = userTracker.userProfiles.firstOrNull { it.isMain }
        if (userManager.isManagedProfile && mainUser != null) {
            controller.startNoteTaskProxyActivityForUser(mainUser.userHandle)
        val mainUser: UserHandle? = userManager.mainUser
        if (userManager.isManagedProfile) {
            if (mainUser == null) {
                logDebug { "Can't find the main user. Skipping the notes app launch." }
            } else {
                controller.startNoteTaskProxyActivityForUser(mainUser)
            }
        } else {
            controller.showNoteTask(entryPoint = NoteTaskEntryPoint.WIDGET_PICKER_SHORTCUT)
        }
@@ -83,3 +89,8 @@ constructor(
        }
    }
}

/** [Log.println] a [Log.DEBUG] message, only when [Build.IS_DEBUGGABLE]. */
private inline fun Any.logDebug(message: () -> String) {
    if (Build.IS_DEBUGGABLE) Log.d(this::class.java.simpleName.orEmpty(), message())
}
+16 −1
Original line number Diff line number Diff line
@@ -30,6 +30,7 @@ import com.android.systemui.SysuiTestCase
import com.android.systemui.notetask.NoteTaskController
import com.android.systemui.notetask.NoteTaskEntryPoint
import com.android.systemui.settings.FakeUserTracker
import com.android.systemui.util.mockito.any
import com.android.systemui.util.mockito.eq
import com.android.systemui.util.mockito.whenever
import org.junit.After
@@ -38,6 +39,7 @@ import org.junit.Rule
import org.junit.Test
import org.junit.runner.RunWith
import org.mockito.Mock
import org.mockito.Mockito.never
import org.mockito.MockitoAnnotations

@RunWith(AndroidTestingRunner::class)
@@ -86,15 +88,28 @@ class LaunchNoteTaskActivityTest : SysuiTestCase() {

    @Test
    fun startActivityOnWorkProfileUser_shouldLaunchProxyActivity() {
        val mainUserHandle: UserHandle = mainUser.userHandle
        userTracker.set(listOf(mainUser, workProfileUser), selectedUserIndex = 1)
        whenever(userManager.isManagedProfile).thenReturn(true)
        whenever(userManager.mainUser).thenReturn(mainUserHandle)

        activityRule.launchActivity(/* startIntent= */ null)

        val mainUserHandle: UserHandle = mainUser.userHandle
        verify(noteTaskController).startNoteTaskProxyActivityForUser(eq(mainUserHandle))
    }

    @Test
    fun startActivityOnWorkProfileUser_noMainUser_shouldNotLaunch() {
        userTracker.set(listOf(mainUser, workProfileUser), selectedUserIndex = 1)
        whenever(userManager.isManagedProfile).thenReturn(true)
        whenever(userManager.mainUser).thenReturn(null)

        activityRule.launchActivity(/* startIntent= */ null)

        verify(noteTaskController, never()).showNoteTask(any())
        verify(noteTaskController, never()).startNoteTaskProxyActivityForUser(any())
    }

    private companion object {
        val mainUser = UserInfo(/* id= */ 0, /* name= */ "primary", /* flags= */ UserInfo.FLAG_MAIN)
        val workProfileUser =