diff --git a/packages/SystemUI/src/com/android/systemui/notetask/NoteTaskController.kt b/packages/SystemUI/src/com/android/systemui/notetask/NoteTaskController.kt index 5f4e7cac44525..8f703765fbd9b 100644 --- a/packages/SystemUI/src/com/android/systemui/notetask/NoteTaskController.kt +++ b/packages/SystemUI/src/com/android/systemui/notetask/NoteTaskController.kt @@ -30,6 +30,7 @@ import android.content.Context import android.content.Intent import android.content.pm.PackageManager import android.content.pm.ShortcutManager +import android.graphics.drawable.Icon import android.os.Build import android.os.UserHandle import android.os.UserManager @@ -187,9 +188,10 @@ constructor( logDebug { "onShowNoteTask - start: $info on user#${user.identifier}" } when (info.launchMode) { is NoteTaskLaunchMode.AppBubble -> { - // TODO: provide app bubble icon val intent = createNoteTaskIntent(info) - bubbles.showOrHideAppBubble(intent, user, null /* icon */) + val icon = + Icon.createWithResource(context, R.drawable.ic_note_task_shortcut_widget) + bubbles.showOrHideAppBubble(intent, user, icon) // App bubble logging happens on `onBubbleExpandChanged`. logDebug { "onShowNoteTask - opened as app bubble: $info" } } diff --git a/packages/SystemUI/tests/src/com/android/systemui/notetask/NoteTaskControllerTest.kt b/packages/SystemUI/tests/src/com/android/systemui/notetask/NoteTaskControllerTest.kt index 22a5b21f71ce2..a03bc1e67f3d4 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/notetask/NoteTaskControllerTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/notetask/NoteTaskControllerTest.kt @@ -36,6 +36,7 @@ import android.content.pm.PackageManager.COMPONENT_ENABLED_STATE_ENABLED import android.content.pm.ShortcutInfo import android.content.pm.ShortcutManager import android.content.pm.UserInfo +import android.graphics.drawable.Icon import android.os.UserHandle import android.os.UserManager import androidx.test.ext.truth.content.IntentSubject.assertThat @@ -64,7 +65,6 @@ import org.junit.runner.RunWith import org.mockito.ArgumentMatchers.anyInt import org.mockito.Mock import org.mockito.Mockito.doNothing -import org.mockito.Mockito.isNull import org.mockito.Mockito.never import org.mockito.Mockito.spy import org.mockito.Mockito.verify @@ -326,7 +326,8 @@ internal class NoteTaskControllerTest : SysuiTestCase() { entryPoint = expectedInfo.entryPoint!!, ) - verifyZeroInteractions(context) + // Context package name used to create bubble icon from drawable resource id + verify(context).packageName verifyNoteTaskOpenInBubbleInUser(userTracker.userHandle) verifyZeroInteractions(eventLogger) } @@ -603,14 +604,19 @@ internal class NoteTaskControllerTest : SysuiTestCase() { private fun verifyNoteTaskOpenInBubbleInUser(userHandle: UserHandle) { val intentCaptor = argumentCaptor() + val iconCaptor = argumentCaptor() verify(bubbles) - .showOrHideAppBubble(capture(intentCaptor), eq(userHandle), /* icon = */ isNull()) + .showOrHideAppBubble(capture(intentCaptor), eq(userHandle), capture(iconCaptor)) intentCaptor.value.let { intent -> assertThat(intent.action).isEqualTo(Intent.ACTION_CREATE_NOTE) assertThat(intent.`package`).isEqualTo(NOTE_TASK_PACKAGE_NAME) assertThat(intent.flags).isEqualTo(FLAG_ACTIVITY_NEW_TASK) assertThat(intent.getBooleanExtra(Intent.EXTRA_USE_STYLUS_MODE, false)).isTrue() } + iconCaptor.value.let { icon -> + assertThat(icon).isNotNull() + assertThat(icon.resId).isEqualTo(R.drawable.ic_note_task_shortcut_widget) + } } // region updateNoteTaskAsUser