Update the notes app bubble icon

* Use shortcut widget icon for notes app in bubbles

Test: atest NoteTaskControllerTest
Bug: 275067820
Change-Id: I3b61735c61716bac6fcb650f3cf576c6e6211a06
This commit is contained in:
Ivan Tkachenko
2023-04-13 12:17:07 +01:00
parent 8a0f1b451f
commit cbb9e63a1c
2 changed files with 13 additions and 5 deletions

View File

@@ -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" }
}

View File

@@ -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<Intent>()
val iconCaptor = argumentCaptor<Icon>()
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