diff options
3 files changed, 26 insertions, 6 deletions
diff --git a/packages/SystemUI/res/values/strings.xml b/packages/SystemUI/res/values/strings.xml index 74ae954a539c..19deefbc4198 100644 --- a/packages/SystemUI/res/values/strings.xml +++ b/packages/SystemUI/res/values/strings.xml @@ -3086,4 +3086,7 @@ <!-- Content description for when assistant attention is active [CHAR LIMIT=NONE] --> <string name="assistant_attention_content_description">Assistant attention on</string> + + <!--- Content of toast triggered when the notes app entry point is triggered without setting a default notes app. [CHAR LIMIT=NONE] --> + <string name="set_default_notes_app_toast_content">Set default notes app in Settings</string> </resources> diff --git a/packages/SystemUI/src/com/android/systemui/notetask/NoteTaskController.kt b/packages/SystemUI/src/com/android/systemui/notetask/NoteTaskController.kt index 9513801f0985..5f4e7cac4452 100644 --- a/packages/SystemUI/src/com/android/systemui/notetask/NoteTaskController.kt +++ b/packages/SystemUI/src/com/android/systemui/notetask/NoteTaskController.kt @@ -34,7 +34,9 @@ import android.os.Build import android.os.UserHandle import android.os.UserManager import android.util.Log +import android.widget.Toast import androidx.annotation.VisibleForTesting +import com.android.systemui.R import com.android.systemui.dagger.SysUISingleton import com.android.systemui.devicepolicy.areKeyguardShortcutsDisabled import com.android.systemui.notetask.NoteTaskRoleManagerExt.createNoteShortcutInfoAsUser @@ -170,7 +172,13 @@ constructor( return } - val info = resolver.resolveInfo(entryPoint, isKeyguardLocked) ?: return + val info = resolver.resolveInfo(entryPoint, isKeyguardLocked) + + if (info == null) { + logDebug { "Default notes app isn't set" } + showNoDefaultNotesAppToast() + return + } infoReference.set(info) @@ -207,6 +215,12 @@ constructor( logDebug { "onShowNoteTask - completed: $info" } } + @VisibleForTesting + fun showNoDefaultNotesAppToast() { + Toast.makeText(context, R.string.set_default_notes_app_toast_content, Toast.LENGTH_SHORT) + .show() + } + /** * Set `android:enabled` property in the `AndroidManifest` associated with the Shortcut * component to [value]. 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 5e7394aee98c..22a5b21f71ce 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/notetask/NoteTaskControllerTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/notetask/NoteTaskControllerTest.kt @@ -63,8 +63,10 @@ import org.junit.Test 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 import org.mockito.Mockito.verifyZeroInteractions import org.mockito.MockitoAnnotations @@ -109,6 +111,7 @@ internal class NoteTaskControllerTest : SysuiTestCase() { .thenReturn(listOf(NOTE_TASK_PACKAGE_NAME)) whenever(activityManager.getRunningTasks(anyInt())).thenReturn(emptyList()) whenever(userManager.isManagedProfile(workUserInfo.id)).thenReturn(true) + whenever(context.resources).thenReturn(getContext().resources) } private fun createNoteTaskController( @@ -339,14 +342,14 @@ internal class NoteTaskControllerTest : SysuiTestCase() { } @Test - fun showNoteTask_intentResolverReturnsNull_shouldDoNothing() { + fun showNoteTask_intentResolverReturnsNull_shouldShowToast() { whenever(resolver.resolveInfo(any(), any())).thenReturn(null) + val noteTaskController = spy(createNoteTaskController()) + doNothing().whenever(noteTaskController).showNoDefaultNotesAppToast() - createNoteTaskController() - .showNoteTask( - entryPoint = NoteTaskEntryPoint.TAIL_BUTTON, - ) + noteTaskController.showNoteTask(entryPoint = NoteTaskEntryPoint.TAIL_BUTTON) + verify(noteTaskController).showNoDefaultNotesAppToast() verifyZeroInteractions(context, bubbles, eventLogger) } |