├── .gitignore ├── Android.bp ├── AndroidManifest-common.xml ├── AndroidManifest.xml ├── CleanSpec.mk ├── OWNERS ├── PREUPLOAD.cfg ├── aconfig ├── Android.bp ├── launcher.aconfig ├── launcher_overview.aconfig └── launcher_search.aconfig ├── compose └── facade │ ├── core │ └── BaseComposeFacade.kt │ ├── disabled │ └── ComposeFacade.kt │ └── enabled │ └── ComposeFacade.kt ├── go ├── AndroidManifest-launcher.xml ├── AndroidManifest.xml ├── OWNERS └── quickstep │ ├── res │ ├── drawable │ │ ├── arrow_toast_rounded_background.xml │ │ ├── ic_listen.xml │ │ ├── ic_search.xml │ │ ├── ic_translate.xml │ │ ├── round_rect_button.xml │ │ └── round_rect_dialog.xml │ ├── layout │ │ ├── niu_actions_dialog.xml │ │ └── overview_actions_container.xml │ ├── values-af │ │ └── strings.xml │ ├── values-am │ │ └── strings.xml │ ├── values-ar │ │ └── strings.xml │ ├── values-as │ │ └── strings.xml │ ├── values-az │ │ └── strings.xml │ ├── values-b+sr+Latn │ │ └── strings.xml │ ├── values-be │ │ └── strings.xml │ ├── values-bg │ │ └── strings.xml │ ├── values-bn │ │ └── strings.xml │ ├── values-bs │ │ └── strings.xml │ ├── values-ca │ │ └── strings.xml │ ├── values-cs │ │ └── strings.xml │ ├── values-da │ │ └── strings.xml │ ├── values-de │ │ └── strings.xml │ ├── values-el │ │ └── strings.xml │ ├── values-en-rAU │ │ └── strings.xml │ ├── values-en-rCA │ │ └── strings.xml │ ├── values-en-rGB │ │ └── strings.xml │ ├── values-en-rIN │ │ └── strings.xml │ ├── values-en-rXC │ │ └── strings.xml │ ├── values-es-rUS │ │ └── strings.xml │ ├── values-es │ │ └── strings.xml │ ├── values-et │ │ └── strings.xml │ ├── values-eu │ │ └── strings.xml │ ├── values-fa │ │ └── strings.xml │ ├── values-fi │ │ └── strings.xml │ ├── values-fr-rCA │ │ └── strings.xml │ ├── values-fr │ │ └── strings.xml │ ├── values-gl │ │ └── strings.xml │ ├── values-gu │ │ └── strings.xml │ ├── values-hi │ │ └── strings.xml │ ├── values-hr │ │ └── strings.xml │ ├── values-hu │ │ └── strings.xml │ ├── values-hy │ │ └── strings.xml │ ├── values-in │ │ └── strings.xml │ ├── values-is │ │ └── strings.xml │ ├── values-it │ │ └── strings.xml │ ├── values-iw │ │ └── strings.xml │ ├── values-ja │ │ └── strings.xml │ ├── values-ka │ │ └── strings.xml │ ├── values-kk │ │ └── strings.xml │ ├── values-km │ │ └── strings.xml │ ├── values-kn │ │ └── strings.xml │ ├── values-ko │ │ └── strings.xml │ ├── values-ky │ │ └── strings.xml │ ├── values-land │ │ └── dimens.xml │ ├── values-lo │ │ └── strings.xml │ ├── values-lt │ │ └── strings.xml │ ├── values-lv │ │ └── strings.xml │ ├── values-mk │ │ └── strings.xml │ ├── values-ml │ │ └── strings.xml │ ├── values-mn │ │ └── strings.xml │ ├── values-mr │ │ └── strings.xml │ ├── values-ms │ │ └── strings.xml │ ├── values-my │ │ └── strings.xml │ ├── values-nb │ │ └── strings.xml │ ├── values-ne │ │ └── strings.xml │ ├── values-nl │ │ └── strings.xml │ ├── values-or │ │ └── strings.xml │ ├── values-pa │ │ └── strings.xml │ ├── values-pl │ │ └── strings.xml │ ├── values-pt-rPT │ │ └── strings.xml │ ├── values-pt │ │ └── strings.xml │ ├── values-ro │ │ └── strings.xml │ ├── values-ru │ │ └── strings.xml │ ├── values-si │ │ └── strings.xml │ ├── values-sk │ │ └── strings.xml │ ├── values-sl │ │ └── strings.xml │ ├── values-sq │ │ └── strings.xml │ ├── values-sr │ │ └── strings.xml │ ├── values-sv │ │ └── strings.xml │ ├── values-sw │ │ └── strings.xml │ ├── values-ta │ │ └── strings.xml │ ├── values-te │ │ └── strings.xml │ ├── values-th │ │ └── strings.xml │ ├── values-tl │ │ └── strings.xml │ ├── values-tr │ │ └── strings.xml │ ├── values-uk │ │ └── strings.xml │ ├── values-ur │ │ └── strings.xml │ ├── values-uz │ │ └── strings.xml │ ├── values-vi │ │ └── strings.xml │ ├── values-zh-rCN │ │ └── strings.xml │ ├── values-zh-rHK │ │ └── strings.xml │ ├── values-zh-rTW │ │ └── strings.xml │ ├── values-zu │ │ └── strings.xml │ ├── values │ │ ├── attrs.xml │ │ ├── colors.xml │ │ ├── config.xml │ │ ├── dimens.xml │ │ ├── integers.xml │ │ ├── strings.xml │ │ └── styles.xml │ └── xml │ │ └── device_profiles.xml │ └── src │ └── com │ └── android │ ├── launcher3 │ ├── AppSharing.java │ ├── BuildConfig.java │ ├── Launcher3QuickStepGo.java │ └── model │ │ ├── AppShareabilityChecker.java │ │ ├── AppShareabilityDatabase.java │ │ ├── AppShareabilityJobService.java │ │ ├── AppShareabilityManager.java │ │ └── AppShareabilityStatus.java │ └── quickstep │ ├── TaskOverlayFactoryGo.java │ └── views │ └── GoOverviewActionsView.java ├── lint-baseline.xml ├── proguard.flags ├── protos ├── launcher_atom.proto ├── launcher_trace.proto └── launcher_trace_file.proto ├── protos_overrides └── launcher_atom_extension.proto ├── quickstep ├── Android.bp ├── AndroidManifest-launcher.xml ├── AndroidManifest.xml ├── compose │ └── facade │ │ ├── core │ │ └── QuickstepComposeFeatures.kt │ │ ├── disabled │ │ └── QuickstepComposeFacade.kt │ │ └── enabled │ │ └── QuickstepComposeFacade.kt ├── dagger │ └── LauncherAppComponent.java ├── protos_overrides │ └── launcher_atom_extension.proto ├── res │ ├── color │ │ ├── all_set_bg_primary.xml │ │ ├── all_set_bg_tertiary.xml │ │ ├── bubblebar_drop_target_bg_color.xml │ │ ├── menu_item_hover_state_color.xml │ │ ├── taskbar_minimized_app_indicator_color.xml │ │ ├── taskbar_nav_icon_dark_color.xml │ │ ├── taskbar_nav_icon_light_color.xml │ │ └── taskbar_running_app_indicator_color.xml │ ├── drawable-hdpi │ │ └── nav_background.9.png │ ├── drawable-mdpi │ │ └── nav_background.9.png │ ├── drawable-sw600dp-land │ │ ├── gesture_tutorial_back_step_shape.xml │ │ ├── gesture_tutorial_home_step_shape.xml │ │ └── gesture_tutorial_overview_step_shape.xml │ ├── drawable-sw720dp-land │ │ ├── gesture_tutorial_back_step_shape.xml │ │ ├── gesture_tutorial_home_step_shape.xml │ │ └── gesture_tutorial_overview_step_shape.xml │ ├── drawable-v28 │ │ └── gesture_tutorial_action_button_background.xml │ ├── drawable-xhdpi │ │ └── nav_background.9.png │ ├── drawable-xxhdpi │ │ └── nav_background.9.png │ ├── drawable │ │ ├── all_apps_edu_circle.xml │ │ ├── assistant_gesture.xml │ │ ├── back_gesture.xml │ │ ├── bg_bubble_bar_drop_target.xml │ │ ├── bg_bubble_dismiss_circle.xml │ │ ├── bg_bubble_expanded_view_drop_target.xml │ │ ├── bg_floating_desktop_select.xml │ │ ├── bg_overview_clear_all_button.xml │ │ ├── bg_sandbox_close_button.xml │ │ ├── bg_sandbox_feedback.xml │ │ ├── bg_taskbar_edu_tooltip.xml │ │ ├── bg_wellbeing_toast.xml │ │ ├── bg_workspace_card_button.xml │ │ ├── button_taskbar_edu_bordered.xml │ │ ├── button_taskbar_edu_colored.xml │ │ ├── chip_hint_background_light.xml │ │ ├── default_sandbox_app_icon.xml │ │ ├── default_sandbox_app_task_thumbnail.xml │ │ ├── default_sandbox_wallpaper.xml │ │ ├── desktop_mode_ic_taskbar_menu_manage_windows.xml │ │ ├── gesture_tutorial_action_button_background.xml │ │ ├── gesture_tutorial_back_step_shape.xml │ │ ├── gesture_tutorial_cancel_button_background.xml │ │ ├── gesture_tutorial_close_button.xml │ │ ├── gesture_tutorial_complete_checkmark.xml │ │ ├── gesture_tutorial_complete_checkmark_bg.xml │ │ ├── gesture_tutorial_finger_dot.xml │ │ ├── gesture_tutorial_home_step_shape.xml │ │ ├── gesture_tutorial_loop_back.xml │ │ ├── gesture_tutorial_loop_home.xml │ │ ├── gesture_tutorial_loop_overview.xml │ │ ├── gesture_tutorial_menu_back_button_background.xml │ │ ├── gesture_tutorial_menu_home_button_background.xml │ │ ├── gesture_tutorial_menu_overview_button_background.xml │ │ ├── gesture_tutorial_overview_step_shape.xml │ │ ├── gesture_tutorial_ripple.xml │ │ ├── home_gesture.xml │ │ ├── hotseat_edu_notification_icon.xml │ │ ├── hotseat_icon.xml │ │ ├── hotseat_search_bar.xml │ │ ├── ic_all_set.xml │ │ ├── ic_bubble_dismiss_white.xml │ │ ├── ic_chevron_down.xml │ │ ├── ic_desktop.xml │ │ ├── ic_empty_recents.xml │ │ ├── ic_external_display.xml │ │ ├── ic_hourglass_top.xml │ │ ├── ic_ime_switcher.xml │ │ ├── ic_save_app_pair_left_right.xml │ │ ├── ic_save_app_pair_up_down.xml │ │ ├── ic_screenshot.xml │ │ ├── ic_share.xml │ │ ├── ic_sysbar_accessibility_button.xml │ │ ├── ic_sysbar_back.xml │ │ ├── ic_sysbar_back_kids.xml │ │ ├── ic_sysbar_home.xml │ │ ├── ic_sysbar_home_kids.xml │ │ ├── ic_sysbar_notifications.xml │ │ ├── ic_sysbar_quick_settings.xml │ │ ├── ic_sysbar_recent.xml │ │ ├── ic_sysbar_rotate_button_ccw_start_0.xml │ │ ├── ic_sysbar_rotate_button_ccw_start_90.xml │ │ ├── ic_sysbar_rotate_button_cw_start_0.xml │ │ ├── ic_sysbar_rotate_button_cw_start_90.xml │ │ ├── keyboard_quick_switch_task_view_background.xml │ │ ├── keyboard_quick_switch_text_button_background.xml │ │ ├── keyboard_quick_switch_thumbnail_background.xml │ │ ├── keyboard_quick_switch_view_background.xml │ │ ├── mock_app_icon.xml │ │ ├── mock_taskbar_background.xml │ │ ├── overview_gesture.xml │ │ ├── redesigned_hotseat_icon.xml │ │ ├── redesigned_top_task_view.xml │ │ ├── rotate_prompt_bg.xml │ │ ├── rotate_tutorial_warning.xml │ │ ├── split_instructions_background.xml │ │ ├── task_menu_bg.xml │ │ ├── task_menu_item_bg.xml │ │ ├── taskbar_divider_button.xml │ │ ├── taskbar_icon_click_feedback_roundrect.xml │ │ ├── taskbar_overflow_icon.xml │ │ ├── top_task_view.xml │ │ ├── tutorial_step_indicator_pill.xml │ │ └── view_carousel.xml │ ├── interpolator │ │ └── app_open_x.xml │ ├── layout-land │ │ ├── gesture_tutorial_mock_hotseat.xml │ │ ├── gesture_tutorial_tablet_mock_hotseat.xml │ │ ├── keyboard_quick_switch_taskview.xml │ │ ├── keyboard_quick_switch_taskview_square.xml │ │ ├── redesigned_gesture_tutorial_mock_hotseat.xml │ │ └── redesigned_gesture_tutorial_tablet_mock_hotseat.xml │ ├── layout-sw600dp-land │ │ └── gesture_tutorial_step_menu.xml │ ├── layout-sw600dp │ │ └── allset_navigation.xml │ ├── layout │ │ ├── activity_allset.xml │ │ ├── all_apps_edu_view.xml │ │ ├── allset_navigation.xml │ │ ├── back_gesture_tutorial_background.xml │ │ ├── bubble_bar_drop_target.xml │ │ ├── bubble_expanded_view_drop_target.xml │ │ ├── bubble_view.xml │ │ ├── bubblebar_flyout.xml │ │ ├── bubblebar_item_view.xml │ │ ├── customizable_taskbar.xml │ │ ├── customizable_taskbar_view.xml │ │ ├── digital_wellbeing_toast.xml │ │ ├── fallback_recents_activity.xml │ │ ├── floating_header_content.xml │ │ ├── gesture_tutorial_activity.xml │ │ ├── gesture_tutorial_dialog.xml │ │ ├── gesture_tutorial_foldable_mock_hotseat.xml │ │ ├── gesture_tutorial_fragment.xml │ │ ├── gesture_tutorial_mock_conversation.xml │ │ ├── gesture_tutorial_mock_conversation_list.xml │ │ ├── gesture_tutorial_mock_hotseat.xml │ │ ├── gesture_tutorial_mock_webpage.xml │ │ ├── gesture_tutorial_rotation_prompt.xml │ │ ├── gesture_tutorial_step_menu.xml │ │ ├── gesture_tutorial_tablet_mock_conversation.xml │ │ ├── gesture_tutorial_tablet_mock_conversation_list.xml │ │ ├── gesture_tutorial_tablet_mock_hotseat.xml │ │ ├── gesture_tutorial_tablet_mock_taskbar.xml │ │ ├── gesture_tutorial_tablet_mock_webpage.xml │ │ ├── icon_app_chip_view.xml │ │ ├── icon_view.xml │ │ ├── keyboard_quick_switch_desktop_taskview.xml │ │ ├── keyboard_quick_switch_overview_taskview.xml │ │ ├── keyboard_quick_switch_taskview.xml │ │ ├── keyboard_quick_switch_taskview_square.xml │ │ ├── keyboard_quick_switch_taskview_thumbnail.xml │ │ ├── keyboard_quick_switch_view.xml │ │ ├── overview_actions_container.xml │ │ ├── overview_add_desktop_button.xml │ │ ├── overview_clear_all_button.xml │ │ ├── overview_panel.xml │ │ ├── predicted_app_icon.xml │ │ ├── predicted_hotseat_edu.xml │ │ ├── redesigned_gesture_tutorial_foldable_mock_hotseat.xml │ │ ├── redesigned_gesture_tutorial_fragment.xml │ │ ├── redesigned_gesture_tutorial_mock_hotseat.xml │ │ ├── redesigned_gesture_tutorial_tablet_mock_hotseat.xml │ │ ├── rotate_suggestion.xml │ │ ├── split_instructions_view.xml │ │ ├── task.xml │ │ ├── task_desktop.xml │ │ ├── task_grouped.xml │ │ ├── task_menu.xml │ │ ├── task_menu_with_arrow.xml │ │ ├── task_thumbnail.xml │ │ ├── task_thumbnail_deprecated.xml │ │ ├── task_view_menu_option.xml │ │ ├── taskbar.xml │ │ ├── taskbar_all_apps.xml │ │ ├── taskbar_all_apps_button.xml │ │ ├── taskbar_all_apps_sheet.xml │ │ ├── taskbar_app_icon.xml │ │ ├── taskbar_contextual_button.xml │ │ ├── taskbar_divider.xml │ │ ├── taskbar_divider_popup_menu.xml │ │ ├── taskbar_edu_features.xml │ │ ├── taskbar_edu_pinning.xml │ │ ├── taskbar_edu_search.xml │ │ ├── taskbar_edu_swipe.xml │ │ ├── taskbar_edu_tooltip.xml │ │ ├── taskbar_nav_button.xml │ │ ├── taskbar_overflow_view.xml │ │ ├── taskbar_predicted_app_icon.xml │ │ ├── transient_taskbar.xml │ │ └── widget_picker_activity.xml │ ├── raw-w600dp-h900dp │ │ └── all_set_page_bg.json │ ├── raw-w840dp-h480dp │ │ └── all_set_page_bg.json │ ├── raw-w840dp │ │ └── all_set_page_bg.json │ ├── raw │ │ ├── all_set_page_bg.json │ │ ├── back_gesture_tutorial_animation.json │ │ ├── back_gesture_tutorial_open_foldable_animation.json │ │ ├── back_gesture_tutorial_tablet_animation.json │ │ ├── checkmark_animation_end.json │ │ ├── checkmark_animation_in_progress.json │ │ ├── home_gesture_tutorial_animation.json │ │ ├── home_gesture_tutorial_open_foldable_animation.json │ │ ├── home_gesture_tutorial_tablet_animation.json │ │ ├── overview_gesture_tutorial_animation.json │ │ ├── overview_gesture_tutorial_open_foldable_animation.json │ │ ├── overview_gesture_tutorial_tablet_animation.json │ │ ├── taskbar_edu_pinning.json │ │ ├── taskbar_edu_search.json │ │ ├── taskbar_edu_splitscreen_persistent.json │ │ ├── taskbar_edu_splitscreen_transient.json │ │ ├── taskbar_edu_stashing.json │ │ ├── taskbar_edu_suggestions_persistent.json │ │ └── taskbar_edu_suggestions_transient.json │ ├── values-af │ │ └── strings.xml │ ├── values-am │ │ └── strings.xml │ ├── values-ar │ │ └── strings.xml │ ├── values-as │ │ └── strings.xml │ ├── values-az │ │ └── strings.xml │ ├── values-b+sr+Latn │ │ └── strings.xml │ ├── values-be │ │ └── strings.xml │ ├── values-bg │ │ └── strings.xml │ ├── values-bn │ │ └── strings.xml │ ├── values-bs │ │ └── strings.xml │ ├── values-ca │ │ └── strings.xml │ ├── values-cs │ │ └── strings.xml │ ├── values-da │ │ └── strings.xml │ ├── values-de │ │ └── strings.xml │ ├── values-el │ │ └── strings.xml │ ├── values-en-rAU │ │ └── strings.xml │ ├── values-en-rCA │ │ └── strings.xml │ ├── values-en-rGB │ │ └── strings.xml │ ├── values-en-rIN │ │ └── strings.xml │ ├── values-en-rXC │ │ └── strings.xml │ ├── values-es-rUS │ │ └── strings.xml │ ├── values-es │ │ └── strings.xml │ ├── values-et │ │ └── strings.xml │ ├── values-eu │ │ └── strings.xml │ ├── values-fa │ │ └── strings.xml │ ├── values-fi │ │ └── strings.xml │ ├── values-fr-rCA │ │ └── strings.xml │ ├── values-fr │ │ └── strings.xml │ ├── values-gl │ │ └── strings.xml │ ├── values-gu │ │ └── strings.xml │ ├── values-hi │ │ └── strings.xml │ ├── values-hr │ │ └── strings.xml │ ├── values-hu │ │ └── strings.xml │ ├── values-hy │ │ └── strings.xml │ ├── values-in │ │ └── strings.xml │ ├── values-is │ │ └── strings.xml │ ├── values-it │ │ └── strings.xml │ ├── values-iw │ │ └── strings.xml │ ├── values-ja │ │ └── strings.xml │ ├── values-ka │ │ └── strings.xml │ ├── values-kk │ │ └── strings.xml │ ├── values-km │ │ └── strings.xml │ ├── values-kn │ │ └── strings.xml │ ├── values-ko │ │ └── strings.xml │ ├── values-ky │ │ └── strings.xml │ ├── values-land │ │ └── dimens.xml │ ├── values-lo │ │ └── strings.xml │ ├── values-lt │ │ └── strings.xml │ ├── values-lv │ │ └── strings.xml │ ├── values-mk │ │ └── strings.xml │ ├── values-ml │ │ └── strings.xml │ ├── values-mn │ │ └── strings.xml │ ├── values-mr │ │ └── strings.xml │ ├── values-ms │ │ └── strings.xml │ ├── values-my │ │ └── strings.xml │ ├── values-nb │ │ └── strings.xml │ ├── values-ne │ │ └── strings.xml │ ├── values-night │ │ ├── colors.xml │ │ └── styles.xml │ ├── values-nl │ │ └── strings.xml │ ├── values-or │ │ └── strings.xml │ ├── values-pa │ │ └── strings.xml │ ├── values-pl │ │ └── strings.xml │ ├── values-pt-rPT │ │ └── strings.xml │ ├── values-pt │ │ └── strings.xml │ ├── values-ro │ │ └── strings.xml │ ├── values-ru │ │ └── strings.xml │ ├── values-si │ │ └── strings.xml │ ├── values-sk │ │ └── strings.xml │ ├── values-sl │ │ └── strings.xml │ ├── values-sq │ │ └── strings.xml │ ├── values-sr │ │ └── strings.xml │ ├── values-sv │ │ └── strings.xml │ ├── values-sw │ │ └── strings.xml │ ├── values-sw600dp-land │ │ └── dimens.xml │ ├── values-sw600dp │ │ ├── config.xml │ │ └── dimens.xml │ ├── values-sw720dp-land │ │ └── dimens.xml │ ├── values-sw720dp │ │ └── dimens.xml │ ├── values-sw900dp │ │ └── dimens.xml │ ├── values-ta │ │ └── strings.xml │ ├── values-te │ │ └── strings.xml │ ├── values-th │ │ └── strings.xml │ ├── values-tl │ │ └── strings.xml │ ├── values-tr │ │ └── strings.xml │ ├── values-uk │ │ └── strings.xml │ ├── values-ur │ │ └── strings.xml │ ├── values-uz │ │ └── strings.xml │ ├── values-vi │ │ └── strings.xml │ ├── values-zh-rCN │ │ └── strings.xml │ ├── values-zh-rHK │ │ └── strings.xml │ ├── values-zh-rTW │ │ └── strings.xml │ ├── values-zu │ │ └── strings.xml │ ├── values │ │ ├── attrs.xml │ │ ├── colors.xml │ │ ├── config.xml │ │ ├── custom_dimens.xml │ │ ├── custom_strings.xml │ │ ├── dimens.xml │ │ ├── ids.xml │ │ ├── strings.xml │ │ └── styles.xml │ └── xml │ │ ├── indexable_launcher_prefs.xml │ │ └── overview_file_provider_paths.xml ├── src │ └── com │ │ └── android │ │ ├── launcher3 │ │ ├── LauncherAnimationRunner.java │ │ ├── LauncherInitListener.java │ │ ├── QuickstepAccessibilityDelegate.java │ │ ├── QuickstepTransitionManager.java │ │ ├── WidgetPickerActivity.java │ │ ├── appprediction │ │ │ ├── AppsDividerView.java │ │ │ ├── InstantAppItemInfo.java │ │ │ └── PredictionRowView.java │ │ ├── desktop │ │ │ ├── DesktopAppLaunchTransition.kt │ │ │ ├── DesktopAppLaunchTransitionManager.kt │ │ │ └── DesktopRecentsTransitionController.kt │ │ ├── hybridhotseat │ │ │ ├── HotseatEduController.java │ │ │ ├── HotseatEduDialog.java │ │ │ ├── HotseatPredictionController.java │ │ │ ├── HotseatPredictionModel.java │ │ │ └── HotseatRestoreHelper.java │ │ ├── model │ │ │ ├── AppEventProducer.java │ │ │ ├── PredictionHelper.java │ │ │ ├── PredictionUpdateTask.java │ │ │ ├── QuickstepModelDelegate.java │ │ │ ├── WellbeingModel.java │ │ │ ├── WidgetPredictionsRequester.java │ │ │ ├── WidgetsPredictionUpdateTask.java │ │ │ └── data │ │ │ │ └── TaskViewItemInfo.kt │ │ ├── popup │ │ │ └── QuickstepSystemShortcut.java │ │ ├── proxy │ │ │ └── ProxyActivityStarter.java │ │ ├── secondarydisplay │ │ │ └── SecondaryDisplayPredictionsImpl.java │ │ ├── splitscreen │ │ │ └── SplitShortcut.kt │ │ ├── statehandlers │ │ │ ├── DepthController.java │ │ │ └── DesktopVisibilityController.java │ │ ├── taskbar │ │ │ ├── BarsLocationAnimatorHelper.kt │ │ │ ├── BaseTaskbarContext.java │ │ │ ├── BlurredBitmapDrawable.kt │ │ │ ├── FallbackTaskbarUIController.java │ │ │ ├── KeyboardQuickSwitchController.java │ │ │ ├── KeyboardQuickSwitchTaskView.java │ │ │ ├── KeyboardQuickSwitchView.java │ │ │ ├── KeyboardQuickSwitchViewController.java │ │ │ ├── LauncherTaskbarUIController.java │ │ │ ├── ManageWindowsTaskbarShortcut.kt │ │ │ ├── NavbarButtonsViewController.java │ │ │ ├── NewWindowTaskbarShortcut.kt │ │ │ ├── RecentsHitboxExtender.java │ │ │ ├── StashedHandleView.java │ │ │ ├── StashedHandleViewController.java │ │ │ ├── TaskbarActivityContext.java │ │ │ ├── TaskbarAutohideSuspendController.java │ │ │ ├── TaskbarBackgroundRenderer.kt │ │ │ ├── TaskbarControllers.java │ │ │ ├── TaskbarDesktopModeController.kt │ │ │ ├── TaskbarDividerPopupView.kt │ │ │ ├── TaskbarDragController.java │ │ │ ├── TaskbarDragLayer.java │ │ │ ├── TaskbarDragLayerController.java │ │ │ ├── TaskbarDragView.java │ │ │ ├── TaskbarEduTooltip.kt │ │ │ ├── TaskbarEduTooltipController.kt │ │ │ ├── TaskbarForceVisibleImmersiveController.java │ │ │ ├── TaskbarHoverToolTipController.java │ │ │ ├── TaskbarInsetsController.kt │ │ │ ├── TaskbarKeyguardController.java │ │ │ ├── TaskbarLauncherStateController.java │ │ │ ├── TaskbarManager.java │ │ │ ├── TaskbarModelCallbacks.java │ │ │ ├── TaskbarModelCallbacksFactory.kt │ │ │ ├── TaskbarNavButtonController.java │ │ │ ├── TaskbarOverflowView.java │ │ │ ├── TaskbarPinningController.kt │ │ │ ├── TaskbarPopupController.java │ │ │ ├── TaskbarRecentAppsController.kt │ │ │ ├── TaskbarScrimView.java │ │ │ ├── TaskbarScrimViewController.java │ │ │ ├── TaskbarSharedState.java │ │ │ ├── TaskbarShortcutMenuAccessibilityDelegate.java │ │ │ ├── TaskbarSpringOnStashController.java │ │ │ ├── TaskbarStashController.java │ │ │ ├── TaskbarStashViaTouchController.kt │ │ │ ├── TaskbarThresholdUtils.java │ │ │ ├── TaskbarTransitions.java │ │ │ ├── TaskbarTranslationController.java │ │ │ ├── TaskbarUIController.java │ │ │ ├── TaskbarUnfoldAnimationController.java │ │ │ ├── TaskbarView.java │ │ │ ├── TaskbarViewCallbacks.java │ │ │ ├── TaskbarViewCallbacksFactory.kt │ │ │ ├── TaskbarViewController.java │ │ │ ├── Utilities.java │ │ │ ├── VoiceInteractionWindowController.kt │ │ │ ├── allapps │ │ │ │ ├── TaskbarAllAppsContainerView.java │ │ │ │ ├── TaskbarAllAppsController.java │ │ │ │ ├── TaskbarAllAppsSlideInView.java │ │ │ │ ├── TaskbarAllAppsViewController.java │ │ │ │ └── TaskbarSearchSessionController.kt │ │ │ ├── bubbles │ │ │ │ ├── BubbleBarBackground.kt │ │ │ │ ├── BubbleBarBubbleIconsFactory.kt │ │ │ │ ├── BubbleBarController.java │ │ │ │ ├── BubbleBarItem.kt │ │ │ │ ├── BubbleBarLocationCompositeListener.kt │ │ │ │ ├── BubbleBarParentViewHeightUpdateNotifier.kt │ │ │ │ ├── BubbleBarPinController.kt │ │ │ │ ├── BubbleBarSwipeController.kt │ │ │ │ ├── BubbleBarView.java │ │ │ │ ├── BubbleBarViewController.java │ │ │ │ ├── BubbleControllers.java │ │ │ │ ├── BubbleCreator.java │ │ │ │ ├── BubbleDismissController.java │ │ │ │ ├── BubbleDismissViewExt.kt │ │ │ │ ├── BubbleDragAnimator.java │ │ │ │ ├── BubbleDragController.java │ │ │ │ ├── BubblePinController.kt │ │ │ │ ├── BubbleStashedHandleViewController.java │ │ │ │ ├── BubbleView.java │ │ │ │ ├── OWNERS │ │ │ │ ├── animation │ │ │ │ │ ├── BubbleAnimator.kt │ │ │ │ │ └── BubbleBarViewAnimator.kt │ │ │ │ ├── flyout │ │ │ │ │ ├── BubbleBarFlyoutController.kt │ │ │ │ │ ├── BubbleBarFlyoutMessage.kt │ │ │ │ │ ├── BubbleBarFlyoutPositioner.kt │ │ │ │ │ ├── BubbleBarFlyoutView.kt │ │ │ │ │ ├── FlyoutCallbacks.kt │ │ │ │ │ └── FlyoutScheduler.kt │ │ │ │ └── stashing │ │ │ │ │ ├── BubbleBarLocationOnDemandListener.kt │ │ │ │ │ ├── BubbleStashController.kt │ │ │ │ │ ├── DeviceProfileDimensionsProviderAdapter.kt │ │ │ │ │ ├── PersistentBubbleStashController.kt │ │ │ │ │ └── TransientBubbleStashController.kt │ │ │ ├── customization │ │ │ │ ├── CustomizableTaskbarView.kt │ │ │ │ ├── TaskbarAllAppsButtonContainer.kt │ │ │ │ ├── TaskbarContainer.kt │ │ │ │ ├── TaskbarContainers.kt │ │ │ │ ├── TaskbarDividerContainer.kt │ │ │ │ ├── TaskbarFeatureEvaluator.kt │ │ │ │ ├── TaskbarIconSpecs.kt │ │ │ │ └── TaskbarSpecsEvaluator.kt │ │ │ ├── navbutton │ │ │ │ ├── AbstractNavButtonLayoutter.kt │ │ │ │ ├── KidsNavLayoutter.kt │ │ │ │ ├── LayoutResourceHelper.java │ │ │ │ ├── NavButtonLayoutFactory.kt │ │ │ │ ├── NearestTouchFrame.java │ │ │ │ ├── PhoneGestureLayoutter.kt │ │ │ │ ├── PhoneLandscapeNavLayoutter.kt │ │ │ │ ├── PhonePortraitNavLayoutter.kt │ │ │ │ ├── PhoneSeascapeNavLayoutter.kt │ │ │ │ ├── SetupNavLayoutter.kt │ │ │ │ └── TaskbarNavLayoutter.kt │ │ │ ├── overlay │ │ │ │ ├── TaskbarOverlayContext.java │ │ │ │ ├── TaskbarOverlayController.java │ │ │ │ └── TaskbarOverlayDragLayer.java │ │ │ └── unfold │ │ │ │ └── NonDestroyableScopedUnfoldTransitionProgressProvider.java │ │ └── uioverrides │ │ │ ├── BaseRecentsViewStateController.java │ │ │ ├── PredictedAppIcon.java │ │ │ ├── QuickstepAppWidgetHost.java │ │ │ ├── QuickstepInteractionHandler.java │ │ │ ├── QuickstepLauncher.java │ │ │ ├── QuickstepWidgetHolder.java │ │ │ ├── RecentsViewStateController.java │ │ │ ├── SystemApiWrapper.kt │ │ │ ├── flags │ │ │ └── DevOptionsUiHelper.kt │ │ │ ├── plugins │ │ │ ├── PluginEnablerImpl.java │ │ │ └── PluginManagerWrapperImpl.java │ │ │ ├── states │ │ │ ├── AllAppsState.java │ │ │ ├── BackgroundAppState.java │ │ │ ├── OverviewModalTaskState.java │ │ │ ├── OverviewState.java │ │ │ ├── QuickSwitchState.java │ │ │ ├── QuickstepAtomicAnimationFactory.java │ │ │ └── SplitScreenSelectState.java │ │ │ └── touchcontrollers │ │ │ ├── NavBarToHomeTouchController.java │ │ │ ├── NoButtonNavbarToOverviewTouchController.java │ │ │ ├── NoButtonQuickSwitchTouchController.java │ │ │ ├── PortraitOverviewStateTouchHelper.java │ │ │ ├── PortraitStatesTouchController.java │ │ │ ├── QuickSwitchTouchController.java │ │ │ ├── StatusBarTouchController.java │ │ │ ├── TaskViewTouchController.java │ │ │ ├── TransposedQuickSwitchTouchController.java │ │ │ └── TwoButtonNavbarTouchController.java │ │ └── quickstep │ │ ├── AbsSwipeUpHandler.java │ │ ├── AllAppsActionManager.kt │ │ ├── BaseActivityInterface.java │ │ ├── BaseContainerInterface.java │ │ ├── BaseWindowInterface.java │ │ ├── BinderTracker.java │ │ ├── DesktopFullscreenDrawParams.kt │ │ ├── DesktopSystemShortcut.kt │ │ ├── DeviceConfigWrapper.kt │ │ ├── ExternalDisplaySystemShortcut.kt │ │ ├── FallbackActivityInterface.java │ │ ├── FallbackSwipeHandler.java │ │ ├── FallbackWindowInterface.java │ │ ├── FocusState.kt │ │ ├── FullscreenDrawParams.kt │ │ ├── GestureState.java │ │ ├── HomeVisibilityState.kt │ │ ├── ImageActionsApi.java │ │ ├── InputConsumer.java │ │ ├── InputConsumerUtils.kt │ │ ├── InstantAppResolverImpl.java │ │ ├── LauncherActivityInterface.java │ │ ├── LauncherBackAnimationController.java │ │ ├── LauncherRestoreEventLoggerImpl.kt │ │ ├── LauncherSearchIndexablesProvider.java │ │ ├── LauncherSwipeHandlerV2.java │ │ ├── MultiStateCallback.java │ │ ├── NavHandle.java │ │ ├── OrientationRectF.java │ │ ├── OrientationTouchTransformer.java │ │ ├── OverviewCommandHelper.kt │ │ ├── OverviewComponentObserver.java │ │ ├── QuickstepProcessInitializer.java │ │ ├── QuickstepTestInformationHandler.java │ │ ├── RecentTasksList.java │ │ ├── RecentsActivity.java │ │ ├── RecentsAnimationCallbacks.java │ │ ├── RecentsAnimationController.java │ │ ├── RecentsAnimationDeviceState.java │ │ ├── RecentsAnimationTargets.java │ │ ├── RecentsFilterState.java │ │ ├── RecentsModel.java │ │ ├── RemoteAnimationTargets.java │ │ ├── RemoteRunnable.java │ │ ├── RemoteTargetGluer.java │ │ ├── RotationTouchHelper.java │ │ ├── SimpleOrientationTouchTransformer.java │ │ ├── SplitSelectionListener.kt │ │ ├── SwipeUpAnimationLogic.java │ │ ├── SystemUiProxy.java │ │ ├── TaskAnimationManager.java │ │ ├── TaskIconCache.java │ │ ├── TaskOverlayFactory.java │ │ ├── TaskShortcutFactory.java │ │ ├── TaskThumbnailCache.java │ │ ├── TaskUtils.java │ │ ├── TaskViewUtils.java │ │ ├── TopTaskTracker.java │ │ ├── TouchInteractionService.java │ │ ├── ViewUtils.java │ │ ├── contextualeducation │ │ └── SystemContextualEduStatsManager.java │ │ ├── dagger │ │ ├── QuickStepModule.java │ │ └── QuickstepBaseAppComponent.java │ │ ├── fallback │ │ ├── FallbackNavBarTouchController.java │ │ ├── FallbackRecentsStateController.java │ │ ├── FallbackRecentsView.java │ │ ├── RecentsDragLayer.java │ │ ├── RecentsState.java │ │ ├── RecentsTaskController.java │ │ └── window │ │ │ ├── RecentsWindowContext.kt │ │ │ ├── RecentsWindowManager.kt │ │ │ └── RecentsWindowSwipeHandler.java │ │ ├── inputconsumers │ │ ├── AccessibilityInputConsumer.java │ │ ├── AssistantInputConsumer.java │ │ ├── BubbleBarInputConsumer.java │ │ ├── DelegateInputConsumer.java │ │ ├── DeviceLockedInputConsumer.java │ │ ├── NavHandleLongPressHandler.java │ │ ├── NavHandleLongPressInputConsumer.java │ │ ├── OneHandedModeInputConsumer.java │ │ ├── OtherActivityInputConsumer.java │ │ ├── OverviewInputConsumer.java │ │ ├── OverviewWithoutFocusInputConsumer.java │ │ ├── ProgressDelegateInputConsumer.java │ │ ├── ResetGestureInputConsumer.java │ │ ├── ScreenPinnedInputConsumer.java │ │ ├── SysUiOverlayInputConsumer.java │ │ ├── TaskbarUnstashInputConsumer.java │ │ └── TrackpadStatusBarInputConsumer.java │ │ ├── interaction │ │ ├── AllSetActivity.java │ │ ├── AnimatedTaskView.java │ │ ├── AnimatedTaskbarView.java │ │ ├── BackGestureTutorialController.java │ │ ├── BackGestureTutorialFragment.java │ │ ├── EdgeBackGestureHandler.java │ │ ├── EdgeBackGesturePanel.java │ │ ├── GestureSandboxActivity.java │ │ ├── GestureSandboxFragment.java │ │ ├── HomeGestureTutorialController.java │ │ ├── HomeGestureTutorialFragment.java │ │ ├── MenuFragment.java │ │ ├── NavBarGestureHandler.java │ │ ├── OverviewGestureTutorialController.java │ │ ├── OverviewGestureTutorialFragment.java │ │ ├── RootSandboxLayout.java │ │ ├── RotationPromptFragment.java │ │ ├── SwipeUpGestureTutorialController.java │ │ ├── TutorialController.java │ │ ├── TutorialFragment.java │ │ └── TutorialStepIndicator.java │ │ ├── logging │ │ ├── SettingsChangeLogger.java │ │ └── StatsLogCompatManager.java │ │ ├── orientation │ │ ├── LandscapePagedViewHandler.kt │ │ ├── PortraitPagedViewHandler.java │ │ ├── RecentsPagedOrientationHandler.kt │ │ └── SeascapePagedViewHandler.kt │ │ ├── recents │ │ ├── data │ │ │ ├── HighResLoadingStateNotifier.kt │ │ │ ├── RecentTasksDataSource.kt │ │ │ ├── RecentTasksRepository.kt │ │ │ ├── RecentsDeviceProfile.kt │ │ │ ├── RecentsDeviceProfileRepository.kt │ │ │ ├── RecentsDeviceProfileRepositoryImpl.kt │ │ │ ├── RecentsRotationState.kt │ │ │ ├── RecentsRotationStateRepository.kt │ │ │ ├── RecentsRotationStateRepositoryImpl.kt │ │ │ ├── TaskVisualsChangeNotifier.kt │ │ │ ├── TaskVisualsChangedDelegate.kt │ │ │ └── TasksRepository.kt │ │ ├── di │ │ │ ├── RecentsDependencies.kt │ │ │ ├── RecentsDependenciesExtras.kt │ │ │ └── RecentsDependenciesScope.kt │ │ ├── usecase │ │ │ ├── GetThumbnailPositionUseCase.kt │ │ │ ├── GetThumbnailUseCase.kt │ │ │ ├── SysUiStatusNavFlagsUseCase.kt │ │ │ └── ThumbnailPositionState.kt │ │ └── viewmodel │ │ │ ├── RecentsViewData.kt │ │ │ ├── RecentsViewModel.kt │ │ │ └── TaskContainerViewModel.kt │ │ ├── task │ │ ├── thumbnail │ │ │ ├── LiveTileView.kt │ │ │ ├── SplashAlphaUseCase.kt │ │ │ ├── TaskOverlayUiState.kt │ │ │ ├── TaskThumbnailUiState.kt │ │ │ ├── TaskThumbnailView.kt │ │ │ ├── TaskThumbnailViewData.kt │ │ │ └── data │ │ │ │ ├── TaskIconDataSource.kt │ │ │ │ └── TaskThumbnailDataSource.kt │ │ ├── util │ │ │ └── TaskOverlayHelper.kt │ │ └── viewmodel │ │ │ ├── TaskContainerData.kt │ │ │ ├── TaskOverlayViewModel.kt │ │ │ ├── TaskThumbnailViewModel.kt │ │ │ └── TaskThumbnailViewModelImpl.kt │ │ ├── util │ │ ├── AnimUtils.java │ │ ├── AnimatorControllerWithResistance.java │ │ ├── AppPairLaunchTimings.kt │ │ ├── AppPairsController.java │ │ ├── AssistContentRequester.java │ │ ├── AsyncClockEventDelegate.java │ │ ├── BackAnimState.kt │ │ ├── BaseDepthController.java │ │ ├── BaseUnfoldMoveFromCenterAnimator.java │ │ ├── BorderAnimator.kt │ │ ├── CachedEventDispatcher.java │ │ ├── ContextInitListener.java │ │ ├── ContextualSearchHapticManager.kt │ │ ├── ContextualSearchInvoker.kt │ │ ├── ContextualSearchStateManager.java │ │ ├── DesktopTask.java │ │ ├── DeviceConfigHelper.kt │ │ ├── FadeOutRemoteTransition.kt │ │ ├── GestureExclusionManager.kt │ │ ├── GroupTask.java │ │ ├── ImageActionUtils.java │ │ ├── InputConsumerProxy.java │ │ ├── InputProxyHandlerFactory.java │ │ ├── LauncherUnfoldAnimationController.java │ │ ├── LauncherViewsMoveFromCenterTranslationApplier.java │ │ ├── LayoutUtils.java │ │ ├── LogUtils.kt │ │ ├── LottieAnimationColorUtils.java │ │ ├── MotionPauseDetector.java │ │ ├── MultiValueUpdateListener.java │ │ ├── NavBarPosition.kt │ │ ├── OverviewToHomeAnim.java │ │ ├── OverviewToSplitTimings.java │ │ ├── PhoneAppPairLaunchTimings.kt │ │ ├── PhoneOverviewToSplitTimings.java │ │ ├── PhoneSplitToConfirmTimings.java │ │ ├── QuickstepOnboardingPrefs.java │ │ ├── RecentsAtomicAnimationFactory.java │ │ ├── RecentsOrientedState.java │ │ ├── RecentsViewUtils.kt │ │ ├── RecordingSurfaceTransaction.java │ │ ├── RectFSpringAnim.java │ │ ├── ScalingWorkspaceRevealAnim.kt │ │ ├── SlideInRemoteTransition.kt │ │ ├── SplitAnimationController.kt │ │ ├── SplitAnimationTimings.java │ │ ├── SplitScreenUtils.kt │ │ ├── SplitSelectDataHolder.kt │ │ ├── SplitSelectStateController.java │ │ ├── SplitToConfirmTimings.java │ │ ├── SplitToWorkspaceController.java │ │ ├── SplitWithKeyboardShortcutController.java │ │ ├── StaggeredWorkspaceAnim.java │ │ ├── SurfaceTransaction.java │ │ ├── SurfaceTransactionApplier.java │ │ ├── SwipePipToHomeAnimator.java │ │ ├── SystemActionConstants.java │ │ ├── SystemUiFlagUtils.kt │ │ ├── SystemWindowManagerProxy.java │ │ ├── TISBindHelper.java │ │ ├── TabletAppPairLaunchTimings.kt │ │ ├── TabletHomeToSplitTimings.java │ │ ├── TabletOverviewToSplitTimings.java │ │ ├── TabletSplitToConfirmTimings.java │ │ ├── TaskCornerRadius.java │ │ ├── TaskGridNavHelper.java │ │ ├── TaskKeyByLastActiveTimeCache.java │ │ ├── TaskKeyCache.java │ │ ├── TaskKeyLruCache.java │ │ ├── TaskRemovedDuringLaunchListener.java │ │ ├── TaskRestartedDuringLaunchListener.java │ │ ├── TaskViewSimulator.java │ │ ├── TaskVisualsChangeListener.java │ │ ├── TransformParams.java │ │ ├── TriggerSwipeUpTouchTracker.java │ │ ├── UnfoldMoveFromCenterHotseatAnimator.java │ │ ├── UnfoldMoveFromCenterWorkspaceAnimator.java │ │ ├── VibrationConstants.java │ │ ├── WorkspaceRevealAnim.java │ │ └── unfold │ │ │ ├── LauncherJankMonitorTransitionProgressListener.kt │ │ │ ├── LauncherUnfoldTransitionController.kt │ │ │ ├── PreemptiveUnfoldTransitionProgressProvider.kt │ │ │ ├── ProxyUnfoldTransitionProvider.kt │ │ │ └── UnfoldAnimationBuilder.kt │ │ └── views │ │ ├── AddDesktopButton.kt │ │ ├── AllAppsEduView.java │ │ ├── ClearAllButton.java │ │ ├── DesktopTaskContentView.kt │ │ ├── DesktopTaskView.kt │ │ ├── DigitalWellBeingToast.kt │ │ ├── FixedSizeImageView.kt │ │ ├── FloatingAppPairBackground.kt │ │ ├── FloatingAppPairView.kt │ │ ├── FloatingFullscreenAppPairBackground.kt │ │ ├── FloatingTaskThumbnailView.java │ │ ├── FloatingTaskView.java │ │ ├── FloatingWidgetBackgroundView.java │ │ ├── FloatingWidgetView.java │ │ ├── GroupedTaskView.kt │ │ ├── IconAppChipView.java │ │ ├── IconView.kt │ │ ├── LaunchableConstraintLayout.kt │ │ ├── LauncherRecentsView.java │ │ ├── OverviewActionsView.java │ │ ├── RecentsView.java │ │ ├── RecentsViewContainer.java │ │ ├── RecentsViewModelHelper.kt │ │ ├── SplitInstructionsView.java │ │ ├── SplitPlaceholderView.java │ │ ├── TaskContainer.kt │ │ ├── TaskMenuView.java │ │ ├── TaskMenuViewWithArrow.kt │ │ ├── TaskThumbnailViewDeprecated.java │ │ ├── TaskView.kt │ │ ├── TaskViewIcon.java │ │ └── TaskViewType.kt ├── src_protolog │ └── com │ │ └── android │ │ ├── launcher3 │ │ └── util │ │ │ └── StateManagerProtoLogProxy.java │ │ └── quickstep │ │ └── util │ │ ├── ActiveGestureErrorDetector.java │ │ ├── ActiveGestureLog.java │ │ ├── ActiveGestureProtoLogProxy.java │ │ ├── QuickstepProtoLogGroup.java │ │ └── RecentsWindowProtoLogProxy.java ├── testing │ └── com │ │ └── android │ │ └── launcher3 │ │ └── taskbar │ │ └── bubbles │ │ └── testing │ │ └── FakeBubbleViewFactory.kt └── tests │ ├── OWNERS │ ├── multivalentScreenshotTests │ └── src │ │ └── com │ │ └── android │ │ ├── launcher3 │ │ └── taskbar │ │ │ └── bubbles │ │ │ ├── BubbleBarViewScreenshotTest.kt │ │ │ ├── BubbleViewScreenshotTest.kt │ │ │ ├── OWNERS │ │ │ └── flyout │ │ │ └── BubbleBarFlyoutViewScreenshotTest.kt │ │ └── quickstep │ │ └── task │ │ └── thumbnail │ │ ├── FakeTaskThumbnailViewModel.kt │ │ └── TaskThumbnailViewScreenshotTest.kt │ ├── multivalentTests │ └── src │ │ └── com │ │ └── android │ │ ├── launcher3 │ │ ├── model │ │ │ ├── AppEventProducerTest.java │ │ │ ├── QuickstepModelDelegateTest.kt │ │ │ ├── WidgetsPredictionsRequesterTest.kt │ │ │ └── data │ │ │ │ └── TaskViewItemInfoTest.kt │ │ ├── taskbar │ │ │ ├── RecentsHitboxExtenderTest.java │ │ │ ├── TaskbarAutohideSuspendControllerTest.kt │ │ │ ├── TaskbarControllerTestUtil.kt │ │ │ ├── TaskbarDesktopModeControllerTest.kt │ │ │ ├── TaskbarEduTooltipControllerTest.kt │ │ │ ├── TaskbarNavButtonControllerTest.java │ │ │ ├── TaskbarOverflowTest.kt │ │ │ ├── TaskbarScrimViewControllerTest.kt │ │ │ ├── TaskbarStashControllerTest.kt │ │ │ ├── TaskbarViewControllerTest.kt │ │ │ ├── TaskbarViewTest.kt │ │ │ ├── TaskbarViewTestUtil.kt │ │ │ ├── TaskbarViewWithLayoutTransitionTest.kt │ │ │ ├── allapps │ │ │ │ ├── TaskbarAllAppsControllerTest.kt │ │ │ │ └── TaskbarAllAppsViewControllerTest.kt │ │ │ ├── bubbles │ │ │ │ ├── BubbleBarInputConsumerTest.kt │ │ │ │ ├── BubbleBarSwipeControllerTest.kt │ │ │ │ ├── BubbleViewTest.kt │ │ │ │ ├── OWNERS │ │ │ │ ├── animation │ │ │ │ │ ├── BubbleAnimatorTest.kt │ │ │ │ │ └── BubbleBarViewAnimatorTest.kt │ │ │ │ ├── flyout │ │ │ │ │ └── BubbleBarFlyoutControllerTest.kt │ │ │ │ └── stashing │ │ │ │ │ ├── PersistentBubbleStashControllerTest.kt │ │ │ │ │ ├── StashingTestUtils.kt │ │ │ │ │ └── TransientBubbleStashControllerTest.kt │ │ │ ├── navbutton │ │ │ │ └── NavButtonLayoutFactoryTest.kt │ │ │ ├── overlay │ │ │ │ └── TaskbarOverlayControllerTest.kt │ │ │ └── rules │ │ │ │ ├── MockedRecentsModelTestRule.kt │ │ │ │ ├── TaskbarModeRule.kt │ │ │ │ ├── TaskbarModeRuleTest.kt │ │ │ │ ├── TaskbarUnitTestRule.kt │ │ │ │ ├── TaskbarUnitTestRuleTest.kt │ │ │ │ ├── TaskbarWindowSandboxContext.kt │ │ │ │ └── TaskbarWindowSandboxContextTest.kt │ │ └── util │ │ │ └── SettingsCacheSandbox.kt │ │ └── quickstep │ │ ├── AbsSwipeUpHandlerTestCase.java │ │ ├── AllAppsActionManagerTest.kt │ │ ├── DesktopFullscreenDrawParamsTest.kt │ │ ├── FallbackSwipeHandlerTestCase.java │ │ ├── FullscreenDrawParamsTest.kt │ │ ├── HotseatWidthCalculationTest.kt │ │ ├── LauncherRestoreEventLoggerImplTest.kt │ │ ├── LauncherSwipeHandlerV2Test.kt │ │ ├── LauncherSwipeHandlerV2TestCase.java │ │ ├── MultiStateCallbackTest.java │ │ ├── NavigationBarRotationContextTest.java │ │ ├── OverviewCommandHelperTest.kt │ │ ├── RecentsWindowSwipeHandlerTestCase.java │ │ ├── RobolectricTest.kt │ │ ├── inputconsumers │ │ ├── NavHandleLongPressHandlerTest.java │ │ └── NavHandleLongPressInputConsumerTest.java │ │ ├── logging │ │ └── SettingsChangeLoggerTest.kt │ │ ├── orientation │ │ ├── LandscapePagedViewHandlerTest.kt │ │ └── SeascapePagedViewHandlerTest.kt │ │ ├── recents │ │ ├── data │ │ │ ├── FakeHighResLoadingStateNotifier.kt │ │ │ ├── FakeRecentTasksDataSource.kt │ │ │ ├── FakeRecentsDeviceProfileRepository.kt │ │ │ ├── FakeRecentsRotationStateRepository.kt │ │ │ ├── FakeTaskIconDataSource.kt │ │ │ ├── FakeTaskThumbnailDataSource.kt │ │ │ ├── FakeTaskVisualsChangeNotifier.kt │ │ │ ├── FakeTasksRepository.kt │ │ │ ├── RecentsDeviceProfileRepositoryImplTest.kt │ │ │ ├── RecentsRotationStateRepositoryImplTest.kt │ │ │ ├── TaskVisualsChangedDelegateTest.kt │ │ │ └── TasksRepositoryTest.kt │ │ ├── usecase │ │ │ ├── GetThumbnailPositionUseCaseTest.kt │ │ │ ├── GetThumbnailUseCaseTest.kt │ │ │ └── SysUiStatusNavFlagsUseCaseTest.kt │ │ └── viewmodel │ │ │ └── RecentsViewModelTest.kt │ │ ├── task │ │ ├── thumbnail │ │ │ ├── SplashAlphaUseCaseTest.kt │ │ │ └── TaskThumbnailViewModelImplTest.kt │ │ └── viewmodel │ │ │ └── TaskOverlayViewModelTest.kt │ │ ├── taskbar │ │ └── customization │ │ │ └── TaskbarSpecsEvaluatorTest.kt │ │ └── util │ │ ├── AppPairsControllerTest.kt │ │ ├── ContextualSearchInvokerTest.java │ │ ├── DesktopTaskTest.kt │ │ ├── GroupTaskTest.kt │ │ ├── RecentsOrientedStateTest.java │ │ ├── SplitAnimationControllerTest.kt │ │ ├── SplitSelectStateControllerTest.kt │ │ ├── TaskGridNavHelperTest.kt │ │ ├── TaskKeyByLastActiveTimeCacheTest.java │ │ ├── TaskViewSimulatorTest.java │ │ └── TestExtensions.kt │ ├── multivalentTestsForDevice │ └── src │ └── com │ └── android │ ├── launcher3 │ ├── model │ │ └── WidgetsPredicationUpdateTaskTest.java │ ├── taskbar │ │ ├── FallbackTaskbarUIControllerTest.kt │ │ ├── TaskbarBaseTestCase.kt │ │ ├── TaskbarHoverToolTipControllerTest.java │ │ ├── TaskbarKeyguardControllerTest.kt │ │ └── TaskbarRecentAppsControllerTest.kt │ └── testcomponent │ │ └── ExcludeFromRecentsTestActivity.java │ └── quickstep │ ├── AbstractQuickStepTest.java │ ├── AbstractTaplTestsTaskbar.java │ ├── DesktopSystemShortcutTest.kt │ ├── DigitalWellBeingToastTest.java │ ├── ExternalDisplaySystemShortcutTest.kt │ ├── FallbackRecentsTest.java │ ├── InputConsumerUtilsTest.java │ ├── NavigationModeSwitchRule.java │ ├── OrientationTouchTransformerTest.java │ ├── RecentTasksListTest.java │ ├── RecentsAnimationDeviceStateTest.kt │ ├── RecentsModelTest.java │ ├── TaplOverviewIconTest.java │ ├── TaplPrivateSpaceTest.java │ ├── TaplStartLauncherViaGestureTests.java │ ├── TaplTestsKeyboardQuickSwitch.java │ ├── TaplTestsOverviewDesktop.kt │ ├── TaplTestsPersistentTaskbar.java │ ├── TaplTestsQuickstep.java │ ├── TaplTestsSplitscreen.java │ ├── TaplTestsTaskbar.java │ ├── TaplTestsTrackpad.java │ ├── TaplTestsTransientTaskbar.java │ ├── TaskAnimationManagerTest.java │ ├── TaskThumbnailCacheTest.java │ ├── TaskViewTest.java │ ├── TaskbarModeSwitchRule.java │ ├── desktop │ └── DesktopAppLaunchTransitionManagerTest.kt │ ├── taskbar │ └── controllers │ │ └── TaskbarPinningControllerTest.kt │ └── util │ ├── GestureExclusionManagerTest.kt │ ├── SplitScreenTestUtils.kt │ ├── SplitSelectDataHolderTest.kt │ ├── TaplTestsPredictionRow.java │ └── unfold │ └── PreemptiveUnfoldTransitionProgressProviderTest.kt ├── res ├── anim │ ├── no_anim.xml │ └── task_open_enter.xml ├── animator │ ├── all_apps_fastscroll_icon_anim.xml │ ├── discovery_bounce.xml │ └── overview_button_anim.xml ├── color-night-v31 │ ├── accent_ripple_color.xml │ ├── all_apps_button_color.xml │ ├── all_apps_button_color_2.xml │ ├── all_apps_tab_background_selected.xml │ ├── all_apps_tab_text.xml │ ├── all_apps_tabs_background.xml │ ├── folder_background_dark.xml │ ├── folder_preview_dark.xml │ ├── material_color_surface_container_lowest.xml │ ├── popup_shade_first.xml │ ├── popup_shade_second.xml │ ├── popup_shade_third.xml │ ├── taskbar_background.xml │ ├── taskbar_divider_background.xml │ ├── taskbar_stroke.xml │ ├── widget_picker_primary_surface_color_dark.xml │ ├── widget_picker_secondary_surface_color_dark.xml │ └── widget_picker_tab_background_unselected_dark.xml ├── color-night │ ├── accent_ripple_color.xml │ ├── all_apps_tab_background_selected.xml │ ├── all_apps_tab_text.xml │ └── all_apps_tabs_background.xml ├── color-v31 │ ├── accent_ripple_color.xml │ ├── all_apps_button_bg_color.xml │ ├── all_apps_button_color.xml │ ├── all_apps_button_color_1.xml │ ├── all_apps_button_color_2.xml │ ├── all_apps_button_color_3.xml │ ├── all_apps_button_color_4.xml │ ├── all_apps_tab_background_selected.xml │ ├── all_apps_tab_text.xml │ ├── all_apps_tabs_background.xml │ ├── folder_background_light.xml │ ├── folder_preview_light.xml │ ├── home_settings_switch_thumb_color.xml │ ├── home_settings_switch_track_color.xml │ ├── material_color_surface_container_lowest.xml │ ├── overview_scrim.xml │ ├── overview_scrim_dark.xml │ ├── popup_shade_first.xml │ ├── popup_shade_second.xml │ ├── popup_shade_third.xml │ ├── taskbar_background.xml │ ├── taskbar_divider_background.xml │ ├── taskbar_edu_button_color.xml │ ├── widget_picker_primary_surface_color_light.xml │ └── widget_picker_secondary_surface_color_light.xml ├── color-v33 │ ├── overview_scrim.xml │ └── overview_scrim_dark.xml ├── color │ ├── accent_ripple_color.xml │ ├── all_apps_bg_hand_fill.xml │ ├── all_apps_bg_hand_fill_dark.xml │ ├── all_apps_tab_background_selected.xml │ ├── all_apps_tab_text.xml │ ├── all_apps_tabs_background.xml │ ├── arrow_tip_view_bg.xml │ ├── arrow_tip_view_content.xml │ ├── button_bg.xml │ ├── button_text.xml │ ├── cell_layout_bg_color.xml │ ├── drop_target_text.xml │ ├── overview_button.xml │ ├── overview_scrim.xml │ ├── overview_scrim_dark.xml │ ├── popup_shade_first.xml │ ├── popup_shade_second.xml │ ├── popup_shade_third.xml │ ├── surface.xml │ ├── system_shortcut_text.xml │ ├── taskbar_background_dark.xml │ ├── taskbar_stroke.xml │ ├── widget_picker_tab_text.xml │ └── widgets_picker_scrim.xml ├── drawable-hdpi │ └── ic_widget_resize_handle.png ├── drawable-mdpi │ └── ic_widget_resize_handle.png ├── drawable-sw720dp │ └── ic_transient_taskbar_all_apps_search_button.xml ├── drawable-v28 │ ├── bg_celllayout.xml │ ├── round_rect_folder.xml │ ├── round_rect_primary.xml │ └── top_round_rect_primary.xml ├── drawable-v31 │ ├── home_settings_switch_thumb.xml │ └── home_settings_switch_track.xml ├── drawable-xhdpi │ └── ic_widget_resize_handle.png ├── drawable-xxhdpi │ └── ic_widget_resize_handle.png ├── drawable-xxxhdpi │ └── ic_widget_resize_handle.png ├── drawable │ ├── add_item_dialog_background.xml │ ├── all_apps_divider.xml │ ├── all_apps_search_hint.xml │ ├── all_apps_tabs_background.xml │ ├── all_apps_tabs_background_selected.xml │ ├── all_apps_tabs_background_selected_focused.xml │ ├── all_apps_tabs_background_unselected.xml │ ├── all_apps_tabs_background_unselected_focused.xml │ ├── arrow_toast_rounded_background.xml │ ├── bg_all_apps_button.xml │ ├── bg_all_apps_searchbox.xml │ ├── bg_celllayout.xml │ ├── bg_letter_list_text.xml │ ├── bg_notification_content.xml │ ├── bg_ps_header.xml │ ├── bg_ps_lock_button.xml │ ├── bg_ps_mask_left_corner.xml │ ├── bg_ps_mask_right_corner.xml │ ├── bg_ps_transition_image.xml │ ├── bg_ps_unlock_button.xml │ ├── bg_rounded_corner_bottom_sheet.xml │ ├── bg_rounded_corner_bottom_sheet_handle.xml │ ├── bg_widgets_content.xml │ ├── bg_widgets_full_sheet.xml │ ├── bg_widgets_header.xml │ ├── bg_widgets_header_states.xml │ ├── bg_widgets_header_states_two_pane.xml │ ├── bg_widgets_header_two_pane.xml │ ├── bg_widgets_header_two_pane_expanded_focused.xml │ ├── bg_widgets_header_two_pane_expanded_unfocused.xml │ ├── bg_widgets_header_two_pane_unexpanded_focused.xml │ ├── bg_widgets_header_two_pane_unexpanded_unfocused.xml │ ├── bg_widgets_searchbox.xml │ ├── bg_work_apps_paused_action_button.xml │ ├── bottom_sheet_top_border.xml │ ├── bubble_ic_overflow_button.xml │ ├── button_bottom_rounded_colored_ripple.xml │ ├── button_rounded_colored_ripple.xml │ ├── button_top_rounded_bordered_ripple.xml │ ├── cloud_download_24px.xml │ ├── cloud_download_semibold_24px.xml │ ├── deep_shortcuts_text_placeholder.xml │ ├── desktop_mode_ic_taskbar_menu_new_window.xml │ ├── drop_target_background.xml │ ├── drop_target_frame.xml │ ├── drop_target_frame_hover.xml │ ├── enter_home_gardening_icon.xml │ ├── full_rounded_colored_ripple.xml │ ├── full_rounded_transparent_ripple.xml │ ├── gm_edit_24.xml │ ├── gutter_horizontal.xml │ ├── horizontal_ellipsis.xml │ ├── ic_allapps_search.xml │ ├── ic_apps.xml │ ├── ic_block_no_shadow.xml │ ├── ic_bubble_button.xml │ ├── ic_caption_desktop_button_foreground.xml │ ├── ic_close.xml │ ├── ic_close_all.xml │ ├── ic_close_work_edu.xml │ ├── ic_conversations_widget_category.xml │ ├── ic_corp.xml │ ├── ic_corp_off.xml │ ├── ic_deepshortcut_placeholder.xml │ ├── ic_desktop_add.xml │ ├── ic_desktop_with_bg.xml │ ├── ic_expand_less.xml │ ├── ic_expand_more.xml │ ├── ic_gm_close_24.xml │ ├── ic_info_no_shadow.xml │ ├── ic_install_no_shadow.xml │ ├── ic_install_to_private.xml │ ├── ic_launcher_home.xml │ ├── ic_lock.xml │ ├── ic_more_horiz_24.xml │ ├── ic_more_vert_dots.xml │ ├── ic_note_taking_widget_category.xml │ ├── ic_palette.xml │ ├── ic_pin.xml │ ├── ic_plus.xml │ ├── ic_private_profile_app_scroller_badge.xml │ ├── ic_private_profile_divider_badge.xml │ ├── ic_private_profile_letter_list_fast_scroller_badge.xml │ ├── ic_private_space_with_background.xml │ ├── ic_ps_settings.xml │ ├── ic_remove_no_shadow.xml │ ├── ic_schedule.xml │ ├── ic_select_windows.xml │ ├── ic_setting.xml │ ├── ic_split_exit.xml │ ├── ic_split_horizontal.xml │ ├── ic_split_vertical.xml │ ├── ic_taskbar_all_apps_search_button.xml │ ├── ic_touch.xml │ ├── ic_transient_taskbar_all_apps_search_button.xml │ ├── ic_uninstall_no_shadow.xml │ ├── ic_visibility.xml │ ├── ic_warning.xml │ ├── ic_widget.xml │ ├── ic_widget_height_decrease.xml │ ├── ic_widget_height_increase.xml │ ├── ic_widget_width_decrease.xml │ ├── ic_widget_width_increase.xml │ ├── icon_menu_arrow_background.xml │ ├── inset_rounded_action_button.xml │ ├── middle_item_primary.xml │ ├── padded_rounded_action_button.xml │ ├── page_indicator.xml │ ├── pending_widget_bg.xml │ ├── popup_background.xml │ ├── private_space_app_divider.xml │ ├── private_space_install_app_icon.xml │ ├── ps_lock_background.xml │ ├── ps_settings_background.xml │ ├── qsb_host_view_focus_bg.xml │ ├── round_rect_folder.xml │ ├── round_rect_primary.xml │ ├── rounded_action_button.xml │ ├── rounded_popup_ripple.xml │ ├── single_item_primary.xml │ ├── tooltip_frame.xml │ ├── widget_cell_add_button_background.xml │ ├── widget_internal_focus_bg.xml │ ├── widget_picker_collapse_handle.xml │ ├── widget_picker_preview_pane_scroll_thumb.xml │ ├── widget_picker_tabs_background.xml │ ├── widget_reconfigure_button_frame.xml │ ├── widget_resize_frame.xml │ ├── widget_suggestions.xml │ ├── widget_suggestions_icon.xml │ ├── widgets_list_expand_button_background.xml │ ├── widgets_surface_background.xml │ ├── widgets_tray_expand_button.xml │ ├── work_apps_toggle_background.xml │ ├── work_card.xml │ ├── work_mode_fab_background.xml │ └── work_scheduler_background.xml ├── interpolator │ ├── decelerate_quart.xml │ ├── decelerate_quint.xml │ ├── disco_bounce.xml │ └── large_folder_preview_item_open_interpolator.xml ├── layout-v31 │ └── settings_activity.xml ├── layout │ ├── add_item_confirmation_activity.xml │ ├── all_apps.xml │ ├── all_apps_bottom_sheet_background.xml │ ├── all_apps_content.xml │ ├── all_apps_divider.xml │ ├── all_apps_empty_search.xml │ ├── all_apps_fast_scroller.xml │ ├── all_apps_icon.xml │ ├── all_apps_icon_twoline.xml │ ├── all_apps_personal_work_tabs.xml │ ├── all_apps_prediction_row_icon.xml │ ├── all_apps_rv_layout.xml │ ├── all_apps_tabs.xml │ ├── app_icon.xml │ ├── app_pair_icon.xml │ ├── app_widget_resize_frame.xml │ ├── appwidget_error.xml │ ├── appwidget_not_ready.xml │ ├── arrow_toast.xml │ ├── bubble_bar_overflow_button.xml │ ├── deep_shortcut.xml │ ├── deep_shortcut_container.xml │ ├── develop_options_edit_text.xml │ ├── developer_options_top_bar.xml │ ├── drop_target_bar.xml │ ├── drop_target_tool_tip.xml │ ├── fast_scroller_letter_list_text_view.xml │ ├── floating_app_pair_view.xml │ ├── floating_header_content.xml │ ├── floating_icon_view.xml │ ├── floating_split_select_view.xml │ ├── floating_surface_view.xml │ ├── floating_widget_view.xml │ ├── folder_app_pair.xml │ ├── folder_application.xml │ ├── folder_icon.xml │ ├── folder_page.xml │ ├── home_settings.xml │ ├── hotseat.xml │ ├── keyboard_drag_and_drop.xml │ ├── launcher.xml │ ├── launcher_preview_layout.xml │ ├── launcher_preview_two_panel_layout.xml │ ├── longpress_options_menu.xml │ ├── notification_gutter.xml │ ├── notification_pref_warning.xml │ ├── overview_actions_container.xml │ ├── overview_panel.xml │ ├── popup_container.xml │ ├── predicted_app_icon.xml │ ├── private_space_divider.xml │ ├── private_space_header.xml │ ├── private_space_mask_view.xml │ ├── qsb_default_view.xml │ ├── qsb_preview.xml │ ├── search_container_all_apps.xml │ ├── search_container_hotseat.xml │ ├── search_container_hotseat_empty.xml │ ├── search_container_hotseat_taskbar.xml │ ├── search_container_workspace.xml │ ├── search_results_rv_layout.xml │ ├── secondary_launcher.xml │ ├── settings_activity.xml │ ├── snackbar.xml │ ├── system_shortcut.xml │ ├── system_shortcut_content.xml │ ├── system_shortcut_icon_only.xml │ ├── system_shortcut_icon_only_end.xml │ ├── system_shortcut_icon_only_start.xml │ ├── system_shortcut_icons_container.xml │ ├── system_shortcut_rows_container.xml │ ├── system_shortcut_spacer.xml │ ├── user_folder_icon_normalized.xml │ ├── widget_cell.xml │ ├── widget_cell_content.xml │ ├── widget_list_divider.xml │ ├── widget_recommendations.xml │ ├── widget_recommendations_table.xml │ ├── widget_shortcut_container.xml │ ├── widget_shortcut_container_material_u.xml │ ├── widgets_bottom_sheet.xml │ ├── widgets_bottom_sheet_content.xml │ ├── widgets_full_sheet.xml │ ├── widgets_full_sheet_paged_view.xml │ ├── widgets_full_sheet_recyclerview.xml │ ├── widgets_list_expand_button.xml │ ├── widgets_list_row_header.xml │ ├── widgets_list_row_header_two_pane.xml │ ├── widgets_list_row_view.xml │ ├── widgets_search_bar.xml │ ├── widgets_table_container.xml │ ├── widgets_two_pane_sheet.xml │ ├── widgets_two_pane_sheet_paged_view.xml │ ├── widgets_two_pane_sheet_recyclerview.xml │ ├── work_apps_edu.xml │ ├── work_apps_paused.xml │ ├── work_mode_fab.xml │ ├── work_mode_utility_view.xml │ ├── workspace_screen.xml │ └── workspace_screen_foldable.xml ├── mipmap-hdpi │ └── ic_launcher_home_foreground.png ├── mipmap-mdpi │ └── ic_launcher_home_foreground.png ├── mipmap-xhdpi │ └── ic_launcher_home_foreground.png ├── mipmap-xxhdpi │ └── ic_launcher_home_foreground.png ├── raw │ └── downgrade_schema.json ├── values-af │ └── strings.xml ├── values-am │ └── strings.xml ├── values-ar │ └── strings.xml ├── values-as │ └── strings.xml ├── values-az │ └── strings.xml ├── values-b+sr+Latn │ └── strings.xml ├── values-be │ └── strings.xml ├── values-bg │ └── strings.xml ├── values-bn │ └── strings.xml ├── values-bs │ └── strings.xml ├── values-ca │ └── strings.xml ├── values-cs │ └── strings.xml ├── values-da │ └── strings.xml ├── values-de │ └── strings.xml ├── values-el │ └── strings.xml ├── values-en-rAU │ └── strings.xml ├── values-en-rCA │ └── strings.xml ├── values-en-rGB │ └── strings.xml ├── values-en-rIN │ └── strings.xml ├── values-en-rXC │ └── strings.xml ├── values-es-rUS │ └── strings.xml ├── values-es │ └── strings.xml ├── values-et │ └── strings.xml ├── values-eu │ └── strings.xml ├── values-fa │ └── strings.xml ├── values-fi │ └── strings.xml ├── values-fr-rCA │ └── strings.xml ├── values-fr │ └── strings.xml ├── values-gl │ └── strings.xml ├── values-gu │ └── strings.xml ├── values-hi │ └── strings.xml ├── values-hr │ └── strings.xml ├── values-hu │ └── strings.xml ├── values-hy │ └── strings.xml ├── values-in │ └── strings.xml ├── values-is │ └── strings.xml ├── values-it │ └── strings.xml ├── values-iw │ └── strings.xml ├── values-ja │ └── strings.xml ├── values-ka │ └── strings.xml ├── values-kk │ └── strings.xml ├── values-km │ └── strings.xml ├── values-kn │ └── strings.xml ├── values-ko │ └── strings.xml ├── values-ky │ └── strings.xml ├── values-land │ ├── dimens.xml │ └── styles.xml ├── values-ldrtl │ └── strings.xml ├── values-lo │ └── strings.xml ├── values-lt │ └── strings.xml ├── values-lv │ └── strings.xml ├── values-mk │ └── strings.xml ├── values-ml │ └── strings.xml ├── values-mn │ └── strings.xml ├── values-mr │ └── strings.xml ├── values-ms │ └── strings.xml ├── values-my │ └── strings.xml ├── values-nb │ └── strings.xml ├── values-ne │ └── strings.xml ├── values-night-v31 │ └── colors.xml ├── values-night-v34 │ └── colors.xml ├── values-night │ ├── colors.xml │ └── styles.xml ├── values-nl │ └── strings.xml ├── values-or │ └── strings.xml ├── values-pa │ └── strings.xml ├── values-pl │ └── strings.xml ├── values-pt-rPT │ └── strings.xml ├── values-pt │ └── strings.xml ├── values-ro │ └── strings.xml ├── values-ru │ └── strings.xml ├── values-si │ └── strings.xml ├── values-sk │ └── strings.xml ├── values-sl │ └── strings.xml ├── values-sq │ └── strings.xml ├── values-sr │ └── strings.xml ├── values-sv │ └── strings.xml ├── values-sw │ └── strings.xml ├── values-sw340dp │ └── dimens.xml ├── values-sw600dp-land │ └── dimens.xml ├── values-sw600dp │ ├── config.xml │ ├── dimens.xml │ └── styles.xml ├── values-sw720dp-land │ └── dimens.xml ├── values-sw720dp │ └── dimens.xml ├── values-ta │ └── strings.xml ├── values-te │ └── strings.xml ├── values-th │ └── strings.xml ├── values-tl │ └── strings.xml ├── values-tr │ └── strings.xml ├── values-uk │ └── strings.xml ├── values-ur │ └── strings.xml ├── values-uz │ └── strings.xml ├── values-v28 │ └── dimens.xml ├── values-v29 │ └── styles.xml ├── values-v30 │ └── styles.xml ├── values-v31 │ ├── colors.xml │ ├── config.xml │ └── styles.xml ├── values-v34 │ └── colors.xml ├── values-vi │ └── strings.xml ├── values-zh-rCN │ └── strings.xml ├── values-zh-rHK │ └── strings.xml ├── values-zh-rTW │ └── strings.xml ├── values-zu │ └── strings.xml ├── values │ ├── attrs.xml │ ├── colors.xml │ ├── config.xml │ ├── custom_arrays.xml │ ├── custom_config.xml │ ├── custom_dimens.xml │ ├── custom_strings.xml │ ├── dimens.xml │ ├── id.xml │ ├── strings.xml │ └── styles.xml └── xml │ ├── backupscheme.xml │ ├── default_workspace_3x3.xml │ ├── default_workspace_4x4.xml │ ├── default_workspace_5x5.xml │ ├── default_workspace_5x8.xml │ ├── default_workspace_6x5.xml │ ├── default_workspace_6x6.xml │ ├── device_profiles.xml │ ├── dynamic_resources.xml │ ├── folder_shapes.xml │ ├── grayscale_icon_map.xml │ ├── launcher_preferences.xml │ ├── paddings_5x8.xml │ ├── paddings_6x5.xml │ ├── paddings_handhelds.xml │ ├── split_configuration.xml │ └── widget_sections.xml ├── src └── com │ └── android │ └── launcher3 │ ├── AbstractFloatingView.java │ ├── AbstractFloatingViewHelper.kt │ ├── Alarm.java │ ├── AppFilter.java │ ├── AppWidgetResizeFrame.java │ ├── AppWidgetsRestoredReceiver.java │ ├── AutoInstallsLayout.java │ ├── BaseActivity.java │ ├── BaseDraggingActivity.java │ ├── BubbleTextView.java │ ├── ButtonDropTarget.java │ ├── CellLayout.java │ ├── CellLayoutContainer.java │ ├── CheckLongPressHelper.java │ ├── DefaultLayoutParser.java │ ├── DeleteDropTarget.java │ ├── DevicePaddings.java │ ├── DeviceProfile.java │ ├── DragSource.java │ ├── DropTarget.java │ ├── DropTargetBar.java │ ├── DropTargetHandler.kt │ ├── ExtendedEditText.java │ ├── FastScrollRecyclerView.java │ ├── FirstFrameAnimatorHelper.java │ ├── GestureNavContract.java │ ├── Hotseat.java │ ├── Insettable.java │ ├── InsettableFrameLayout.java │ ├── InterruptibleInOutAnimator.java │ ├── InvariantDeviceProfile.java │ ├── Launcher.java │ ├── LauncherAnimUtils.java │ ├── LauncherAppState.java │ ├── LauncherApplication.java │ ├── LauncherBackupAgent.java │ ├── LauncherConstants.java │ ├── LauncherFiles.java │ ├── LauncherModel.kt │ ├── LauncherPrefChangeListener.java │ ├── LauncherPrefs.kt │ ├── LauncherProvider.java │ ├── LauncherRootView.java │ ├── LauncherSettings.java │ ├── LauncherState.java │ ├── LogAccelerateInterpolator.java │ ├── LogDecelerateInterpolator.java │ ├── MainProcessInitializer.java │ ├── ModelCallbacks.kt │ ├── MotionEventsUtils.java │ ├── MultipageCellLayout.java │ ├── OnAlarmListener.java │ ├── PagedView.java │ ├── PendingAddItemInfo.java │ ├── PillColorPorovider.kt │ ├── Reorderable.java │ ├── SecondaryDropTarget.java │ ├── SessionCommitReceiver.java │ ├── ShortcutAndWidgetContainer.java │ ├── Utilities.java │ ├── UtilitiesKt.kt │ ├── Workspace.java │ ├── WorkspaceLayoutManager.java │ ├── WorkspaceStateTransitionAnimation.java │ ├── accessibility │ ├── AccessibleDragListenerAdapter.kt │ ├── BaseAccessibilityDelegate.java │ ├── DragAndDropAccessibilityDelegate.java │ ├── DragViewStateAnnouncer.java │ ├── FolderAccessibilityHelper.java │ ├── LauncherAccessibilityDelegate.java │ ├── ShortcutMenuAccessibilityDelegate.java │ └── WorkspaceAccessibilityHelper.java │ ├── allapps │ ├── ActivityAllAppsContainerView.java │ ├── AllAppsFastScrollHelper.java │ ├── AllAppsGridAdapter.java │ ├── AllAppsPagedView.java │ ├── AllAppsRecyclerView.java │ ├── AllAppsStore.java │ ├── AllAppsTransitionController.java │ ├── AllAppsTransitionListener.java │ ├── AlphabeticalAppsList.java │ ├── AppInfoComparator.java │ ├── BaseAllAppsAdapter.java │ ├── DiscoveryBounce.java │ ├── FloatingHeaderRow.java │ ├── FloatingHeaderView.java │ ├── FloatingMaskView.java │ ├── LauncherAllAppsContainerView.java │ ├── LetterListTextView.java │ ├── PluginHeaderRow.java │ ├── PrivateAppsSectionDecorator.java │ ├── PrivateProfileManager.java │ ├── PrivateSpaceSettingsButton.java │ ├── RecyclerViewAnimationController.java │ ├── SearchRecyclerView.java │ ├── SearchTransitionController.java │ ├── SearchUiManager.java │ ├── SecondaryLauncherAllAppsContainerView.java │ ├── SectionDecorationHandler.java │ ├── SectionDecorationInfo.java │ ├── UserProfileManager.java │ ├── WorkEduCard.java │ ├── WorkPausedCard.java │ ├── WorkProfileManager.java │ ├── WorkUtilityView.java │ └── search │ │ ├── AllAppsSearchBarController.java │ │ ├── AllAppsSearchUiDelegate.java │ │ ├── AppsSearchContainerLayout.java │ │ ├── DefaultAppSearchAlgorithm.java │ │ ├── DefaultSearchAdapterProvider.java │ │ └── SearchAdapterProvider.java │ ├── anim │ ├── AlphaUpdateListener.java │ ├── AnimatedFloat.java │ ├── AnimatedPropertySetter.java │ ├── AnimationSuccessListener.java │ ├── AnimatorListeners.java │ ├── AnimatorPlaybackController.java │ ├── FlingSpringAnim.java │ ├── KeyboardInsetAnimationCallback.java │ ├── PendingAnimation.java │ ├── PropertyListBuilder.java │ ├── PropertyResetListener.java │ ├── PropertySetter.java │ ├── RevealOutlineAnimation.java │ ├── RoundedRectRevealOutlineProvider.java │ ├── SpringAnimationBuilder.java │ └── SpringProperty.java │ ├── apppairs │ ├── AppPairIcon.java │ ├── AppPairIconDrawable.java │ ├── AppPairIconDrawingParams.kt │ └── AppPairIconGraphic.kt │ ├── backuprestore │ └── LauncherRestoreEventLogger.kt │ ├── celllayout │ ├── CellInfo.kt │ ├── CellLayoutLayoutParams.java │ ├── CellPosMapper.java │ ├── DelegatedCellDrawing.kt │ ├── ItemConfiguration.kt │ ├── MulticellReorderAlgorithm.java │ ├── ReorderAlgorithm.java │ ├── ReorderParameters.kt │ ├── ReorderPreviewAnimation.kt │ └── ViewCluster.kt │ ├── compat │ ├── AccessibilityManagerCompat.java │ └── AlphabeticIndexCompat.java │ ├── config │ └── FeatureFlags.java │ ├── contextualeducation │ └── ContextualEduStatsManager.java │ ├── dagger │ ├── ActivityContextScope.java │ ├── ApplicationContext.java │ ├── LauncherAppSingleton.java │ ├── LauncherBaseAppComponent.java │ └── LauncherComponentProvider.kt │ ├── debug │ └── TestEventsEmitterProduction.kt │ ├── dot │ ├── DotInfo.java │ └── FolderDotInfo.java │ ├── dragndrop │ ├── AddItemActivity.java │ ├── BaseItemDragListener.java │ ├── DragController.java │ ├── DragDriver.java │ ├── DragLayer.java │ ├── DragOptions.java │ ├── DragView.java │ ├── DraggableView.java │ ├── FlingToDeleteHelper.java │ ├── FolderAdaptiveIcon.java │ ├── LauncherDragController.java │ ├── LauncherDragView.java │ ├── PinItemDragListener.java │ ├── PinShortcutRequestActivityInfo.java │ ├── PinWidgetFlowHandler.java │ ├── SimpleDragLayer.java │ └── SpringLoadedDragController.java │ ├── folder │ ├── ClippedFolderIconLayoutRule.java │ ├── Folder.java │ ├── FolderAnimationManager.java │ ├── FolderGridOrganizer.java │ ├── FolderIcon.java │ ├── FolderNameEditText.java │ ├── FolderNameInfos.java │ ├── FolderNameProvider.java │ ├── FolderPagedView.java │ ├── FolderPreviewItemAnim.java │ ├── LauncherDelegate.java │ ├── PreviewBackground.java │ ├── PreviewItemDrawingParams.java │ └── PreviewItemManager.java │ ├── graphics │ ├── BitmapCreationCheck.java │ ├── DragPreviewProvider.java │ ├── FastScrollThumbDrawable.java │ ├── FragmentWithPreview.java │ ├── GridCustomizationsProvider.java │ ├── IconPalette.java │ ├── IconShape.java │ ├── LauncherPreviewRenderer.java │ ├── PreloadIconDrawable.java │ ├── PreviewSurfaceRenderer.java │ ├── Scrim.java │ ├── SysUiScrim.java │ ├── TintedDrawableSpan.java │ └── TriangleShape.java │ ├── icons │ ├── CacheableShortcutInfo.kt │ ├── IconCache.java │ ├── LauncherIconProvider.java │ └── LauncherIcons.java │ ├── keyboard │ ├── FocusIndicatorHelper.java │ ├── FocusedItemDecorator.java │ ├── ItemFocusIndicatorHelper.java │ ├── KeyboardDragAndDropView.java │ └── ViewGroupFocusHelper.java │ ├── logging │ ├── ColdRebootStartupLatencyLogger.kt │ ├── FileLog.java │ ├── InstanceId.java │ ├── InstanceIdSequence.java │ ├── KeyboardStateManager.java │ ├── StartupLatencyLogger.kt │ ├── StatsLogManager.java │ └── UiEvent.java │ ├── model │ ├── AddWorkspaceItemsTask.java │ ├── AllAppsList.java │ ├── BaseLauncherBinder.java │ ├── BgDataModel.java │ ├── CacheDataUpdatedTask.java │ ├── DatabaseHelper.java │ ├── DbDowngradeHelper.java │ ├── DbEntry.kt │ ├── DeviceGridState.java │ ├── FirstScreenBroadcast.java │ ├── FirstScreenBroadcastHelper.kt │ ├── FirstScreenBroadcastModel.kt │ ├── GridBackupTable.java │ ├── GridSizeMigrationDBController.java │ ├── GridSizeMigrationLogic.kt │ ├── ItemInstallQueue.java │ ├── LoaderCursor.java │ ├── LoaderMemoryLogger.java │ ├── LoaderTask.java │ ├── ModelDbController.java │ ├── ModelDelegate.java │ ├── ModelLauncherCallbacks.kt │ ├── ModelTaskController.kt │ ├── ModelUtils.java │ ├── ModelWriter.java │ ├── PackageIncrementalDownloadUpdatedTask.java │ ├── PackageInstallStateChangedTask.java │ ├── PackageUpdatedTask.java │ ├── ReloadStringCacheTask.java │ ├── SdCardAvailableReceiver.java │ ├── SessionFailureTask.kt │ ├── ShortcutsChangedTask.java │ ├── StringCache.java │ ├── UserLockStateChangedTask.java │ ├── UserManagerState.java │ ├── WidgetItem.java │ ├── WidgetsFilterDataProvider.kt │ ├── WidgetsModel.java │ ├── WorkspaceItemProcessor.kt │ ├── WorkspaceItemSpaceFinder.java │ └── data │ │ ├── AppInfo.java │ │ ├── AppPairInfo.kt │ │ ├── CollectionInfo.kt │ │ ├── FolderInfo.java │ │ ├── IconRequestInfo.java │ │ ├── ItemInfo.java │ │ ├── ItemInfoWithIcon.java │ │ ├── LauncherAppWidgetInfo.java │ │ ├── PackageItemInfo.java │ │ ├── PrivateSpaceInstallAppButtonInfo.java │ │ ├── TaskItemInfo.kt │ │ ├── WorkspaceItemFactory.java │ │ └── WorkspaceItemInfo.java │ ├── notification │ ├── NotificationGroup.java │ ├── NotificationKeyData.java │ └── NotificationListener.java │ ├── pageindicators │ ├── PageIndicator.java │ └── PageIndicatorDots.java │ ├── pm │ ├── InstallSessionHelper.java │ ├── InstallSessionTracker.java │ ├── PackageInstallInfo.java │ ├── PinRequestHelper.java │ ├── ShortcutConfigActivityInfo.java │ └── UserCache.java │ ├── popup │ ├── ArrowPopup.java │ ├── LauncherPopupLiveUpdateHandler.java │ ├── PopupContainerWithArrow.java │ ├── PopupDataProvider.java │ ├── PopupLiveUpdateHandler.java │ ├── PopupPopulator.java │ ├── RemoteActionShortcut.java │ ├── RoundedArrowDrawable.java │ └── SystemShortcut.java │ ├── provider │ ├── LauncherDbUtils.kt │ └── RestoreDbTask.java │ ├── qsb │ ├── QsbContainerView.java │ └── QsbWidgetHostView.java │ ├── recyclerview │ ├── AllAppsRecyclerViewPool.kt │ └── ViewHolderBinder.java │ ├── responsive │ ├── HotseatSpecsProvider.kt │ ├── ResponsiveCellSpecsProvider.kt │ ├── ResponsiveSpec.kt │ ├── ResponsiveSpecGroup.kt │ ├── ResponsiveSpecsParser.kt │ ├── ResponsiveSpecsProvider.kt │ └── SizeSpec.kt │ ├── search │ ├── SearchAlgorithm.java │ ├── SearchCallback.java │ └── StringMatcherUtility.java │ ├── secondarydisplay │ ├── PinnedAppsAdapter.java │ ├── SecondaryDisplayLauncher.java │ ├── SecondaryDisplayPredictions.java │ ├── SecondaryDragController.java │ ├── SecondaryDragLayer.java │ └── SecondaryDragView.java │ ├── settings │ ├── NotificationDotsPreference.java │ ├── PreferenceHighlighter.java │ └── SettingsActivity.java │ ├── shapes │ ├── AppShape.kt │ └── AppShapesProvider.kt │ ├── shortcuts │ ├── DeepShortcutTextView.java │ ├── DeepShortcutView.java │ ├── ShortcutDragPreviewProvider.java │ ├── ShortcutKey.java │ └── ShortcutRequest.java │ ├── statemanager │ ├── BaseState.java │ ├── StateManager.java │ ├── StatefulActivity.java │ └── StatefulContainer.java │ ├── states │ ├── EditModeState.kt │ ├── HintState.java │ ├── RotationHelper.java │ ├── SpringLoadedState.java │ └── StateAnimationConfig.java │ ├── testing │ ├── TestInformationHandler.java │ ├── TestInformationProvider.java │ └── TestLogging.java │ ├── touch │ ├── AbstractStateChangeTouchController.java │ ├── AllAppsSwipeController.java │ ├── BaseSwipeDetector.java │ ├── BothAxesSwipeDetector.java │ ├── DefaultPagedViewHandler.java │ ├── ItemClickHandler.java │ ├── ItemLongClickListener.java │ ├── OverScroll.java │ ├── PagedOrientationHandler.java │ ├── SingleAxisSwipeDetector.java │ └── WorkspaceTouchListener.java │ ├── util │ ├── ActivityLifecycleCallbacksAdapter.java │ ├── ActivityOptionsWrapper.java │ ├── ActivityResultInfo.java │ ├── ApiWrapper.java │ ├── ApplicationInfoWrapper.kt │ ├── BackPressHandler.java │ ├── CancellableTask.kt │ ├── CannedAnimationCoordinator.kt │ ├── CellAndSpan.java │ ├── CellContentDimensions.kt │ ├── ContentWriter.java │ ├── ContextTracker.java │ ├── DaggerSingletonObject.java │ ├── DaggerSingletonTracker.java │ ├── DimensionUtils.kt │ ├── DisplayController.java │ ├── DynamicResource.java │ ├── EdgeEffectCompat.java │ ├── EventLogArray.kt │ ├── Executors.java │ ├── FlagDebugUtils.kt │ ├── FlingAnimation.java │ ├── FlingBlockCheck.java │ ├── GridOccupancy.java │ ├── HorizontalInsettableView.java │ ├── IOUtils.java │ ├── IconSizeSteps.kt │ ├── InstantAppResolver.java │ ├── IntArray.java │ ├── IntSet.java │ ├── IntSparseArrayMap.java │ ├── ItemInflater.kt │ ├── ItemInfoMatcher.java │ ├── KeyboardShortcutsDelegate.java │ ├── LabelComparator.java │ ├── LauncherBindableItemsContainer.java │ ├── LauncherLayoutBuilder.kt │ ├── LockedUserState.kt │ ├── LogConfig.java │ ├── LooperExecutor.java │ ├── LooperIdleLock.java │ ├── MSDLPlayerWrapper.java │ ├── MainThreadInitializedObject.java │ ├── MultiPropertyFactory.java │ ├── MultiScalePropertyFactory.java │ ├── MultiTranslateDelegate.java │ ├── MultiValueAlpha.java │ ├── NavigationMode.java │ ├── ObjectWrapper.java │ ├── OnboardingPrefs.kt │ ├── OverlayEdgeEffect.java │ ├── PackageManagerHelper.java │ ├── PackageUserKey.java │ ├── ParcelableSparseArray.java │ ├── Partner.java │ ├── PendingRequestArgs.java │ ├── PendingSplitSelectInfo.java │ ├── PersistedItemArray.java │ ├── PluginManagerWrapper.java │ ├── PluralMessageFormat.java │ ├── Preconditions.java │ ├── ResourceBasedOverride.java │ ├── ResourceHelper.kt │ ├── RotationUtils.java │ ├── RunnableList.java │ ├── ScreenOnTracker.java │ ├── ScrollableLayoutManager.java │ ├── SettingsCache.java │ ├── ShortcutUtil.java │ ├── SimpleBroadcastReceiver.java │ ├── SplitConfigurationOptions.java │ ├── StableViewInfo.kt │ ├── StartActivityParams.java │ ├── SystemUiController.java │ ├── Themes.java │ ├── Thunk.java │ ├── TouchController.java │ ├── TouchUtil.java │ ├── TraceHelper.java │ ├── TransformingTouchDelegate.java │ ├── TranslateEdgeEffect.java │ ├── VelocityUtils.java │ ├── VibratorWrapper.java │ ├── ViewCache.java │ ├── ViewOnDrawExecutor.java │ ├── ViewPool.java │ ├── WallpaperColorHints.kt │ ├── WallpaperOffsetInterpolator.java │ ├── WindowBounds.java │ ├── coroutines │ │ └── DispatcherProvider.kt │ ├── rects │ │ └── Rects.kt │ └── window │ │ ├── CachedDisplayInfo.java │ │ ├── RefreshRateTracker.java │ │ └── WindowManagerProxy.java │ ├── views │ ├── AbstractSlideInView.java │ ├── AccessibilityActionsView.java │ ├── ActivityContext.java │ ├── ArrowTipView.java │ ├── BaseDragLayer.java │ ├── BubbleTextHolder.java │ ├── ClipIconView.java │ ├── ClipPathView.java │ ├── ComposeInitializer.java │ ├── DoubleShadowBubbleTextView.java │ ├── DoubleShadowIconDrawable.kt │ ├── FloatingIconView.java │ ├── FloatingIconViewCompanion.java │ ├── FloatingSurfaceView.java │ ├── FloatingView.java │ ├── IconButtonView.java │ ├── ListenerView.java │ ├── OptionsPopupView.java │ ├── RecyclerViewFastScroller.java │ ├── ScrimView.java │ ├── ShadowInfo.kt │ ├── Snackbar.java │ ├── SpringRelativeLayout.java │ └── StickyHeaderLayout.java │ ├── widget │ ├── AddItemWidgetsBottomSheet.java │ ├── BaseLauncherAppWidgetHostView.java │ ├── BaseWidgetSheet.java │ ├── DatabaseWidgetPreviewLoader.java │ ├── LauncherAppWidgetHost.java │ ├── LauncherAppWidgetHostView.java │ ├── LauncherAppWidgetProviderInfo.java │ ├── LauncherWidgetHolder.java │ ├── ListenableHostView.java │ ├── LocalColorExtractor.java │ ├── NavigableAppWidgetHostView.java │ ├── PendingAddShortcutInfo.java │ ├── PendingAddWidgetInfo.java │ ├── PendingAppWidgetHostView.java │ ├── PendingItemDragHelper.java │ ├── RoundedCornerEnforcement.java │ ├── WidgetAddFlowHandler.java │ ├── WidgetCell.java │ ├── WidgetCellPreview.java │ ├── WidgetHostViewLoader.java │ ├── WidgetImageView.java │ ├── WidgetInflater.kt │ ├── WidgetItemComparator.java │ ├── WidgetManagerHelper.java │ ├── WidgetSections.java │ ├── WidgetTableRow.java │ ├── WidgetsBottomSheet.java │ ├── custom │ │ ├── CustomAppWidgetProviderInfo.java │ │ └── CustomWidgetManager.java │ ├── model │ │ ├── WidgetListSpaceEntry.java │ │ ├── WidgetsListBaseEntriesBuilder.kt │ │ ├── WidgetsListBaseEntry.java │ │ ├── WidgetsListContentEntry.java │ │ ├── WidgetsListExpandActionEntry.java │ │ └── WidgetsListHeaderEntry.java │ ├── picker │ │ ├── OWNERS │ │ ├── OnHeaderClickListener.java │ │ ├── WidgetPagedView.java │ │ ├── WidgetRecommendationCategory.java │ │ ├── WidgetRecommendationCategoryProvider.java │ │ ├── WidgetRecommendationsView.java │ │ ├── WidgetsDiffCallback.java │ │ ├── WidgetsFullSheet.java │ │ ├── WidgetsListAdapter.java │ │ ├── WidgetsListDrawableState.java │ │ ├── WidgetsListExpandActionViewHolderBinder.java │ │ ├── WidgetsListHeader.java │ │ ├── WidgetsListHeaderHolder.java │ │ ├── WidgetsListHeaderViewHolderBinder.java │ │ ├── WidgetsListItemAnimator.java │ │ ├── WidgetsListTableView.java │ │ ├── WidgetsListTableViewHolderBinder.java │ │ ├── WidgetsRecommendationTableLayout.java │ │ ├── WidgetsRecyclerView.java │ │ ├── WidgetsRowViewHolder.java │ │ ├── WidgetsSpaceViewHolderBinder.java │ │ ├── WidgetsTwoPaneSheet.java │ │ ├── model │ │ │ ├── WidgetPickerDataProvider.kt │ │ │ └── data │ │ │ │ └── WidgetPickerData.kt │ │ ├── search │ │ │ ├── LauncherWidgetsSearchBar.java │ │ │ ├── SearchModeListener.java │ │ │ ├── SimpleWidgetsSearchAlgorithm.java │ │ │ ├── WidgetsSearchBar.java │ │ │ └── WidgetsSearchBarController.java │ │ └── util │ │ │ ├── WidgetPreviewContainerSize.kt │ │ │ └── WidgetPreviewContainerSizes.kt │ └── util │ │ ├── WidgetDragScaleUtils.java │ │ ├── WidgetSizes.java │ │ └── WidgetsTableUtils.java │ └── workprofile │ ├── PersonalWorkPagedView.java │ └── PersonalWorkSlidingTabStrip.java ├── src_build_config └── com │ └── android │ └── launcher3 │ └── BuildConfig.java ├── src_no_quickstep └── com │ └── android │ └── launcher3 │ ├── dagger │ └── LauncherAppComponent.java │ ├── uioverrides │ └── states │ │ ├── AllAppsState.java │ │ └── OverviewState.java │ └── util │ └── StateManagerProtoLogProxy.java ├── src_overlay ├── google │ └── com │ │ └── android │ │ └── launcher3 │ │ └── overlay │ │ └── OverlayCallbackImpl.java └── mock │ └── com │ ├── android │ └── launcher3 │ │ └── overlay │ │ └── OverlayCallbackImpl.java │ └── google │ └── android │ └── libraries │ └── gsa │ └── launcherclient │ └── LauncherClientCallbacks.java ├── src_plugins ├── README.md └── com │ └── android │ └── systemui │ └── plugins │ ├── AllAppsRow.java │ ├── CustomWidgetPlugin.java │ ├── FirstScreenWidget.java │ ├── HotseatPlugin.java │ ├── LauncherOverlayPlugin.java │ ├── NetworkFetcherPlugin.java │ ├── OneSearch.java │ ├── ResourceProvider.java │ └── shared │ └── LauncherOverlayManager.java ├── tests ├── Android.bp ├── AndroidManifest-common.xml ├── AndroidManifest.xml ├── Launcher3Tests.xml ├── OWNERS ├── assets │ ├── ReorderAlgorithmUnitTest │ │ └── reorder_algorithm_test_cases │ ├── ReorderWidgets │ │ ├── full_reorder_case │ │ ├── move_out_reorder_case │ │ ├── multiple_cell_layouts_no_space_reorder │ │ ├── multiple_cell_layouts_reorder_other_side │ │ ├── multiple_cell_layouts_simple_reorder │ │ ├── push_reorder_case │ │ └── simple_reorder_case │ ├── databases │ │ ├── BackupAndRestore │ │ │ ├── launcher.db │ │ │ ├── launcher_3_by_3.db │ │ │ ├── launcher_4_by_4.db │ │ │ └── launcher_4_by_5.db │ │ ├── GridMigrationTest │ │ │ ├── result5x5to3x3.db │ │ │ ├── result5x5to4x7.db │ │ │ ├── result5x5to5x8.db │ │ │ ├── result5x5to5x8WithShift.db │ │ │ ├── test_launcher.db │ │ │ └── test_launcher_2.db │ │ ├── v30_workspace_items.sql │ │ └── workspace_items.sql │ └── dumpTests │ │ └── DeviceProfileDumpTest │ │ ├── phonePortrait.txt │ │ ├── phonePortrait3Button.txt │ │ ├── phoneVerticalBar.txt │ │ ├── phoneVerticalBar3Button.txt │ │ ├── tabletLandscape.txt │ │ ├── tabletLandscape3Button.txt │ │ ├── tabletPortrait.txt │ │ ├── tabletPortrait3Button.txt │ │ ├── twoPanelLandscape.txt │ │ ├── twoPanelLandscape3Button.txt │ │ ├── twoPanelLandscape3Button_decoupleDepth.txt │ │ ├── twoPanelLandscape_decoupleDepth.txt │ │ ├── twoPanelPortrait.txt │ │ ├── twoPanelPortrait3Button.txt │ │ ├── twoPanelPortrait3Button_decoupleDepth.txt │ │ └── twoPanelPortrait_decoupleDepth.txt ├── config │ └── robolectric.properties ├── multivalentTests │ ├── dummy_app │ │ ├── Android.bp │ │ ├── AndroidManifest.xml │ │ ├── res │ │ │ ├── layout │ │ │ │ └── empty_activity.xml │ │ │ ├── mipmap-anydpi │ │ │ │ ├── ic_launcher1.xml │ │ │ │ └── ic_launcher2.xml │ │ │ ├── mipmap-xxhdpi │ │ │ │ ├── ic_launcher1.png │ │ │ │ ├── ic_launcher2.png │ │ │ │ ├── icon_back_1.png │ │ │ │ └── icon_fore_1.png │ │ │ ├── mipmap-xxxhdpi │ │ │ │ ├── ic_launcher1.png │ │ │ │ ├── ic_launcher2.png │ │ │ │ ├── icon_back_1.png │ │ │ │ └── icon_fore_1.png │ │ │ └── values │ │ │ │ └── colors.xml │ │ └── src │ │ │ └── com │ │ │ └── example │ │ │ └── android │ │ │ └── aardwolf │ │ │ └── Activity1.java │ ├── shared │ │ ├── AndroidManifest.xml │ │ └── com │ │ │ └── android │ │ │ └── launcher3 │ │ │ └── testing │ │ │ ├── OWNERS │ │ │ └── shared │ │ │ ├── HotseatCellCenterRequest.java │ │ │ ├── ResourceUtils.java │ │ │ ├── TestInformationRequest.java │ │ │ ├── TestProtocol.java │ │ │ └── WorkspaceCellCenterRequest.java │ └── src │ │ └── com │ │ └── android │ │ └── launcher3 │ │ ├── AbstractDeviceProfileTest.kt │ │ ├── AbstractFloatingViewHelperTest.kt │ │ ├── AppFilterTest.kt │ │ ├── AppWidgetsRestoredReceiverTest.kt │ │ ├── AutoInstallsLayoutTest.kt │ │ ├── DeleteDropTargetTest.kt │ │ ├── FakeInvariantDeviceProfileTest.kt │ │ ├── FakeLauncherPrefs.kt │ │ ├── FakeLauncherPrefsTest.kt │ │ ├── LauncherPrefsTest.kt │ │ ├── UtilitiesKtTest.kt │ │ ├── UtilitiesTest.kt │ │ ├── accessibility │ │ ├── AccessibleDragListenerAdapterTest.kt │ │ └── FolderAccessibilityHelperTest.kt │ │ ├── allapps │ │ ├── AlphabeticalAppsListTest.java │ │ ├── FloatingHeaderViewTest.kt │ │ └── PrivateSpaceSettingsButtonTest.java │ │ ├── celllayout │ │ ├── CellLayoutMethodsTest.kt │ │ ├── CellLayoutTestCaseReader.java │ │ ├── CellLayoutTestUtils.java │ │ ├── CellPosMapperTest.java │ │ ├── FavoriteItemsTransaction.java │ │ ├── HotseatReorderUnitTest.kt │ │ ├── ReorderAlgorithmUnitTest.java │ │ ├── ReorderAlgorithmUnitTestCase.java │ │ ├── ReorderPreviewAnimationTest.kt │ │ ├── ReorderTestCase.java │ │ ├── UnitTestCellLayoutBuilderRule.kt │ │ ├── board │ │ │ ├── BoardClasses.kt │ │ │ ├── CellLayoutBoard.java │ │ │ ├── IdenticalBoardComparator.kt │ │ │ ├── PermutedBoardComparator.kt │ │ │ └── TestWorkspaceBuilder.kt │ │ └── testgenerator │ │ │ ├── DeterministicRandomGenerator.kt │ │ │ ├── RandomBoardGenerator.kt │ │ │ └── RandomMultiBoardGenerator.kt │ │ ├── dagger │ │ └── LauncherComponentProviderTest.kt │ │ ├── folder │ │ ├── FolderNameInfosTest.kt │ │ ├── FolderNameProviderTest.java │ │ ├── FolderPagedViewTest.kt │ │ ├── FolderTest.kt │ │ ├── PreviewBackgroundTest.java │ │ └── PreviewItemManagerTest.kt │ │ ├── icons │ │ ├── FastBitmapDrawableTest.java │ │ ├── IconCacheTest.java │ │ ├── IconCacheUpdateHandlerTest.kt │ │ ├── UserBadgeDrawableTest.kt │ │ └── mono │ │ │ ├── MonoIconThemeControllerTest.kt │ │ │ └── MonoThemedBitmapTest.kt │ │ ├── logging │ │ ├── FileLogTest.java │ │ └── StartupLatencyLoggerTest.kt │ │ ├── model │ │ ├── AbstractWorkspaceModelTest.kt │ │ ├── AddWorkspaceItemsTaskTest.kt │ │ ├── AsyncBindingTest.kt │ │ ├── CacheDataUpdatedTaskTest.java │ │ ├── DatabaseHelperTest.kt │ │ ├── DbDowngradeHelperTest.java │ │ ├── DefaultLayoutProviderTest.java │ │ ├── FactitiousDbController.kt │ │ ├── FirstScreenBroadcastHelperTest.kt │ │ ├── FolderIconLoadTest.kt │ │ ├── GridSizeMigrationTest.kt │ │ ├── LoaderCursorTest.java │ │ ├── PackageInstallStateChangedTaskTest.java │ │ ├── WidgetsModelTest.kt │ │ ├── WorkspaceItemProcessorTest.kt │ │ ├── WorkspaceItemSpaceFinderTest.kt │ │ └── data │ │ │ └── ItemInfoWithIconTest.kt │ │ ├── pm │ │ ├── InstallSessionTrackerTest.kt │ │ └── UserCacheTest.kt │ │ ├── popup │ │ └── PopupPopulatorTest.java │ │ ├── provider │ │ └── RestoreDbTaskTest.java │ │ ├── recyclerview │ │ └── AllAppsRecyclerViewPoolTest.kt │ │ ├── responsive │ │ ├── AllAppsSpecsTest.kt │ │ ├── CalculatedAllAppsSpecTest.kt │ │ ├── CalculatedFolderSpecTest.kt │ │ ├── CalculatedHotseatSpecTest.kt │ │ ├── CalculatedWorkspaceSpecTest.kt │ │ ├── FolderSpecTest.kt │ │ ├── HotseatSpecsProviderTest.kt │ │ ├── ResponsiveCellSpecsProviderTest.kt │ │ ├── ResponsiveSpecsProviderTest.kt │ │ ├── SizeSpecTest.kt │ │ └── WorkspaceSpecsTest.kt │ │ ├── testcomponent │ │ ├── AppWidgetDynamicColors.java │ │ ├── AppWidgetHidden.java │ │ ├── AppWidgetNoConfig.java │ │ ├── AppWidgetWithConfig.java │ │ └── TouchEventGenerator.java │ │ ├── touch │ │ └── SingleAxisSwipeDetectorTest.java │ │ ├── ui │ │ ├── ActivityAllAppsContainerViewTest.java │ │ ├── BubbleTextViewTest.java │ │ └── TestViewHelpers.java │ │ ├── util │ │ ├── ActivityContextWrapper.java │ │ ├── ApplicationInfoWrapperTest.kt │ │ ├── CancellableTaskTest.kt │ │ ├── CellContentDimensionsTest.kt │ │ ├── DaggerSingletonDeadlockTest.kt │ │ ├── DisplayControllerTest.kt │ │ ├── GridOccupancyTest.java │ │ ├── IconSizeStepsTest.kt │ │ ├── IntArrayTest.java │ │ ├── IntSetTest.java │ │ ├── ItemInfoMatcherTest.kt │ │ ├── LauncherModelHelper.java │ │ ├── LauncherMultivalentJUnit.kt │ │ ├── LockedUserStateTest.kt │ │ ├── ModelTestExtensions.kt │ │ ├── MultiPropertyFactoryTest.kt │ │ ├── MultiScalePropertyTest.kt │ │ ├── PackageUserKeyTest.java │ │ ├── ReflectionHelpers.java │ │ ├── RunnableListTest.kt │ │ ├── SandboxApplication.kt │ │ ├── SandboxApplicationTest.kt │ │ ├── ScreenOnTrackerTest.kt │ │ ├── ShortcutUtilTest.kt │ │ ├── SimpleBroadcastReceiverTest.kt │ │ ├── SystemUiControllerTest.kt │ │ ├── TestDispatcherProvider.kt │ │ ├── TestResourceHelper.kt │ │ ├── TestSandboxModelContextWrapper.java │ │ ├── TestUtil.java │ │ ├── TouchUtilTest.kt │ │ ├── VibratorWrapperTest.kt │ │ ├── ViewCacheTest.kt │ │ ├── ViewOnDrawExecutorTest.kt │ │ ├── ViewPoolTest.kt │ │ ├── WidgetUtils.java │ │ ├── rule │ │ │ ├── BackAndRestoreRule.kt │ │ │ ├── SetFlagsRuleExt.kt │ │ │ └── TestStabilityRule.java │ │ └── window │ │ │ └── WindowManagerProxyTest.kt │ │ └── widget │ │ ├── GeneratedPreviewTest.kt │ │ ├── LauncherAppWidgetHostTest.kt │ │ ├── LauncherAppWidgetProviderInfoTest.java │ │ ├── LauncherWidgetHolderTest.kt │ │ ├── ListenableHostViewTest.kt │ │ ├── RoundedCornerEnforcementTest.kt │ │ ├── WidgetAddFlowHandlerTest.kt │ │ ├── WidgetManagerHelperTest.kt │ │ ├── custom │ │ ├── CustomAppWidgetProviderInfoTest.kt │ │ └── CustomWidgetManagerTest.kt │ │ ├── model │ │ └── WidgetsListBaseEntriesBuilderTest.kt │ │ ├── picker │ │ ├── OWNERS │ │ ├── WidgetImageViewTest.kt │ │ ├── WidgetRecommendationCategoryProviderTest.java │ │ ├── WidgetsListHeaderAccessibilityTest.java │ │ ├── WidgetsListHeaderViewHolderBinderTest.java │ │ ├── WidgetsListTableViewHolderBinderTest.java │ │ ├── model │ │ │ ├── WidgetPickerDataProviderTest.kt │ │ │ ├── WidgetsListContentEntryTest.java │ │ │ └── data │ │ │ │ └── WidgetPickerDataTest.kt │ │ ├── search │ │ │ ├── SimpleWidgetsSearchAlgorithmTest.java │ │ │ └── WidgetsSearchBarControllerTest.java │ │ └── util │ │ │ ├── WidgetPreviewContainerSizesTest.kt │ │ │ └── WidgetsTableUtilsTest.java │ │ └── util │ │ └── WidgetDragScaleUtilsTest.kt ├── multivalentTestsForDevice ├── res │ ├── drawable │ │ ├── test_app_info_icon.xml │ │ ├── test_different_activity_icon.xml │ │ ├── test_drawable_pin_item.xml │ │ ├── test_icon.xml │ │ ├── test_theme_icon.xml │ │ ├── test_widget_dynamic_colors_icon.xml │ │ ├── test_widget_no_config_icon.xml │ │ ├── test_widget_with_config_icon.xml │ │ ├── test_widget_with_dialog_icon.xml │ │ └── test_wrong_activity_icon.xml │ ├── layout │ │ ├── test_layout_appwidget_blue.xml │ │ ├── test_layout_appwidget_dynamic_colors.xml │ │ ├── test_layout_appwidget_red.xml │ │ ├── test_layout_appwidget_view.xml │ │ └── test_layout_widget_list.xml │ ├── raw │ │ ├── aardwolf_dummy_app.apk │ │ ├── db_schema_v10.json │ │ └── reorder_algorithm_test.txt │ ├── values │ │ ├── attrs.xml │ │ ├── strings.xml │ │ └── styles.xml │ └── xml │ │ ├── appwidget_dynamic_colors.xml │ │ ├── appwidget_hidden.xml │ │ ├── appwidget_no_config.xml │ │ ├── appwidget_no_config_large.xml │ │ ├── appwidget_with_config.xml │ │ ├── invalid_all_apps_file_case_1.xml │ │ ├── invalid_all_apps_file_case_2.xml │ │ ├── invalid_all_apps_file_case_3.xml │ │ ├── invalid_cell_specs_1.xml │ │ ├── invalid_cell_specs_2.xml │ │ ├── invalid_cell_specs_3.xml │ │ ├── invalid_folders_specs_1.xml │ │ ├── invalid_folders_specs_2.xml │ │ ├── invalid_folders_specs_3.xml │ │ ├── invalid_folders_specs_4.xml │ │ ├── invalid_folders_specs_5.xml │ │ ├── invalid_hotseat_file_case_1.xml │ │ ├── invalid_hotseat_file_case_2.xml │ │ ├── invalid_responsive_spec_1.xml │ │ ├── invalid_responsive_spec_2.xml │ │ ├── invalid_responsive_spec_3.xml │ │ ├── invalid_responsive_spec_4.xml │ │ ├── invalid_responsive_spec_5.xml │ │ ├── invalid_responsive_spec_6.xml │ │ ├── invalid_workspace_file_case_1.xml │ │ ├── invalid_workspace_file_case_2.xml │ │ ├── invalid_workspace_file_case_3.xml │ │ ├── invalid_workspace_file_case_4.xml │ │ ├── max_shortcuts.xml │ │ ├── shortcuts.xml │ │ ├── single_shortcut.xml │ │ ├── valid_all_apps_file.xml │ │ ├── valid_cell_specs_file.xml │ │ ├── valid_folders_specs.xml │ │ ├── valid_hotseat_file.xml │ │ ├── valid_hotseat_land_file.xml │ │ ├── valid_responsive_spec_unsorted.xml │ │ ├── valid_workspace_file.xml │ │ └── valid_workspace_unsorted_file.xml ├── shared │ └── com │ │ └── android │ │ └── launcher3 │ │ └── testing │ │ └── OWNERS ├── src │ └── com │ │ └── android │ │ └── launcher3 │ │ ├── LauncherIntentTest.java │ │ ├── allapps │ │ ├── FloatingMaskViewTest.kt │ │ ├── KeyboardFocusTest.java │ │ ├── PrivateProfileManagerTest.java │ │ ├── PrivateSpaceHeaderViewTest.java │ │ ├── TaplAllAppsIconsWorkingTest.java │ │ ├── TaplOpenCloseAllAppsTest.java │ │ └── WorkUtilityViewTest.java │ │ ├── appiconmenu │ │ └── TaplAppIconMenuTest.java │ │ ├── backuprestore │ │ └── BackupAndRestoreDBSelectionTest.kt │ │ ├── celllayout │ │ ├── integrationtest │ │ │ ├── TestUtils.kt │ │ │ └── events │ │ │ │ ├── EventsRule.kt │ │ │ │ └── TestEventsEmitterImplementation.kt │ │ └── testgenerator │ │ │ └── ValidGridMigrationTestCaseGenerator.kt │ │ ├── compat │ │ └── PromiseIconUiTest.java │ │ ├── dragging │ │ ├── TaplDragTest.java │ │ └── TaplUninstallRemoveTest.java │ │ ├── icons │ │ └── IconProviderTest.kt │ │ ├── model │ │ ├── GridMigrationTest.kt │ │ ├── LoaderTaskTest.kt │ │ ├── ModelMultiCallbacksTest.java │ │ ├── PackageUpdatedTaskTest.kt │ │ ├── WorkspaceItemProcessorExtraTest.kt │ │ └── gridmigration │ │ │ ├── GridMigrationUtils.kt │ │ │ └── ValidGridMigrationUnitTest.kt │ │ ├── nonquickstep │ │ ├── DeviceProfileDumpTest.kt │ │ └── HotseatWidthCalculationTest.kt │ │ ├── pageindicators │ │ └── PageIndicatorDotsTest.kt │ │ ├── pm │ │ └── InstallSessionHelperTest.kt │ │ ├── popup │ │ └── SystemShortcutTest.java │ │ ├── provider │ │ └── LauncherDbUtilsTest.java │ │ ├── search │ │ └── StringMatcherUtilityTest.java │ │ ├── tablet │ │ └── TaplIsTabletTest.kt │ │ ├── tapl │ │ └── TaplUtilityTest.java │ │ ├── testcomponent │ │ ├── AppWidgetWithDialog.java │ │ ├── BaseTestingActivity.java │ │ ├── CustomShortcutConfigActivity.java │ │ ├── DialogTestActivity.java │ │ ├── ImeTestActivity.java │ │ ├── ListViewService.java │ │ ├── OtherBaseTestingActivity.java │ │ ├── RequestPinItemActivity.java │ │ ├── TestCommandProvider.java │ │ ├── TestCommandReceiver.java │ │ ├── TestLauncherActivity.java │ │ ├── UnarchiveBroadcastReceiver.java │ │ └── WidgetConfigActivity.java │ │ ├── ui │ │ ├── AbstractLauncherUiTest.java │ │ ├── BaseLauncherTaplTest.java │ │ ├── DoubleShadowIconDrawableTest.kt │ │ ├── PortraitLandscapeRunner.java │ │ ├── ShadowInfoTest.kt │ │ ├── TaplTestsLauncher3Test.java │ │ ├── WorkProfileTest.java │ │ ├── widget │ │ │ ├── AddConfigWidgetTest.java │ │ │ ├── BindWidgetTest.java │ │ │ ├── RequestPinItemTest.java │ │ │ ├── TaplAddWidgetTest.java │ │ │ └── WidgetPickerTest.java │ │ └── workspace │ │ │ ├── TaplTwoPanelWorkspaceTest.java │ │ │ ├── TaplWorkspaceTest.java │ │ │ └── ThemeIconsTest.java │ │ ├── util │ │ ├── BaseLauncherActivityTest.kt │ │ ├── BlockingBroadcastReceiver.kt │ │ ├── ItemInflaterTest.kt │ │ ├── RoboApiWrapper.kt │ │ ├── TestConstants.java │ │ ├── Wait.kt │ │ ├── rule │ │ │ ├── ExtendedLongPressTimeoutRule.java │ │ │ ├── FailureWatcher.java │ │ │ ├── SamplerRule.java │ │ │ ├── ScreenRecordRule.java │ │ │ ├── SetPropRule.java │ │ │ ├── ShellCommandRule.java │ │ │ ├── TestIsolationRule.java │ │ │ ├── TestToPhoneFileCopier.kt │ │ │ └── ViewCaptureRule.kt │ │ └── viewcapture_analysis │ │ │ ├── AlphaJumpDetector.java │ │ │ ├── AnomalyDetector.java │ │ │ ├── FlashDetector.java │ │ │ ├── PositionJumpDetector.java │ │ │ └── ViewCaptureAnalyzer.java │ │ └── widget │ │ └── picker │ │ └── OWNERS ├── src_deviceless │ └── com │ │ └── android │ │ └── launcher3 │ │ └── util │ │ ├── RoboApiWrapper.kt │ │ └── RobolectricDeviceRunner.kt └── tapl │ ├── AndroidManifest.xml │ ├── README │ └── com │ └── android │ └── launcher3 │ └── tapl │ ├── AddToHomeScreenPrompt.java │ ├── AllApps.java │ ├── AllAppsAppIcon.java │ ├── AllAppsQsb.java │ ├── AppIcon.java │ ├── AppIconMenu.java │ ├── AppIconMenuItem.java │ ├── Background.java │ ├── BaseOverview.java │ ├── Folder.java │ ├── FolderIcon.java │ ├── Home.java │ ├── HomeAllApps.java │ ├── HomeAppIcon.java │ ├── HomeAppIconMenu.java │ ├── HomeAppIconMenuItem.java │ ├── HomeQsb.java │ ├── IconDragTarget.java │ ├── KeyboardQuickSwitch.java │ ├── KeyboardQuickSwitchSource.java │ ├── Launchable.java │ ├── LaunchedAppState.java │ ├── LauncherInstrumentation.java │ ├── LogEventChecker.java │ ├── Overview.java │ ├── OverviewActions.java │ ├── OverviewTask.java │ ├── OverviewTaskMenu.java │ ├── PredictionRow.java │ ├── PrivateSpaceContainer.java │ ├── PrivateSpaceHeader.java │ ├── Qsb.java │ ├── SearchInputSource.java │ ├── SearchResultFromQsb.java │ ├── SearchResultFromTaskbarQsb.java │ ├── SearchWebSuggestion.java │ ├── SelectModeButtons.java │ ├── SplitScreenMenuItem.java │ ├── SplitScreenSelect.java │ ├── SplitscreenDragSource.java │ ├── Taskbar.java │ ├── TaskbarAllApps.java │ ├── TaskbarAllAppsQsb.java │ ├── TaskbarAppIcon.java │ ├── TaskbarAppIconMenu.java │ ├── TaskbarAppIconMenuItem.java │ ├── TaskbarSearchWebSuggestion.java │ ├── TestHelpers.java │ ├── Widget.java │ ├── WidgetResizeFrame.java │ ├── Widgets.java │ ├── Workspace.java │ ├── WorkspaceAppIcon.java │ └── WorkspaceDragSource.java └── tools ├── checkstyle.xml ├── checkstyle_suppression.xml └── print_db.py /.gitignore: -------------------------------------------------------------------------------- 1 | db_files 2 | *.iml 3 | .project 4 | .classpath 5 | .project.properties 6 | gen/ 7 | tests/stress/gen/ 8 | WallpaperPicker/gen/ 9 | WallpaperPicker/.project.properties 10 | bin/ 11 | .idea/ 12 | .gradle/ 13 | local.properties 14 | gradle/ 15 | build/ 16 | gradlew* 17 | .DS_Store 18 | -------------------------------------------------------------------------------- /PREUPLOAD.cfg: -------------------------------------------------------------------------------- 1 | [Builtin Hooks] 2 | ktfmt = true 3 | 4 | [Builtin Hooks Options] 5 | ktfmt = --kotlinlang-style 6 | 7 | [Tool Paths] 8 | ktfmt = ${REPO_ROOT}/external/ktfmt/ktfmt.sh 9 | 10 | [Hook Scripts] 11 | checkstyle_hook = ${REPO_ROOT}/prebuilts/checkstyle/checkstyle.py --config_xml tools/checkstyle.xml --sha ${PREUPLOAD_COMMIT} 12 | 13 | flag_hook = ${REPO_ROOT}/frameworks/base/packages/SystemUI/flag_check.py --msg=${PREUPLOAD_COMMIT_MESSAGE} --files=${PREUPLOAD_FILES} --project=${REPO_PATH} 14 | -------------------------------------------------------------------------------- /compose/facade/core/BaseComposeFacade.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2024 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.android.launcher3.compose.core 18 | 19 | import android.content.Context 20 | import android.view.View 21 | 22 | interface BaseComposeFacade { 23 | fun isComposeAvailable(): Boolean 24 | 25 | fun initComposeView(appContext: Context): View 26 | } 27 | -------------------------------------------------------------------------------- /go/OWNERS: -------------------------------------------------------------------------------- 1 | rajekumar@google.com 2 | spivack@google.com 3 | -------------------------------------------------------------------------------- /go/quickstep/res/drawable/arrow_toast_rounded_background.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /go/quickstep/res/drawable/round_rect_button.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /go/quickstep/res/drawable/round_rect_dialog.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /go/quickstep/res/values-land/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | 360dp 21 | 168dp 22 | 23 | -------------------------------------------------------------------------------- /go/quickstep/res/values/integers.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 200 20 | -------------------------------------------------------------------------------- /quickstep/compose/facade/core/QuickstepComposeFeatures.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2024 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.android.quickstep.compose.core 18 | 19 | interface QuickstepComposeFeatures 20 | -------------------------------------------------------------------------------- /quickstep/res/color/all_set_bg_primary.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /quickstep/res/color/all_set_bg_tertiary.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /quickstep/res/color/bubblebar_drop_target_bg_color.xml: -------------------------------------------------------------------------------- 1 | 16 | 18 | 19 | -------------------------------------------------------------------------------- /quickstep/res/color/menu_item_hover_state_color.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /quickstep/res/color/taskbar_minimized_app_indicator_color.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /quickstep/res/color/taskbar_nav_icon_dark_color.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /quickstep/res/color/taskbar_nav_icon_light_color.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /quickstep/res/color/taskbar_running_app_indicator_color.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /quickstep/res/drawable-hdpi/nav_background.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/omnirom/android_packages_apps_Launcher3/290dd149273b6a0d38472531a9c3cc8427e30564/quickstep/res/drawable-hdpi/nav_background.9.png -------------------------------------------------------------------------------- /quickstep/res/drawable-mdpi/nav_background.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/omnirom/android_packages_apps_Launcher3/290dd149273b6a0d38472531a9c3cc8427e30564/quickstep/res/drawable-mdpi/nav_background.9.png -------------------------------------------------------------------------------- /quickstep/res/drawable-v28/gesture_tutorial_action_button_background.xml: -------------------------------------------------------------------------------- 1 | 16 | 18 | 19 | -------------------------------------------------------------------------------- /quickstep/res/drawable-xhdpi/nav_background.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/omnirom/android_packages_apps_Launcher3/290dd149273b6a0d38472531a9c3cc8427e30564/quickstep/res/drawable-xhdpi/nav_background.9.png -------------------------------------------------------------------------------- /quickstep/res/drawable-xxhdpi/nav_background.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/omnirom/android_packages_apps_Launcher3/290dd149273b6a0d38472531a9c3cc8427e30564/quickstep/res/drawable-xxhdpi/nav_background.9.png -------------------------------------------------------------------------------- /quickstep/res/drawable/bg_sandbox_close_button.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | -------------------------------------------------------------------------------- /quickstep/res/drawable/bg_sandbox_feedback.xml: -------------------------------------------------------------------------------- 1 | 16 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /quickstep/res/drawable/default_sandbox_app_icon.xml: -------------------------------------------------------------------------------- 1 | 2 | 14 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /quickstep/res/drawable/default_sandbox_wallpaper.xml: -------------------------------------------------------------------------------- 1 | 2 | 14 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /quickstep/res/drawable/gesture_tutorial_finger_dot.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /quickstep/res/drawable/gesture_tutorial_menu_back_button_background.xml: -------------------------------------------------------------------------------- 1 | 15 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /quickstep/res/drawable/gesture_tutorial_menu_home_button_background.xml: -------------------------------------------------------------------------------- 1 | 15 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /quickstep/res/drawable/gesture_tutorial_menu_overview_button_background.xml: -------------------------------------------------------------------------------- 1 | 15 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /quickstep/res/drawable/gesture_tutorial_ripple.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /quickstep/res/drawable/hotseat_icon.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /quickstep/res/drawable/ic_hourglass_top.xml: -------------------------------------------------------------------------------- 1 | 7 | 8 | 9 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /quickstep/res/drawable/ic_sysbar_back_kids.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /quickstep/res/drawable/ic_sysbar_home_kids.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /quickstep/res/drawable/ic_sysbar_notifications.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /quickstep/res/drawable/mock_app_icon.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /quickstep/res/drawable/redesigned_hotseat_icon.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 19 | 20 | -------------------------------------------------------------------------------- /quickstep/res/drawable/rotate_prompt_bg.xml: -------------------------------------------------------------------------------- 1 | 16 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /quickstep/res/drawable/task_menu_bg.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /quickstep/res/drawable/task_menu_item_bg.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /quickstep/res/drawable/tutorial_step_indicator_pill.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /quickstep/res/interpolator/app_open_x.xml: -------------------------------------------------------------------------------- 1 | 2 | 19 | 20 | 22 | -------------------------------------------------------------------------------- /quickstep/res/layout/all_apps_edu_view.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | -------------------------------------------------------------------------------- /quickstep/res/layout/back_gesture_tutorial_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 14 | 19 | -------------------------------------------------------------------------------- /quickstep/res/layout/bubblebar_item_view.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 22 | -------------------------------------------------------------------------------- /quickstep/res/layout/floating_header_content.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 9 | 10 | 14 | 15 | -------------------------------------------------------------------------------- /quickstep/res/layout/gesture_tutorial_activity.xml: -------------------------------------------------------------------------------- 1 | 16 | -------------------------------------------------------------------------------- /quickstep/res/layout/icon_view.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | -------------------------------------------------------------------------------- /quickstep/res/layout/predicted_app_icon.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /quickstep/res/layout/task_thumbnail_deprecated.xml: -------------------------------------------------------------------------------- 1 | 16 | -------------------------------------------------------------------------------- /quickstep/res/layout/taskbar_app_icon.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /quickstep/res/layout/taskbar_predicted_app_icon.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /quickstep/res/values/custom_strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 19 | 20 | Clear 21 | 22 | -------------------------------------------------------------------------------- /quickstep/res/xml/overview_file_provider_paths.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /quickstep/src/com/android/launcher3/taskbar/bubbles/OWNERS: -------------------------------------------------------------------------------- 1 | atsjenk@google.com 2 | liranb@google.com 3 | madym@google.com 4 | mpodolian@google.com 5 | 6 | -------------------------------------------------------------------------------- /quickstep/src/com/android/launcher3/taskbar/bubbles/flyout/BubbleBarFlyoutMessage.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2024 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.android.launcher3.taskbar.bubbles.flyout 18 | 19 | import android.graphics.drawable.Drawable 20 | 21 | data class BubbleBarFlyoutMessage(val icon: Drawable?, val title: String, val message: String) 22 | -------------------------------------------------------------------------------- /quickstep/src/com/android/launcher3/taskbar/bubbles/flyout/FlyoutCallbacks.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2024 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.android.launcher3.taskbar.bubbles.flyout 18 | 19 | /** Callbacks that the flyout uses to notify of events. */ 20 | interface FlyoutCallbacks { 21 | 22 | /** The flyout was clicked. */ 23 | fun flyoutClicked() 24 | } 25 | -------------------------------------------------------------------------------- /quickstep/src/com/android/quickstep/SplitSelectionListener.kt: -------------------------------------------------------------------------------- 1 | package com.android.quickstep 2 | 3 | interface SplitSelectionListener { 4 | /** Called when the first app has been selected with the intention to launch split screen */ 5 | fun onSplitSelectionActive() 6 | 7 | /** Called when the second app has been selected with the intention to launch split screen */ 8 | fun onSplitSelectionConfirmed() 9 | 10 | /** 11 | * Called when the user no longer is in the process of selecting apps for split screen. 12 | * [launchedSplit] will be true if selected apps have launched successfully (either in 13 | * split screen or fullscreen), false if the user canceled/exited the selection process 14 | */ 15 | fun onSplitSelectionExit(launchedSplit: Boolean) { 16 | } 17 | } -------------------------------------------------------------------------------- /quickstep/src/com/android/quickstep/recents/data/RecentTasksDataSource.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2024 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.android.quickstep.recents.data 18 | 19 | import com.android.quickstep.util.GroupTask 20 | import java.util.function.Consumer 21 | 22 | interface RecentTasksDataSource { 23 | fun getTasks(callback: Consumer>?): Int 24 | } 25 | -------------------------------------------------------------------------------- /quickstep/src/com/android/quickstep/recents/data/RecentsDeviceProfileRepository.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2024 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.android.quickstep.recents.data 18 | 19 | interface RecentsDeviceProfileRepository { 20 | fun getRecentsDeviceProfile(): RecentsDeviceProfile 21 | } 22 | -------------------------------------------------------------------------------- /quickstep/src/com/android/quickstep/recents/data/RecentsRotationStateRepository.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2024 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.android.quickstep.recents.data 18 | 19 | interface RecentsRotationStateRepository { 20 | fun getRecentsRotationState(): RecentsRotationState 21 | } 22 | -------------------------------------------------------------------------------- /quickstep/src/com/android/quickstep/task/thumbnail/TaskThumbnailViewData.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2024 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.android.quickstep.task.thumbnail 18 | 19 | import kotlinx.coroutines.flow.MutableStateFlow 20 | 21 | class TaskThumbnailViewData { 22 | val width = MutableStateFlow(0) 23 | val height = MutableStateFlow(0) 24 | } 25 | -------------------------------------------------------------------------------- /quickstep/src/com/android/quickstep/task/viewmodel/TaskContainerData.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2024 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.android.quickstep.task.viewmodel 18 | 19 | import kotlinx.coroutines.flow.MutableStateFlow 20 | 21 | class TaskContainerData { 22 | val taskMenuOpenProgress = MutableStateFlow(0f) 23 | 24 | val thumbnailSplashProgress = MutableStateFlow(0f) 25 | } 26 | -------------------------------------------------------------------------------- /quickstep/src/com/android/quickstep/util/VibrationConstants.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2022 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.android.quickstep.util; 17 | 18 | import android.os.VibrationEffect; 19 | 20 | public class VibrationConstants { 21 | public static final VibrationEffect EFFECT_TEXTURE_TICK = 22 | VibrationEffect.createPredefined(VibrationEffect.EFFECT_TEXTURE_TICK); 23 | } -------------------------------------------------------------------------------- /quickstep/src/com/android/quickstep/views/TaskViewType.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2024 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.android.quickstep.views 18 | 19 | /** Type of the [TaskView] */ 20 | enum class TaskViewType { 21 | SINGLE, 22 | GROUPED, 23 | DESKTOP 24 | } 25 | -------------------------------------------------------------------------------- /quickstep/tests/OWNERS: -------------------------------------------------------------------------------- 1 | vadimt@google.com 2 | sunnygoyal@google.com 3 | winsonc@google.com 4 | hyunyoungs@google.com 5 | -------------------------------------------------------------------------------- /quickstep/tests/multivalentScreenshotTests/src/com/android/launcher3/taskbar/bubbles/OWNERS: -------------------------------------------------------------------------------- 1 | atsjenk@google.com 2 | liranb@google.com 3 | madym@google.com 4 | mpodolian@google.com 5 | -------------------------------------------------------------------------------- /quickstep/tests/multivalentTests/src/com/android/launcher3/taskbar/bubbles/OWNERS: -------------------------------------------------------------------------------- 1 | atsjenk@google.com 2 | liranb@google.com 3 | madym@google.com 4 | mpodolian@google.com 5 | 6 | -------------------------------------------------------------------------------- /quickstep/tests/multivalentTestsForDevice: -------------------------------------------------------------------------------- 1 | ./multivalentTests -------------------------------------------------------------------------------- /quickstep/tests/src/com/android/launcher3/testcomponent/ExcludeFromRecentsTestActivity.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2024 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.android.launcher3.testcomponent; 18 | 19 | /** 20 | * Extension of BaseTestingActivity to help test excludeFromRecents="true". 21 | */ 22 | public class ExcludeFromRecentsTestActivity extends BaseTestingActivity {} 23 | -------------------------------------------------------------------------------- /res/anim/no_anim.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 19 | -------------------------------------------------------------------------------- /res/color-night-v31/accent_ripple_color.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /res/color-night-v31/all_apps_button_color.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /res/color-night-v31/all_apps_button_color_2.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 20 | 21 | -------------------------------------------------------------------------------- /res/color-night-v31/all_apps_tab_background_selected.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /res/color-night-v31/all_apps_tab_text.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /res/color-night-v31/all_apps_tabs_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 20 | -------------------------------------------------------------------------------- /res/color-night-v31/folder_background_dark.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 20 | 21 | -------------------------------------------------------------------------------- /res/color-night-v31/folder_preview_dark.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 20 | 21 | -------------------------------------------------------------------------------- /res/color-night-v31/material_color_surface_container_lowest.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /res/color-night-v31/popup_shade_first.xml: -------------------------------------------------------------------------------- 1 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /res/color-night-v31/popup_shade_second.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 20 | 21 | -------------------------------------------------------------------------------- /res/color-night-v31/popup_shade_third.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 20 | 21 | -------------------------------------------------------------------------------- /res/color-night-v31/taskbar_divider_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /res/color-night-v31/taskbar_stroke.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /res/color-night-v31/widget_picker_primary_surface_color_dark.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 20 | 21 | -------------------------------------------------------------------------------- /res/color-night-v31/widget_picker_secondary_surface_color_dark.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 20 | 21 | -------------------------------------------------------------------------------- /res/color-night-v31/widget_picker_tab_background_unselected_dark.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 20 | 21 | -------------------------------------------------------------------------------- /res/color-night/accent_ripple_color.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /res/color-night/all_apps_tab_background_selected.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /res/color-night/all_apps_tab_text.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /res/color-night/all_apps_tabs_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /res/color-v31/accent_ripple_color.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /res/color-v31/all_apps_button_bg_color.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 20 | 21 | -------------------------------------------------------------------------------- /res/color-v31/all_apps_button_color.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /res/color-v31/all_apps_button_color_1.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 20 | 21 | -------------------------------------------------------------------------------- /res/color-v31/all_apps_button_color_2.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 20 | 21 | -------------------------------------------------------------------------------- /res/color-v31/all_apps_button_color_3.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 20 | 21 | -------------------------------------------------------------------------------- /res/color-v31/all_apps_button_color_4.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 20 | 21 | -------------------------------------------------------------------------------- /res/color-v31/all_apps_tab_background_selected.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /res/color-v31/all_apps_tab_text.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /res/color-v31/all_apps_tabs_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /res/color-v31/folder_background_light.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 20 | 21 | -------------------------------------------------------------------------------- /res/color-v31/folder_preview_light.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /res/color-v31/material_color_surface_container_lowest.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /res/color-v31/overview_scrim.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /res/color-v31/overview_scrim_dark.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /res/color-v31/popup_shade_first.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /res/color-v31/popup_shade_second.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 20 | 21 | -------------------------------------------------------------------------------- /res/color-v31/popup_shade_third.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 20 | 21 | -------------------------------------------------------------------------------- /res/color-v31/taskbar_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /res/color-v31/taskbar_divider_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /res/color-v31/taskbar_edu_button_color.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /res/color-v31/widget_picker_primary_surface_color_light.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 20 | 21 | -------------------------------------------------------------------------------- /res/color-v31/widget_picker_secondary_surface_color_light.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 20 | 21 | -------------------------------------------------------------------------------- /res/color-v33/overview_scrim.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 20 | 21 | -------------------------------------------------------------------------------- /res/color-v33/overview_scrim_dark.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 20 | 21 | -------------------------------------------------------------------------------- /res/color/accent_ripple_color.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /res/color/all_apps_tab_background_selected.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /res/color/all_apps_tab_text.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /res/color/all_apps_tabs_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /res/color/arrow_tip_view_bg.xml: -------------------------------------------------------------------------------- 1 | 2 | 20 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /res/color/arrow_tip_view_content.xml: -------------------------------------------------------------------------------- 1 | 2 | 20 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /res/color/button_bg.xml: -------------------------------------------------------------------------------- 1 | 2 | 20 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /res/color/button_text.xml: -------------------------------------------------------------------------------- 1 | 2 | 20 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /res/color/cell_layout_bg_color.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | -------------------------------------------------------------------------------- /res/color/drop_target_text.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /res/color/overview_button.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 11 | -------------------------------------------------------------------------------- /res/color/overview_scrim.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /res/color/overview_scrim_dark.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /res/color/popup_shade_first.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /res/color/popup_shade_second.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /res/color/popup_shade_third.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /res/color/surface.xml: -------------------------------------------------------------------------------- 1 | 2 | 20 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /res/color/system_shortcut_text.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /res/color/taskbar_stroke.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /res/color/widget_picker_tab_text.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /res/color/widgets_picker_scrim.xml: -------------------------------------------------------------------------------- 1 | 2 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /res/drawable-hdpi/ic_widget_resize_handle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/omnirom/android_packages_apps_Launcher3/290dd149273b6a0d38472531a9c3cc8427e30564/res/drawable-hdpi/ic_widget_resize_handle.png -------------------------------------------------------------------------------- /res/drawable-mdpi/ic_widget_resize_handle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/omnirom/android_packages_apps_Launcher3/290dd149273b6a0d38472531a9c3cc8427e30564/res/drawable-mdpi/ic_widget_resize_handle.png -------------------------------------------------------------------------------- /res/drawable-v28/round_rect_folder.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /res/drawable-v28/round_rect_primary.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /res/drawable-xhdpi/ic_widget_resize_handle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/omnirom/android_packages_apps_Launcher3/290dd149273b6a0d38472531a9c3cc8427e30564/res/drawable-xhdpi/ic_widget_resize_handle.png -------------------------------------------------------------------------------- /res/drawable-xxhdpi/ic_widget_resize_handle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/omnirom/android_packages_apps_Launcher3/290dd149273b6a0d38472531a9c3cc8427e30564/res/drawable-xxhdpi/ic_widget_resize_handle.png -------------------------------------------------------------------------------- /res/drawable-xxxhdpi/ic_widget_resize_handle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/omnirom/android_packages_apps_Launcher3/290dd149273b6a0d38472531a9c3cc8427e30564/res/drawable-xxxhdpi/ic_widget_resize_handle.png -------------------------------------------------------------------------------- /res/drawable/add_item_dialog_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 8 | -------------------------------------------------------------------------------- /res/drawable/all_apps_divider.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /res/drawable/all_apps_search_hint.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /res/drawable/arrow_toast_rounded_background.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /res/drawable/bg_widgets_searchbox.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /res/drawable/bubble_ic_overflow_button.xml: -------------------------------------------------------------------------------- 1 | 16 | 21 | 24 | 25 | -------------------------------------------------------------------------------- /res/drawable/deep_shortcuts_text_placeholder.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /res/drawable/drop_target_frame_hover.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /res/drawable/gm_edit_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /res/drawable/gutter_horizontal.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 9 | -------------------------------------------------------------------------------- /res/drawable/ic_deepshortcut_placeholder.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /res/drawable/ic_gm_close_24.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /res/drawable/ic_launcher_home.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /res/drawable/ic_split_horizontal.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /res/drawable/ic_split_vertical.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /res/drawable/ic_widget_width_decrease.xml: -------------------------------------------------------------------------------- 1 | 16 | 23 | -------------------------------------------------------------------------------- /res/drawable/ic_widget_width_increase.xml: -------------------------------------------------------------------------------- 1 | 16 | 23 | -------------------------------------------------------------------------------- /res/drawable/middle_item_primary.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /res/drawable/page_indicator.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /res/drawable/pending_widget_bg.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 20 | -------------------------------------------------------------------------------- /res/drawable/popup_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /res/drawable/private_space_app_divider.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /res/drawable/round_rect_folder.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /res/drawable/round_rect_primary.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /res/drawable/single_item_primary.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /res/drawable/tooltip_frame.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /res/interpolator/decelerate_quart.xml: -------------------------------------------------------------------------------- 1 | 2 | 19 | 20 | 22 | -------------------------------------------------------------------------------- /res/interpolator/decelerate_quint.xml: -------------------------------------------------------------------------------- 1 | 2 | 19 | 20 | 22 | -------------------------------------------------------------------------------- /res/interpolator/disco_bounce.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 23 | -------------------------------------------------------------------------------- /res/interpolator/large_folder_preview_item_open_interpolator.xml: -------------------------------------------------------------------------------- 1 | 2 | 19 | 20 | 25 | -------------------------------------------------------------------------------- /res/layout/app_icon.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /res/layout/appwidget_not_ready.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 21 | -------------------------------------------------------------------------------- /res/layout/bubble_bar_overflow_button.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | -------------------------------------------------------------------------------- /res/layout/floating_app_pair_view.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | -------------------------------------------------------------------------------- /res/layout/floating_header_content.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | -------------------------------------------------------------------------------- /res/layout/floating_icon_view.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 20 | -------------------------------------------------------------------------------- /res/layout/floating_split_select_view.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 12 | 13 | 18 | 19 | -------------------------------------------------------------------------------- /res/layout/floating_surface_view.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 20 | -------------------------------------------------------------------------------- /res/layout/floating_widget_view.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 21 | -------------------------------------------------------------------------------- /res/layout/home_settings.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | -------------------------------------------------------------------------------- /res/layout/notification_gutter.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | -------------------------------------------------------------------------------- /res/layout/overview_panel.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | -------------------------------------------------------------------------------- /res/layout/predicted_app_icon.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /res/layout/search_container_hotseat_empty.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | -------------------------------------------------------------------------------- /res/layout/search_container_hotseat_taskbar.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | -------------------------------------------------------------------------------- /res/layout/system_shortcut_spacer.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /res/layout/widget_list_divider.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | -------------------------------------------------------------------------------- /res/mipmap-hdpi/ic_launcher_home_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/omnirom/android_packages_apps_Launcher3/290dd149273b6a0d38472531a9c3cc8427e30564/res/mipmap-hdpi/ic_launcher_home_foreground.png -------------------------------------------------------------------------------- /res/mipmap-mdpi/ic_launcher_home_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/omnirom/android_packages_apps_Launcher3/290dd149273b6a0d38472531a9c3cc8427e30564/res/mipmap-mdpi/ic_launcher_home_foreground.png -------------------------------------------------------------------------------- /res/mipmap-xhdpi/ic_launcher_home_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/omnirom/android_packages_apps_Launcher3/290dd149273b6a0d38472531a9c3cc8427e30564/res/mipmap-xhdpi/ic_launcher_home_foreground.png -------------------------------------------------------------------------------- /res/mipmap-xxhdpi/ic_launcher_home_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/omnirom/android_packages_apps_Launcher3/290dd149273b6a0d38472531a9c3cc8427e30564/res/mipmap-xxhdpi/ic_launcher_home_foreground.png -------------------------------------------------------------------------------- /res/values-land/styles.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 18 | 21 | -------------------------------------------------------------------------------- /res/values-sw340dp/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | 21 | 20dp 22 | 23 | -------------------------------------------------------------------------------- /res/values-sw600dp/styles.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 18 | 21 | -------------------------------------------------------------------------------- /res/values-v28/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 18 | ?android:attr/dialogCornerRadius 19 | 20 | -------------------------------------------------------------------------------- /res/values-v31/config.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | false 19 | false 20 | -------------------------------------------------------------------------------- /res/values/custom_config.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | true 4 | 5 | -------------------------------------------------------------------------------- /res/values/custom_dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | 8dp 21 | 22 | 23 | -------------------------------------------------------------------------------- /res/xml/backupscheme.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /res/xml/dynamic_resources.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /res/xml/grayscale_icon_map.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | -------------------------------------------------------------------------------- /res/xml/split_configuration.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 13 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /src/com/android/launcher3/AppFilter.java: -------------------------------------------------------------------------------- 1 | package com.android.launcher3; 2 | 3 | import android.content.ComponentName; 4 | import android.content.Context; 5 | 6 | import java.util.Arrays; 7 | import java.util.Set; 8 | import java.util.stream.Collectors; 9 | 10 | /** 11 | * Utility class to filter out components from various lists 12 | */ 13 | public class AppFilter { 14 | 15 | private final Set mFilteredComponents; 16 | 17 | public AppFilter(Context context) { 18 | mFilteredComponents = Arrays.stream( 19 | context.getResources().getStringArray(R.array.filtered_components)) 20 | .map(ComponentName::unflattenFromString) 21 | .collect(Collectors.toSet()); 22 | } 23 | 24 | public boolean shouldShowApp(ComponentName app) { 25 | return !mFilteredComponents.contains(app); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/com/android/launcher3/LogAccelerateInterpolator.java: -------------------------------------------------------------------------------- 1 | package com.android.launcher3; 2 | 3 | import android.animation.TimeInterpolator; 4 | 5 | public class LogAccelerateInterpolator implements TimeInterpolator { 6 | 7 | int mBase; 8 | int mDrift; 9 | final float mLogScale; 10 | 11 | public LogAccelerateInterpolator(int base, int drift) { 12 | mBase = base; 13 | mDrift = drift; 14 | mLogScale = 1f / computeLog(1, mBase, mDrift); 15 | } 16 | 17 | static float computeLog(float t, int base, int drift) { 18 | return (float) -Math.pow(base, -t) + 1 + (drift * t); 19 | } 20 | 21 | @Override 22 | public float getInterpolation(float t) { 23 | // Due to rounding issues, the interpolation doesn't quite reach 1 even though it should. 24 | // To account for this, we short-circuit to return 1 if the input is 1. 25 | return Float.compare(t, 1f) == 0 ? 1f : 1 - computeLog(1 - t, mBase, mDrift) * mLogScale; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/com/android/launcher3/LogDecelerateInterpolator.java: -------------------------------------------------------------------------------- 1 | package com.android.launcher3; 2 | 3 | import android.animation.TimeInterpolator; 4 | 5 | public class LogDecelerateInterpolator implements TimeInterpolator { 6 | 7 | int mBase; 8 | int mDrift; 9 | final float mLogScale; 10 | 11 | public LogDecelerateInterpolator(int base, int drift) { 12 | mBase = base; 13 | mDrift = drift; 14 | 15 | mLogScale = 1f / computeLog(1, mBase, mDrift); 16 | } 17 | 18 | static float computeLog(float t, int base, int drift) { 19 | return (float) -Math.pow(base, -t) + 1 + (drift * t); 20 | } 21 | 22 | @Override 23 | public float getInterpolation(float t) { 24 | // Due to rounding issues, the interpolation doesn't quite reach 1 even though it should. 25 | // To account for this, we short-circuit to return 1 if the input is 1. 26 | return Float.compare(t, 1f) == 0 ? 1f : computeLog(t, mBase, mDrift) * mLogScale; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/com/android/launcher3/OnAlarmListener.java: -------------------------------------------------------------------------------- 1 | package com.android.launcher3; 2 | 3 | public interface OnAlarmListener { 4 | public void onAlarm(Alarm alarm); 5 | } 6 | -------------------------------------------------------------------------------- /src/com/android/launcher3/shapes/AppShape.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2024 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.android.launcher3.shapes 18 | 19 | class AppShape(val key: String, val title: String, val path: String) 20 | -------------------------------------------------------------------------------- /src/com/android/launcher3/util/ActivityLifecycleCallbacksAdapter.java: -------------------------------------------------------------------------------- 1 | package com.android.launcher3.util; 2 | 3 | import android.app.Activity; 4 | import android.app.Application.ActivityLifecycleCallbacks; 5 | import android.os.Bundle; 6 | 7 | public interface ActivityLifecycleCallbacksAdapter extends ActivityLifecycleCallbacks { 8 | 9 | default void onActivityCreated(Activity activity, Bundle bundle) { 10 | } 11 | 12 | default void onActivityDestroyed(Activity activity) { 13 | } 14 | 15 | default void onActivityPaused(Activity activity) { 16 | } 17 | 18 | default void onActivityResumed(Activity activity) { 19 | } 20 | 21 | default void onActivitySaveInstanceState(Activity activity, Bundle bundle) { 22 | } 23 | 24 | default void onActivityStarted(Activity activity) { 25 | } 26 | 27 | default void onActivityStopped(Activity activity) { 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /src/com/android/launcher3/widget/picker/OWNERS: -------------------------------------------------------------------------------- 1 | set noparent 2 | 3 | # Bug component: 1481801 4 | 5 | # People who can approve changes for submission 6 | # 7 | 8 | # Widget Picker OWNERS 9 | zakcohen@google.com 10 | shamalip@google.com 11 | wvk@google.com 12 | 13 | # Launcher OWNERS 14 | captaincole@google.com 15 | sunnygoyal@google.com 16 | 17 | -------------------------------------------------------------------------------- /src_overlay/mock/com/google/android/libraries/gsa/launcherclient/LauncherClientCallbacks.java: -------------------------------------------------------------------------------- 1 | package com.google.android.libraries.gsa.launcherclient; 2 | public interface LauncherClientCallbacks { 3 | void onOverlayScrollChanged(float progress); 4 | void onServiceStateChanged(boolean overlayAttached, boolean hotwordActive); 5 | } -------------------------------------------------------------------------------- /src_plugins/README.md: -------------------------------------------------------------------------------- 1 | This directory contains plugin interfaces that launcher listens for and plugins implement. In other words, these are the hooks that specify what plugins launcher currently supports. 2 | 3 | Details about how to create a new plugin interface, or to use existing interfaces to write a plugin can be found at go/gnl/plugins. 4 | -------------------------------------------------------------------------------- /src_plugins/com/android/systemui/plugins/FirstScreenWidget.java: -------------------------------------------------------------------------------- 1 | package com.android.systemui.plugins; 2 | 3 | import android.view.ViewGroup; 4 | import com.android.systemui.plugins.annotations.ProvidesInterface; 5 | 6 | /** 7 | * Implement this interface to wrap the widget on the first home screen, e.g. to add new content. 8 | */ 9 | @ProvidesInterface(action = FirstScreenWidget.ACTION, version = FirstScreenWidget.VERSION) 10 | public interface FirstScreenWidget extends Plugin { 11 | String ACTION = "com.android.systemui.action.PLUGIN_FIRST_SCREEN_WIDGET"; 12 | int VERSION = 1; 13 | 14 | void onWidgetUpdated(ViewGroup widgetView); 15 | } 16 | -------------------------------------------------------------------------------- /src_plugins/com/android/systemui/plugins/HotseatPlugin.java: -------------------------------------------------------------------------------- 1 | package com.android.systemui.plugins; 2 | 3 | import android.view.View; 4 | import android.view.ViewGroup; 5 | 6 | import com.android.systemui.plugins.annotations.ProvidesInterface; 7 | 8 | /** 9 | * Implement this plugin interface to add a sub-view in the Hotseat. 10 | */ 11 | @ProvidesInterface(action = HotseatPlugin.ACTION, version = HotseatPlugin.VERSION) 12 | public interface HotseatPlugin extends Plugin { 13 | String ACTION = "com.android.systemui.action.PLUGIN_HOTSEAT"; 14 | int VERSION = 1; 15 | 16 | /** 17 | * Creates a plugin view which will be added to the Hotseat. 18 | */ 19 | View createView(ViewGroup parent); 20 | } 21 | -------------------------------------------------------------------------------- /tests/OWNERS: -------------------------------------------------------------------------------- 1 | # Bug component: 164335 2 | vadimt@google.com 3 | sunnygoyal@google.com 4 | winsonc@google.com 5 | hyunyoungs@google.com 6 | -------------------------------------------------------------------------------- /tests/assets/databases/BackupAndRestore/launcher.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/omnirom/android_packages_apps_Launcher3/290dd149273b6a0d38472531a9c3cc8427e30564/tests/assets/databases/BackupAndRestore/launcher.db -------------------------------------------------------------------------------- /tests/assets/databases/BackupAndRestore/launcher_3_by_3.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/omnirom/android_packages_apps_Launcher3/290dd149273b6a0d38472531a9c3cc8427e30564/tests/assets/databases/BackupAndRestore/launcher_3_by_3.db -------------------------------------------------------------------------------- /tests/assets/databases/BackupAndRestore/launcher_4_by_4.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/omnirom/android_packages_apps_Launcher3/290dd149273b6a0d38472531a9c3cc8427e30564/tests/assets/databases/BackupAndRestore/launcher_4_by_4.db -------------------------------------------------------------------------------- /tests/assets/databases/BackupAndRestore/launcher_4_by_5.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/omnirom/android_packages_apps_Launcher3/290dd149273b6a0d38472531a9c3cc8427e30564/tests/assets/databases/BackupAndRestore/launcher_4_by_5.db -------------------------------------------------------------------------------- /tests/assets/databases/GridMigrationTest/result5x5to3x3.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/omnirom/android_packages_apps_Launcher3/290dd149273b6a0d38472531a9c3cc8427e30564/tests/assets/databases/GridMigrationTest/result5x5to3x3.db -------------------------------------------------------------------------------- /tests/assets/databases/GridMigrationTest/result5x5to4x7.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/omnirom/android_packages_apps_Launcher3/290dd149273b6a0d38472531a9c3cc8427e30564/tests/assets/databases/GridMigrationTest/result5x5to4x7.db -------------------------------------------------------------------------------- /tests/assets/databases/GridMigrationTest/result5x5to5x8.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/omnirom/android_packages_apps_Launcher3/290dd149273b6a0d38472531a9c3cc8427e30564/tests/assets/databases/GridMigrationTest/result5x5to5x8.db -------------------------------------------------------------------------------- /tests/assets/databases/GridMigrationTest/result5x5to5x8WithShift.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/omnirom/android_packages_apps_Launcher3/290dd149273b6a0d38472531a9c3cc8427e30564/tests/assets/databases/GridMigrationTest/result5x5to5x8WithShift.db -------------------------------------------------------------------------------- /tests/assets/databases/GridMigrationTest/test_launcher.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/omnirom/android_packages_apps_Launcher3/290dd149273b6a0d38472531a9c3cc8427e30564/tests/assets/databases/GridMigrationTest/test_launcher.db -------------------------------------------------------------------------------- /tests/assets/databases/GridMigrationTest/test_launcher_2.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/omnirom/android_packages_apps_Launcher3/290dd149273b6a0d38472531a9c3cc8427e30564/tests/assets/databases/GridMigrationTest/test_launcher_2.db -------------------------------------------------------------------------------- /tests/config/robolectric.properties: -------------------------------------------------------------------------------- 1 | sdk=NEWEST_SDK 2 | -------------------------------------------------------------------------------- /tests/multivalentTests/dummy_app/res/mipmap-anydpi/ic_launcher2.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /tests/multivalentTests/dummy_app/res/mipmap-xxhdpi/ic_launcher1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/omnirom/android_packages_apps_Launcher3/290dd149273b6a0d38472531a9c3cc8427e30564/tests/multivalentTests/dummy_app/res/mipmap-xxhdpi/ic_launcher1.png -------------------------------------------------------------------------------- /tests/multivalentTests/dummy_app/res/mipmap-xxhdpi/ic_launcher2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/omnirom/android_packages_apps_Launcher3/290dd149273b6a0d38472531a9c3cc8427e30564/tests/multivalentTests/dummy_app/res/mipmap-xxhdpi/ic_launcher2.png -------------------------------------------------------------------------------- /tests/multivalentTests/dummy_app/res/mipmap-xxhdpi/icon_back_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/omnirom/android_packages_apps_Launcher3/290dd149273b6a0d38472531a9c3cc8427e30564/tests/multivalentTests/dummy_app/res/mipmap-xxhdpi/icon_back_1.png -------------------------------------------------------------------------------- /tests/multivalentTests/dummy_app/res/mipmap-xxhdpi/icon_fore_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/omnirom/android_packages_apps_Launcher3/290dd149273b6a0d38472531a9c3cc8427e30564/tests/multivalentTests/dummy_app/res/mipmap-xxhdpi/icon_fore_1.png -------------------------------------------------------------------------------- /tests/multivalentTests/dummy_app/res/mipmap-xxxhdpi/ic_launcher1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/omnirom/android_packages_apps_Launcher3/290dd149273b6a0d38472531a9c3cc8427e30564/tests/multivalentTests/dummy_app/res/mipmap-xxxhdpi/ic_launcher1.png -------------------------------------------------------------------------------- /tests/multivalentTests/dummy_app/res/mipmap-xxxhdpi/ic_launcher2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/omnirom/android_packages_apps_Launcher3/290dd149273b6a0d38472531a9c3cc8427e30564/tests/multivalentTests/dummy_app/res/mipmap-xxxhdpi/ic_launcher2.png -------------------------------------------------------------------------------- /tests/multivalentTests/dummy_app/res/mipmap-xxxhdpi/icon_back_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/omnirom/android_packages_apps_Launcher3/290dd149273b6a0d38472531a9c3cc8427e30564/tests/multivalentTests/dummy_app/res/mipmap-xxxhdpi/icon_back_1.png -------------------------------------------------------------------------------- /tests/multivalentTests/dummy_app/res/mipmap-xxxhdpi/icon_fore_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/omnirom/android_packages_apps_Launcher3/290dd149273b6a0d38472531a9c3cc8427e30564/tests/multivalentTests/dummy_app/res/mipmap-xxxhdpi/icon_fore_1.png -------------------------------------------------------------------------------- /tests/multivalentTests/dummy_app/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #455A64 4 | -------------------------------------------------------------------------------- /tests/multivalentTests/shared/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /tests/multivalentTests/shared/com/android/launcher3/testing/OWNERS: -------------------------------------------------------------------------------- 1 | vadimt@google.com 2 | sunnygoyal@google.com 3 | winsonc@google.com 4 | hyunyoungs@google.com 5 | mateuszc@google.com -------------------------------------------------------------------------------- /tests/multivalentTests/src/com/android/launcher3/testcomponent/AppWidgetHidden.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not 5 | * use this file except in compliance with the License. You may obtain a copy of 6 | * the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 12 | * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 13 | * License for the specific language governing permissions and limitations under 14 | * the License. 15 | */ 16 | package com.android.launcher3.testcomponent; 17 | 18 | import android.appwidget.AppWidgetProvider; 19 | 20 | /** 21 | * A simple app widget without any configuration screen and is hidden in picker. 22 | */ 23 | public class AppWidgetHidden extends AppWidgetProvider { } 24 | -------------------------------------------------------------------------------- /tests/multivalentTests/src/com/android/launcher3/testcomponent/AppWidgetNoConfig.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2017 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not 5 | * use this file except in compliance with the License. You may obtain a copy of 6 | * the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 12 | * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 13 | * License for the specific language governing permissions and limitations under 14 | * the License. 15 | */ 16 | package com.android.launcher3.testcomponent; 17 | 18 | import android.appwidget.AppWidgetProvider; 19 | 20 | /** 21 | * A simple app widget without any configuration screen. 22 | */ 23 | public class AppWidgetNoConfig extends AppWidgetProvider { 24 | 25 | 26 | } 27 | -------------------------------------------------------------------------------- /tests/multivalentTests/src/com/android/launcher3/testcomponent/AppWidgetWithConfig.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2017 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not 5 | * use this file except in compliance with the License. You may obtain a copy of 6 | * the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 12 | * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 13 | * License for the specific language governing permissions and limitations under 14 | * the License. 15 | */ 16 | package com.android.launcher3.testcomponent; 17 | 18 | /** 19 | * A simple app widget with configuration sceen. 20 | */ 21 | public class AppWidgetWithConfig extends AppWidgetNoConfig { 22 | 23 | } 24 | -------------------------------------------------------------------------------- /tests/multivalentTests/src/com/android/launcher3/util/rule/SetFlagsRuleExt.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2008 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.android.launcher3.util.rule 18 | 19 | import android.platform.test.flag.junit.SetFlagsRule 20 | 21 | fun SetFlagsRule.setFlags(enabled: Boolean, vararg flagName: String) { 22 | if (enabled) enableFlags(*flagName) else disableFlags(*flagName) 23 | } 24 | -------------------------------------------------------------------------------- /tests/multivalentTests/src/com/android/launcher3/widget/picker/OWNERS: -------------------------------------------------------------------------------- 1 | set noparent 2 | 3 | # Bug component: 1481801 4 | # People who can approve changes for submission 5 | # 6 | 7 | # Widget Picker OWNERS 8 | zakcohen@google.com 9 | shamalip@google.com 10 | wvk@google.com 11 | 12 | # For Tests 13 | vadimt@google.com 14 | 15 | # Launcher OWNERS 16 | captaincole@google.com 17 | sunnygoyal@google.com 18 | 19 | -------------------------------------------------------------------------------- /tests/multivalentTestsForDevice: -------------------------------------------------------------------------------- 1 | multivalentTests -------------------------------------------------------------------------------- /tests/res/drawable/test_app_info_icon.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /tests/res/drawable/test_different_activity_icon.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /tests/res/layout/test_layout_appwidget_blue.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /tests/res/layout/test_layout_appwidget_red.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /tests/res/layout/test_layout_appwidget_view.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 14 | -------------------------------------------------------------------------------- /tests/res/layout/test_layout_widget_list.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 14 | 15 | 20 | -------------------------------------------------------------------------------- /tests/res/raw/aardwolf_dummy_app.apk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/omnirom/android_packages_apps_Launcher3/290dd149273b6a0d38472531a9c3cc8427e30564/tests/res/raw/aardwolf_dummy_app.apk -------------------------------------------------------------------------------- /tests/res/raw/db_schema_v10.json: -------------------------------------------------------------------------------- 1 | { 2 | "version" : 10, 3 | "downgrade_to_9" : [] 4 | } -------------------------------------------------------------------------------- /tests/res/raw/reorder_algorithm_test.txt: -------------------------------------------------------------------------------- 1 | arguments: 5 6 normal 2 | board: 6x5 3 | xxxxx- 4 | ------ 5 | ------ 6 | ---3-- 7 | ---3-- 8 | ---3-- 9 | # this is a comment -------------------------------------------------------------------------------- /tests/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Shortcut 1 4 | Shortcut 2 5 | Shortcut 3 6 | Shortcut 4 7 | 8 | -------------------------------------------------------------------------------- /tests/res/xml/appwidget_dynamic_colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 10 | -------------------------------------------------------------------------------- /tests/res/xml/appwidget_hidden.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | -------------------------------------------------------------------------------- /tests/res/xml/appwidget_no_config.xml: -------------------------------------------------------------------------------- 1 | 2 | 10 | -------------------------------------------------------------------------------- /tests/res/xml/appwidget_no_config_large.xml: -------------------------------------------------------------------------------- 1 | 2 | 15 | -------------------------------------------------------------------------------- /tests/res/xml/appwidget_with_config.xml: -------------------------------------------------------------------------------- 1 | 2 | 12 | -------------------------------------------------------------------------------- /tests/shared/com/android/launcher3/testing/OWNERS: -------------------------------------------------------------------------------- 1 | vadimt@google.com 2 | sunnygoyal@google.com 3 | winsonc@google.com 4 | hyunyoungs@google.com 5 | -------------------------------------------------------------------------------- /tests/src/com/android/launcher3/testcomponent/DialogTestActivity.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2022 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.android.launcher3.testcomponent; 18 | 19 | 20 | /** 21 | * Extension of BaseTestingActivity with a Dialog theme 22 | */ 23 | public class DialogTestActivity extends BaseTestingActivity {} 24 | -------------------------------------------------------------------------------- /tests/src/com/android/launcher3/testcomponent/OtherBaseTestingActivity.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.android.launcher3.testcomponent; 18 | 19 | /** 20 | * Extension of BaseTestingActivity to help test many activities open at once. 21 | */ 22 | public class OtherBaseTestingActivity extends BaseTestingActivity {} 23 | -------------------------------------------------------------------------------- /tests/src/com/android/launcher3/widget/picker/OWNERS: -------------------------------------------------------------------------------- 1 | set noparent 2 | 3 | # Bug component: 1481801 4 | # People who can approve changes for submission 5 | # 6 | 7 | # Widget Picker OWNERS 8 | zakcohen@google.com 9 | shamalip@google.com 10 | wvk@google.com 11 | 12 | # For Tests 13 | vadimt@google.com 14 | 15 | # Launcher OWNERS 16 | captaincole@google.com 17 | sunnygoyal@google.com 18 | 19 | -------------------------------------------------------------------------------- /tests/tapl/README: -------------------------------------------------------------------------------- 1 | http://go/tapl 2 | -------------------------------------------------------------------------------- /tools/checkstyle.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | ]> 8 | 9 | 10 | &defaultModuleChecks; 11 | &defaultCopyrightCheck; 12 | 13 | &defaultJavadocChecks; 14 | &defaultTreewalkerChecks; 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /tools/checkstyle_suppression.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | --------------------------------------------------------------------------------