├── .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 |
--------------------------------------------------------------------------------