├── .gitignore ├── Android.bp ├── AndroidManifest-common.xml ├── AndroidManifest.xml ├── CleanSpec.mk ├── Launcher3-refs_heads_android15-s1-release.iml ├── OWNERS ├── PREUPLOAD.cfg ├── README.md ├── aconfig ├── Android.bp ├── launcher.aconfig └── launcher_search.aconfig ├── animationlib ├── Android.bp ├── AndroidManifest.xml ├── TEST_MAPPING ├── build.gradle ├── res │ └── interpolator │ │ ├── emphasized_accelerate_interpolator.xml │ │ ├── emphasized_decelerate_interpolator.xml │ │ ├── emphasized_interpolator.xml │ │ ├── standard_accelerate_interpolator.xml │ │ ├── standard_decelerate_interpolator.xml │ │ └── standard_interpolator.xml ├── src │ └── com │ │ └── android │ │ └── app │ │ └── animation │ │ ├── Interpolators.java │ │ ├── InterpolatorsAndroidX.java │ │ └── MathUtils.java └── tests │ ├── AndroidManifest.xml │ ├── robolectric │ ├── config │ │ └── robolectric.properties │ └── src │ │ └── com │ │ └── android │ │ └── app │ │ └── animation │ │ └── robolectric │ │ └── ShadowAnimationUtils2.kt │ └── src │ └── com │ └── android │ └── app │ └── animation │ ├── InterpolatorResourcesTest.kt │ └── InterpolatorsAndroidXTest.kt ├── buglist.txt ├── buglist_unique.txt ├── build.gradle ├── commitlist.txt ├── go ├── AndroidManifest-launcher.xml ├── AndroidManifest.xml ├── OWNERS ├── go.iml └── 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 ├── gradle.properties ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── iconloaderlib ├── .gitignore ├── Android.bp ├── AndroidManifest.xml ├── build.gradle ├── res │ ├── drawable │ │ ├── ic_clone_app_badge.xml │ │ ├── ic_instant_app_badge.xml │ │ ├── ic_private_profile_app_badge.xml │ │ └── ic_work_app_badge.xml │ ├── values-night-v31 │ │ └── colors.xml │ ├── values-night │ │ └── colors.xml │ ├── values-v31 │ │ └── colors.xml │ └── values │ │ ├── attrs.xml │ │ ├── colors.xml │ │ ├── config.xml │ │ └── dimens.xml ├── src │ └── com │ │ └── android │ │ └── launcher3 │ │ ├── icons │ │ ├── BaseIconFactory.java │ │ ├── BitmapInfo.java │ │ ├── BitmapRenderer.java │ │ ├── BubbleIconFactory.java │ │ ├── ClockDrawableWrapper.java │ │ ├── ColorExtractor.java │ │ ├── DotRenderer.java │ │ ├── FastBitmapDrawable.java │ │ ├── GraphicsUtils.java │ │ ├── IconNormalizer.java │ │ ├── IconProvider.java │ │ ├── PlaceHolderIconDrawable.java │ │ ├── RoundDrawableWrapper.java │ │ ├── ShadowGenerator.java │ │ ├── ThemedIconDrawable.java │ │ ├── UserBadgeDrawable.java │ │ └── cache │ │ │ ├── BaseIconCache.java │ │ │ ├── CachingLogic.java │ │ │ └── IconCacheUpdateHandler.java │ │ └── util │ │ ├── ComponentKey.java │ │ ├── FlagOp.java │ │ ├── NoLocaleSQLiteHelper.java │ │ ├── SQLiteCacheHelper.java │ │ ├── SafeCloseable.java │ │ └── UserIconInfo.java └── src_full_lib │ └── com │ └── android │ └── launcher3 │ └── icons │ ├── IconFactory.java │ └── SimpleIconCache.java ├── image ├── launcher01.png ├── launcher02.png ├── launcher03.png ├── launcher04.png ├── launcher05.png ├── launcher06.png ├── launcher07.png ├── launcher08.png ├── launcher09.png └── launcher10.png ├── lint-baseline-common-deps-lib.xml ├── lint-baseline-go-res-lib.xml ├── lint-baseline-launcher3.xml ├── lint-baseline-res-lib.xml ├── lint-baseline.xml ├── local.properties ├── prebuilts └── libs │ └── framework-14.jar ├── 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 ├── protos_overrides │ └── launcher_atom_extension.proto ├── quickstep.iml ├── 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_nav_icon_dark_color.xml │ │ └── taskbar_nav_icon_light_color.xml │ ├── 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 │ │ ├── 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_circle.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 │ │ ├── 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_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_overview_button_background.xml │ │ ├── keyboard_quick_switch_task_view_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 │ │ ├── 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 │ │ ├── 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_item_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_taskview.xml │ │ ├── keyboard_quick_switch_taskview_thumbnail.xml │ │ ├── keyboard_quick_switch_textonly_taskview.xml │ │ ├── keyboard_quick_switch_view.xml │ │ ├── overview_actions_container.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_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_predicted_app_icon.xml │ │ ├── transient_taskbar.xml │ │ └── widget_picker_activity.xml │ ├── raw-h480dp │ │ └── all_set_page_bg.json │ ├── raw-land │ │ └── all_set_page_bg.json │ ├── raw-sw600dp-land │ │ └── all_set_page_bg.json │ ├── raw-sw600dp │ │ └── all_set_page_bg.json │ ├── raw-sw720dp-land │ │ └── all_set_page_bg.json │ ├── raw-sw720dp │ │ └── all_set_page_bg.json │ ├── raw-w840dp-h480dp │ │ └── 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 │ │ ├── dimens.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 │ │ │ └── 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 │ │ ├── popup │ │ │ └── QuickstepSystemShortcut.java │ │ ├── proxy │ │ │ └── ProxyActivityStarter.java │ │ ├── secondarydisplay │ │ │ └── SecondaryDisplayPredictionsImpl.java │ │ ├── splitscreen │ │ │ └── SplitShortcut.kt │ │ ├── statehandlers │ │ │ ├── DepthController.java │ │ │ └── DesktopVisibilityController.java │ │ ├── taskbar │ │ │ ├── BaseTaskbarContext.java │ │ │ ├── BlurredBitmapDrawable.kt │ │ │ ├── FallbackTaskbarUIController.java │ │ │ ├── KeyboardQuickSwitchController.java │ │ │ ├── KeyboardQuickSwitchTaskView.java │ │ │ ├── KeyboardQuickSwitchView.java │ │ │ ├── KeyboardQuickSwitchViewController.java │ │ │ ├── LauncherTaskbarUIController.java │ │ │ ├── NavbarButtonsViewController.java │ │ │ ├── RecentsHitboxExtender.java │ │ │ ├── StashedHandleView.java │ │ │ ├── StashedHandleViewController.java │ │ │ ├── TaskbarActivityContext.java │ │ │ ├── TaskbarAutohideSuspendController.java │ │ │ ├── TaskbarBackgroundRenderer.kt │ │ │ ├── TaskbarControllers.java │ │ │ ├── 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 │ │ │ ├── TaskbarPinningController.kt │ │ │ ├── TaskbarPopupController.java │ │ │ ├── TaskbarRecentAppsController.kt │ │ │ ├── TaskbarScrimView.java │ │ │ ├── TaskbarScrimViewController.java │ │ │ ├── TaskbarSharedState.java │ │ │ ├── TaskbarShortcutMenuAccessibilityDelegate.java │ │ │ ├── TaskbarSpringOnStashController.java │ │ │ ├── TaskbarStashController.java │ │ │ ├── TaskbarStashViaTouchController.kt │ │ │ ├── TaskbarThresholdUtils.java │ │ │ ├── TaskbarTranslationController.java │ │ │ ├── TaskbarUIController.java │ │ │ ├── TaskbarUnfoldAnimationController.java │ │ │ ├── TaskbarView.java │ │ │ ├── TaskbarViewCallbacks.java │ │ │ ├── TaskbarViewCallbacksFactory.kt │ │ │ ├── TaskbarViewController.java │ │ │ ├── Utilities.java │ │ │ ├── VoiceInteractionWindowController.kt │ │ │ ├── allapps │ │ │ │ ├── TaskbarAllAppsContainerView.java │ │ │ │ ├── TaskbarAllAppsController.java │ │ │ │ ├── TaskbarAllAppsFallbackSearchContainer.java │ │ │ │ ├── TaskbarAllAppsSlideInView.java │ │ │ │ ├── TaskbarAllAppsViewController.java │ │ │ │ └── TaskbarSearchSessionController.kt │ │ │ ├── bubbles │ │ │ │ ├── BubbleBarBackground.kt │ │ │ │ ├── BubbleBarController.java │ │ │ │ ├── BubbleBarItem.kt │ │ │ │ ├── BubbleBarPinController.kt │ │ │ │ ├── BubbleBarView.java │ │ │ │ ├── BubbleBarViewController.java │ │ │ │ ├── BubbleControllers.java │ │ │ │ ├── BubbleDismissController.java │ │ │ │ ├── BubbleDismissViewExt.kt │ │ │ │ ├── BubbleDragAnimator.java │ │ │ │ ├── BubbleDragController.java │ │ │ │ ├── BubblePinController.kt │ │ │ │ ├── BubbleStashController.java │ │ │ │ ├── BubbleStashedHandleViewController.java │ │ │ │ ├── BubbleView.java │ │ │ │ ├── OWNERS │ │ │ │ └── animation │ │ │ │ │ └── BubbleBarViewAnimator.kt │ │ │ ├── customization │ │ │ │ ├── TaskbarContainer.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 │ │ ├── BinderTracker.java │ │ ├── DesktopSystemShortcut.kt │ │ ├── DeviceConfigWrapper.kt │ │ ├── FallbackActivityInterface.java │ │ ├── FallbackSwipeHandler.java │ │ ├── GestureState.java │ │ ├── HomeVisibilityState.kt │ │ ├── ImageActionsApi.java │ │ ├── InputConsumer.java │ │ ├── InstantAppResolverImpl.java │ │ ├── LauncherActivityInterface.java │ │ ├── LauncherBackAnimationController.java │ │ ├── LauncherRestoreEventLoggerImpl.kt │ │ ├── LauncherSearchIndexablesProvider.java │ │ ├── LauncherSwipeHandlerV2.java │ │ ├── MultiStateCallback.java │ │ ├── NavHandle.java │ │ ├── OrientationRectF.java │ │ ├── OrientationTouchTransformer.java │ │ ├── OverviewCommandHelper.java │ │ ├── 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 │ │ ├── fallback │ │ ├── FallbackNavBarTouchController.java │ │ ├── FallbackRecentsStateController.java │ │ ├── FallbackRecentsView.java │ │ ├── RecentsDragLayer.java │ │ ├── RecentsState.java │ │ └── RecentsTaskController.java │ │ ├── inputconsumers │ │ ├── AccessibilityInputConsumer.java │ │ ├── AssistantInputConsumer.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 │ │ │ ├── RecentTasksDataSource.kt │ │ │ ├── RecentTasksRepository.kt │ │ │ └── TasksRepository.kt │ │ └── viewmodel │ │ │ └── RecentsViewData.kt │ │ ├── task │ │ ├── thumbnail │ │ │ ├── TaskThumbnailUiState.kt │ │ │ ├── TaskThumbnailView.kt │ │ │ ├── TaskThumbnailViewModel.kt │ │ │ └── data │ │ │ │ └── TaskThumbnailDataSource.kt │ │ └── viewmodel │ │ │ └── TaskViewData.kt │ │ ├── util │ │ ├── ActiveGestureErrorDetector.java │ │ ├── ActiveGestureLog.java │ │ ├── ActivityInitListener.java │ │ ├── AnimUtils.java │ │ ├── AnimatorControllerWithResistance.java │ │ ├── AppPairLaunchTimings.kt │ │ ├── AppPairsController.java │ │ ├── AssistContentRequester.java │ │ ├── AssistStateManager.java │ │ ├── AssistUtils.java │ │ ├── AsyncClockEventDelegate.java │ │ ├── BaseDepthController.java │ │ ├── BaseUnfoldMoveFromCenterAnimator.java │ │ ├── BorderAnimator.kt │ │ ├── CachedEventDispatcher.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 │ │ ├── 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 │ │ ├── AllAppsEduView.java │ │ ├── ClearAllButton.java │ │ ├── DesktopTaskView.kt │ │ ├── DigitalWellBeingToast.java │ │ ├── FloatingAppPairBackground.kt │ │ ├── FloatingAppPairView.kt │ │ ├── FloatingFullscreenAppPairBackground.kt │ │ ├── FloatingTaskThumbnailView.java │ │ ├── FloatingTaskView.java │ │ ├── FloatingWidgetBackgroundView.java │ │ ├── FloatingWidgetView.java │ │ ├── GroupedTaskView.kt │ │ ├── IconAppChipView.java │ │ ├── IconView.java │ │ ├── LaunchableConstraintLayout.kt │ │ ├── LauncherRecentsView.java │ │ ├── OverviewActionsView.java │ │ ├── RecentsView.java │ │ ├── RecentsViewContainer.java │ │ ├── SplitInstructionsView.java │ │ ├── SplitPlaceholderView.java │ │ ├── TaskMenuView.java │ │ ├── TaskMenuViewWithArrow.kt │ │ ├── TaskThumbnailViewDeprecated.java │ │ ├── TaskView.kt │ │ └── TaskViewIcon.java └── tests │ ├── OWNERS │ ├── multivalentTests │ ├── multivalentTests1.iml │ ├── multivalentTestsForDevice.iml │ └── src │ │ └── com │ │ └── android │ │ ├── launcher3 │ │ ├── model │ │ │ └── AppEventProducerTest.java │ │ └── taskbar │ │ │ ├── RecentsHitboxExtenderTest.java │ │ │ ├── TaskbarNavButtonControllerTest.java │ │ │ ├── TaskbarUnitTestRule.kt │ │ │ ├── allapps │ │ │ └── TaskbarAllAppsControllerTest.kt │ │ │ ├── bubbles │ │ │ ├── OWNERS │ │ │ └── animation │ │ │ │ └── BubbleBarViewAnimatorTest.kt │ │ │ ├── navbutton │ │ │ └── NavButtonLayoutFactoryTest.kt │ │ │ └── overlay │ │ │ └── TaskbarOverlayControllerTest.kt │ │ └── quickstep │ │ ├── AllAppsActionManagerTest.kt │ │ ├── FullscreenDrawParamsTest.kt │ │ ├── HotseatWidthCalculationTest.kt │ │ ├── NavigationBarRotationContextTest.java │ │ ├── RobolectricTest.kt │ │ ├── orientation │ │ ├── LandscapePagedViewHandlerTest.kt │ │ └── SeascapePagedViewHandlerTest.kt │ │ ├── recents │ │ └── data │ │ │ ├── FakeRecentTasksDataSource.kt │ │ │ ├── FakeTaskThumbnailDataSource.kt │ │ │ ├── FakeTasksRepository.kt │ │ │ └── TasksRepositoryTest.kt │ │ ├── task │ │ └── thumbnail │ │ │ └── TaskThumbnailViewModelTest.kt │ │ └── util │ │ ├── AppPairsControllerTest.kt │ │ ├── RecentsOrientedStateTest.java │ │ ├── SplitAnimationControllerTest.kt │ │ ├── SplitSelectStateControllerTest.kt │ │ ├── TaskGridNavHelperTest.java │ │ ├── TaskKeyByLastActiveTimeCacheTest.java │ │ └── TaskViewSimulatorTest.java │ ├── multivalentTestsForDevice │ ├── src │ └── com │ │ └── android │ │ ├── launcher3 │ │ ├── model │ │ │ ├── QuickstepModelDelegateTest.kt │ │ │ ├── WidgetsPredicationUpdateTaskTest.java │ │ │ └── WidgetsPredictionsRequesterTest.kt │ │ ├── taskbar │ │ │ ├── FallbackTaskbarUIControllerTest.kt │ │ │ ├── TaskbarBaseTestCase.kt │ │ │ ├── TaskbarHoverToolTipControllerTest.java │ │ │ ├── TaskbarKeyguardControllerTest.kt │ │ │ └── TaskbarRecentAppsControllerTest.kt │ │ └── testcomponent │ │ │ └── ExcludeFromRecentsTestActivity.java │ │ └── quickstep │ │ ├── AbstractQuickStepTest.java │ │ ├── AbstractTaplTestsTaskbar.java │ │ ├── DesktopSystemShortcutTest.kt │ │ ├── FallbackRecentsTest.java │ │ ├── NavigationModeSwitchRule.java │ │ ├── OrientationTouchTransformerTest.java │ │ ├── RecentTasksListTest.java │ │ ├── RecentsAnimationDeviceStateTest.kt │ │ ├── RecentsModelTest.java │ │ ├── TaplDigitalWellBeingToastTest.java │ │ ├── TaplOverviewIconTest.java │ │ ├── TaplPrivateSpaceTest.java │ │ ├── TaplStartLauncherViaGestureTests.java │ │ ├── TaplTestsKeyboardQuickSwitch.java │ │ ├── TaplTestsPersistentTaskbar.java │ │ ├── TaplTestsQuickstep.java │ │ ├── TaplTestsSplitscreen.java │ │ ├── TaplTestsTaskbar.java │ │ ├── TaplTestsTrackpad.java │ │ ├── TaplTestsTransientTaskbar.java │ │ ├── TaskThumbnailCacheTest.java │ │ ├── TaskViewTest.java │ │ ├── TaskbarModeSwitchRule.java │ │ ├── taskbar │ │ ├── controllers │ │ │ └── TaskbarPinningControllerTest.kt │ │ └── customization │ │ │ └── TaskbarSpecsEvaluatorTest.kt │ │ └── util │ │ ├── GestureExclusionManagerTest.kt │ │ ├── SplitSelectDataHolderTest.kt │ │ ├── TaplTestsPredictionRow.java │ │ └── unfold │ │ └── PreemptiveUnfoldTransitionProgressProviderTest.kt │ └── tests1.iml ├── res ├── anim-v33 │ ├── shared_x_axis_activity_close_enter.xml │ ├── shared_x_axis_activity_close_exit.xml │ ├── shared_x_axis_activity_open_enter.xml │ └── shared_x_axis_activity_open_exit.xml ├── 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.xml │ ├── material_color_surface_bright.xml │ ├── material_color_surface_container.xml │ ├── material_color_surface_container_high.xml │ ├── material_color_surface_container_highest.xml │ ├── material_color_surface_container_low.xml │ ├── material_color_surface_container_lowest.xml │ ├── material_color_surface_dim.xml │ ├── material_color_surface_inverse.xml │ ├── material_color_surface_variant.xml │ ├── popup_color_background.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.xml │ ├── material_color_surface_bright.xml │ ├── material_color_surface_container.xml │ ├── material_color_surface_container_high.xml │ ├── material_color_surface_container_highest.xml │ ├── material_color_surface_container_low.xml │ ├── material_color_surface_container_lowest.xml │ ├── material_color_surface_dim.xml │ ├── material_color_surface_inverse.xml │ ├── material_color_surface_variant.xml │ ├── overview_scrim.xml │ ├── overview_scrim_dark.xml │ ├── popup_color_background.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_color_background.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_button.xml │ └── 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 │ ├── arrow_toast_rounded_background.xml │ ├── bg_all_apps_button.xml │ ├── bg_all_apps_searchbox.xml │ ├── bg_celllayout.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_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 │ ├── deep_shortcuts_text_placeholder.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_caption_desktop_button_foreground.xml │ ├── ic_conversations_widget_category.xml │ ├── ic_corp.xml │ ├── ic_corp_off.xml │ ├── ic_deepshortcut_placeholder.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_note_taking_widget_category.xml │ ├── ic_palette.xml │ ├── ic_pin.xml │ ├── ic_plus.xml │ ├── ic_private_profile_app_scroller_badge.xml │ ├── ic_private_space_with_background.xml │ ├── ic_ps_settings.xml │ ├── ic_remove_no_shadow.xml │ ├── ic_select_windows.xml │ ├── ic_setting.xml │ ├── ic_split_exit.xml │ ├── ic_split_horizontal.xml │ ├── ic_split_vertical.xml │ ├── ic_taskbar_all_apps_button.xml │ ├── ic_taskbar_all_apps_search_button.xml │ ├── ic_touch.xml │ ├── ic_transient_taskbar_all_apps_button.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 │ ├── 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_surface_background.xml │ ├── widgets_tray_expand_button.xml │ ├── work_apps_toggle_background.xml │ ├── work_card.xml │ └── work_mode_fab_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 │ ├── 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 │ ├── 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 │ ├── page_indicator_dots.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_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_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 │ ├── 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-v33 │ └── style.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 │ ├── 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_6x5.xml │ ├── device_profiles.xml │ ├── dynamic_resources.xml │ ├── folder_shapes.xml │ ├── grayscale_icon_map.xml │ ├── launcher_preferences.xml │ ├── paddings_6x5.xml │ ├── paddings_handhelds.xml │ ├── split_configuration.xml │ └── widget_sections.xml ├── settings.gradle ├── 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.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 │ ├── Reorderable.java │ ├── SecondaryDropTarget.java │ ├── SessionCommitReceiver.java │ ├── ShortcutAndWidgetContainer.java │ ├── Utilities.java │ ├── UtilitiesKt.kt │ ├── Workspace.java │ ├── WorkspaceLayoutManager.java │ ├── WorkspaceStateTransitionAnimation.java │ ├── accessibility │ ├── AccessibleDragListenerAdapter.java │ ├── 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 │ ├── 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 │ ├── WorkModeSwitch.java │ ├── WorkPausedCard.java │ ├── WorkProfileManager.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 │ ├── 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 │ ├── ComponentWithLabel.java │ ├── ComponentWithLabelAndIcon.java │ ├── IconCache.java │ ├── LauncherActivityCachingLogic.java │ ├── LauncherIconProvider.java │ ├── LauncherIcons.java │ ├── MonochromeIconFactory.java │ └── ShortcutCachingLogic.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 │ ├── DeviceGridState.java │ ├── FirstScreenBroadcast.java │ ├── FirstScreenBroadcastHelper.kt │ ├── FirstScreenBroadcastModel.kt │ ├── GridBackupTable.java │ ├── GridSizeMigrationUtil.java │ ├── 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 │ ├── ShortcutsChangedTask.java │ ├── StringCache.java │ ├── UserLockStateChangedTask.java │ ├── UserManagerState.java │ ├── WidgetItem.java │ ├── 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 │ │ ├── WorkspaceItemFactory.java │ │ └── WorkspaceItemInfo.java │ ├── notification │ ├── NotificationGroup.java │ ├── NotificationKeyData.java │ └── NotificationListener.java │ ├── pageindicators │ ├── PageIndicator.java │ ├── PageIndicatorDots.java │ └── WorkspacePageIndicator.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.java │ └── 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 │ ├── 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 │ ├── ActivityTracker.java │ ├── ApiWrapper.java │ ├── BackPressHandler.java │ ├── CancellableTask.kt │ ├── CannedAnimationCoordinator.kt │ ├── CellAndSpan.java │ ├── CellContentDimensions.kt │ ├── ContentWriter.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 │ ├── 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 │ ├── 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 │ ├── 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 │ ├── FloatingIconView.java │ ├── FloatingSurfaceView.java │ ├── FloatingView.java │ ├── IconButtonView.java │ ├── IconLabelDotView.java │ ├── ListenerView.java │ ├── OptionsPopupView.java │ ├── RecyclerViewFastScroller.java │ ├── ScrimView.java │ ├── Snackbar.java │ ├── SpringRelativeLayout.java │ └── StickyHeaderLayout.java │ ├── widget │ ├── AddItemWidgetsBottomSheet.java │ ├── BaseLauncherAppWidgetHostView.java │ ├── BaseWidgetSheet.java │ ├── DatabaseWidgetPreviewLoader.java │ ├── LauncherAppWidgetHost.java │ ├── LauncherAppWidgetHostView.java │ ├── LauncherAppWidgetProviderInfo.java │ ├── LauncherWidgetHolder.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 │ │ ├── WidgetsListBaseEntry.java │ │ ├── WidgetsListContentEntry.java │ │ └── WidgetsListHeaderEntry.java │ ├── picker │ │ ├── OWNERS │ │ ├── OnHeaderClickListener.java │ │ ├── WidgetPagedView.java │ │ ├── WidgetRecommendationCategory.java │ │ ├── WidgetRecommendationCategoryProvider.java │ │ ├── WidgetRecommendationsView.java │ │ ├── WidgetsDiffCallback.java │ │ ├── WidgetsFullSheet.java │ │ ├── WidgetsListAdapter.java │ │ ├── WidgetsListDrawableState.java │ │ ├── WidgetsListHeader.java │ │ ├── WidgetsListHeaderHolder.java │ │ ├── WidgetsListHeaderViewHolderBinder.java │ │ ├── WidgetsListItemAnimator.java │ │ ├── WidgetsListTableView.java │ │ ├── WidgetsListTableViewHolderBinder.java │ │ ├── WidgetsRecommendationTableLayout.java │ │ ├── WidgetsRecyclerView.java │ │ ├── WidgetsRowViewHolder.java │ │ ├── WidgetsSpaceViewHolderBinder.java │ │ ├── WidgetsTwoPaneSheet.java │ │ ├── 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 │ └── uioverrides │ └── states │ ├── AllAppsState.java │ └── OverviewState.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 ├── systemUIPluginCore ├── Android.bp ├── AndroidManifest.xml ├── build.gradle ├── proguard.flags └── src │ └── com │ └── android │ └── systemui │ └── plugins │ ├── Plugin.java │ ├── PluginFragment.java │ ├── PluginLifecycleManager.java │ ├── PluginListener.java │ ├── PluginManager.java │ └── annotations │ ├── Dependencies.java │ ├── DependsOn.java │ ├── ProvidesInterface.java │ ├── Requirements.java │ └── Requires.java ├── system_ext └── com │ └── android │ ├── launcher3 │ ├── FeatureFlags.java │ ├── FeatureFlagsImpl.java │ └── Flags.java │ └── wm │ └── shell │ └── Flags.java ├── systemui_core └── shared │ ├── Android.bp │ ├── AndroidManifest.xml │ ├── proguard_flags.flags │ ├── res │ ├── values-my │ │ └── bools.xml │ └── values │ │ ├── attrs.xml │ │ ├── bools.xml │ │ └── ids.xml │ └── src │ └── com │ └── android │ └── systemui │ └── shared │ └── system │ └── SysUiStatsLog.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 │ │ │ ├── flagged_result5x5to5x8.db │ │ │ ├── result5x5to3x3.db │ │ │ ├── result5x5to4x7.db │ │ │ ├── result5x5to5x8.db │ │ │ └── test_launcher.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 │ │ ├── dummy_app.iml │ │ ├── dummy_app1.iml │ │ ├── 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 │ ├── multivalentTests.iml │ ├── multivalentTestsForDevice1.iml │ ├── 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 │ │ ├── LauncherPrefsTest.kt │ │ ├── UtilitiesKtTest.kt │ │ ├── UtilitiesTest.kt │ │ ├── allapps │ │ └── AlphabeticalAppsListTest.java │ │ ├── celllayout │ │ ├── CellLayoutTestCaseReader.java │ │ ├── CellLayoutTestUtils.java │ │ ├── CellPosMapperTest.java │ │ ├── FavoriteItemsTransaction.java │ │ ├── HotseatReorderUnitTest.kt │ │ ├── ReorderAlgorithmUnitTest.java │ │ ├── ReorderAlgorithmUnitTestCase.java │ │ ├── ReorderPreviewAnimationTest.kt │ │ ├── ReorderTestCase.java │ │ ├── UnitTestCellLayoutBuilderRule.kt │ │ ├── board │ │ │ ├── CellLayoutBoard.java │ │ │ ├── CellType.java │ │ │ ├── FolderPoint.java │ │ │ ├── IconPoint.java │ │ │ ├── IdenticalBoardComparator.kt │ │ │ ├── PermutedBoardComparator.kt │ │ │ ├── TestWorkspaceBuilder.java │ │ │ └── WidgetRect.java │ │ └── testgenerator │ │ │ ├── DeterministicRandomGenerator.kt │ │ │ ├── RandomBoardGenerator.kt │ │ │ └── RandomMultiBoardGenerator.kt │ │ ├── icons │ │ ├── FastBitmapDrawableTest.java │ │ ├── IconCacheTest.java │ │ └── UserBadgeDrawableTest.kt │ │ ├── logging │ │ ├── FileLogTest.java │ │ └── StartupLatencyLoggerTest.kt │ │ ├── model │ │ ├── AbstractWorkspaceModelTest.kt │ │ ├── DatabaseHelperTest.kt │ │ ├── FactitiousDbController.kt │ │ ├── GridSizeMigrationUtilTest.kt │ │ └── data │ │ │ └── ItemInfoWithIconTest.kt │ │ ├── popup │ │ └── PopupPopulatorTest.java │ │ ├── responsive │ │ ├── AllAppsSpecsTest.kt │ │ ├── CalculatedAllAppsSpecTest.kt │ │ ├── CalculatedFolderSpecTest.kt │ │ ├── CalculatedHotseatSpecTest.kt │ │ ├── CalculatedWorkspaceSpecTest.kt │ │ ├── FolderSpecTest.kt │ │ ├── HotseatSpecsProviderTest.kt │ │ ├── ResponsiveCellSpecsProviderTest.kt │ │ ├── ResponsiveSpecsProviderTest.kt │ │ ├── SizeSpecTest.kt │ │ └── WorkspaceSpecsTest.kt │ │ ├── settings │ │ └── SettingsActivityTest.java │ │ ├── testcomponent │ │ ├── AppWidgetDynamicColors.java │ │ ├── AppWidgetHidden.java │ │ ├── AppWidgetNoConfig.java │ │ └── AppWidgetWithConfig.java │ │ ├── ui │ │ ├── ActivityAllAppsContainerViewTest.java │ │ ├── BubbleTextViewTest.java │ │ └── TestViewHelpers.java │ │ ├── util │ │ ├── ActivityContextWrapper.java │ │ ├── CancellableTaskTest.kt │ │ ├── CellContentDimensionsTest.kt │ │ ├── DisplayControllerTest.kt │ │ ├── GridOccupancyTest.java │ │ ├── IconSizeStepsTest.kt │ │ ├── IntArrayTest.java │ │ ├── IntSetTest.java │ │ ├── LauncherModelHelper.java │ │ ├── LauncherMultivalentJUnit.kt │ │ ├── LockedUserStateTest.kt │ │ ├── ModelTestExtensions.kt │ │ ├── MultiPropertyFactoryTest.kt │ │ ├── MultiScalePropertyTest.kt │ │ ├── PackageManagerHelperTest.java │ │ ├── PackageUserKeyTest.java │ │ ├── ReflectionHelpers.java │ │ ├── TestResourceHelper.kt │ │ ├── TestSandboxModelContextWrapper.java │ │ ├── TestUtil.java │ │ ├── TouchUtilTest.kt │ │ ├── WidgetUtils.java │ │ ├── rule │ │ │ ├── BackAndRestoreRule.kt │ │ │ ├── SetFlagsRuleExt.kt │ │ │ └── TestStabilityRule.java │ │ └── window │ │ │ └── WindowManagerProxyTest.kt │ │ └── widget │ │ ├── GeneratedPreviewTest.kt │ │ ├── LauncherAppWidgetProviderInfoTest.java │ │ ├── picker │ │ ├── OWNERS │ │ ├── WidgetImageViewTest.kt │ │ ├── WidgetRecommendationCategoryProviderTest.java │ │ ├── WidgetsListHeaderAccessibilityTest.java │ │ ├── WidgetsListHeaderViewHolderBinderTest.java │ │ ├── WidgetsListTableViewHolderBinderTest.java │ │ ├── model │ │ │ └── WidgetsListContentEntryTest.java │ │ ├── search │ │ │ ├── SimpleWidgetsSearchAlgorithmTest.java │ │ │ └── WidgetsSearchBarControllerTest.java │ │ └── util │ │ │ ├── WidgetPreviewContainerSizesTest.kt │ │ │ └── WidgetsTableUtilsTest.java │ │ └── util │ │ └── WidgetDragScaleUtilsTest.kt ├── multivalentTestsForDevice ├── res │ ├── drawable │ │ ├── test_drawable_pin_item.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 │ ├── 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 │ │ ├── PrivateProfileManagerTest.java │ │ ├── PrivateSpaceHeaderViewTest.java │ │ ├── PrivateSpaceSettingsButtonTest.java │ │ ├── TaplAllAppsIconsWorkingTest.java │ │ ├── TaplKeyboardFocusTest.java │ │ └── TaplOpenCloseAllAppsTest.java │ │ ├── appiconmenu │ │ └── TaplAppIconMenuTest.java │ │ ├── backuprestore │ │ └── BackupAndRestoreDBSelectionTest.kt │ │ ├── celllayout │ │ ├── TaplReorderWidgetsTest.java │ │ └── testgenerator │ │ │ └── ValidGridMigrationTestCaseGenerator.kt │ │ ├── compat │ │ └── TaplPromiseIconUiTest.java │ │ ├── dragging │ │ ├── TaplDragTest.java │ │ └── TaplUninstallRemoveTest.java │ │ ├── folder │ │ ├── FolderNameProviderTest.java │ │ ├── PreviewBackgroundTest.java │ │ └── PreviewItemManagerTest.kt │ │ ├── model │ │ ├── AddWorkspaceItemsTaskTest.kt │ │ ├── AsyncBindingTest.kt │ │ ├── CacheDataUpdatedTaskTest.java │ │ ├── DbDowngradeHelperTest.java │ │ ├── DefaultLayoutProviderTest.java │ │ ├── FirstScreenBroadcastHelperTest.kt │ │ ├── FolderIconLoadTest.kt │ │ ├── GridMigrationTest.kt │ │ ├── LoaderCursorTest.java │ │ ├── LoaderTaskTest.kt │ │ ├── ModelMultiCallbacksTest.java │ │ ├── PackageInstallStateChangedTaskTest.java │ │ ├── WorkspaceItemProcessorTest.kt │ │ ├── WorkspaceItemSpaceFinderTest.kt │ │ └── gridmigration │ │ │ ├── GridMigrationUtils.kt │ │ │ └── ValidGridMigrationUnitTest.kt │ │ ├── nonquickstep │ │ ├── DeviceProfileDumpTest.kt │ │ └── HotseatWidthCalculationTest.kt │ │ ├── popup │ │ └── SystemShortcutTest.java │ │ ├── provider │ │ ├── LauncherDbUtilsTest.java │ │ └── RestoreDbTaskTest.java │ │ ├── search │ │ └── StringMatcherUtilityTest.java │ │ ├── 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 │ │ ├── TouchEventGenerator.java │ │ ├── UnarchiveBroadcastReceiver.java │ │ └── WidgetConfigActivity.java │ │ ├── touch │ │ └── SingleAxisSwipeDetectorTest.java │ │ ├── ui │ │ ├── AbstractLauncherUiTest.java │ │ ├── PortraitLandscapeRunner.java │ │ ├── TaplTestsLauncher3Test.java │ │ ├── TaplWorkProfileTest.java │ │ ├── widget │ │ │ ├── TaplAddConfigWidgetTest.java │ │ │ ├── TaplAddWidgetTest.java │ │ │ ├── TaplBindWidgetTest.java │ │ │ ├── TaplRequestPinItemTest.java │ │ │ └── TaplWidgetPickerTest.java │ │ └── workspace │ │ │ ├── TaplThemeIconsTest.java │ │ │ ├── TaplTwoPanelWorkspaceTest.java │ │ │ └── TaplWorkspaceTest.java │ │ ├── util │ │ ├── ItemInflaterTest.kt │ │ ├── TestConstants.java │ │ ├── Wait.java │ │ ├── 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 │ │ └── 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 │ │ ├── OverviewTaskMenuItem.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 └── tests.iml └── tools ├── checkstyle.xml ├── checkstyle_suppression.xml └── print_db.py /.gitignore: -------------------------------------------------------------------------------- 1 | # Created by .ignore support plugin (hsz.mobi) 2 | .gradle 3 | .idea 4 | build 5 | Launcher3_mx.iml 6 | gradlew 7 | gradlew.bat 8 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /animationlib/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 20 | 21 | -------------------------------------------------------------------------------- /animationlib/TEST_MAPPING: -------------------------------------------------------------------------------- 1 | { 2 | "presubmit": [ 3 | { 4 | "name": "animationlib_tests" 5 | } 6 | ] 7 | } 8 | -------------------------------------------------------------------------------- /animationlib/res/interpolator/emphasized_interpolator.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | -------------------------------------------------------------------------------- /animationlib/res/interpolator/standard_accelerate_interpolator.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | -------------------------------------------------------------------------------- /animationlib/res/interpolator/standard_decelerate_interpolator.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | -------------------------------------------------------------------------------- /animationlib/res/interpolator/standard_interpolator.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 23 | -------------------------------------------------------------------------------- /animationlib/tests/robolectric/config/robolectric.properties: -------------------------------------------------------------------------------- 1 | sdk=NEWEST_SDK 2 | shadows=com.android.app.animation.robolectric.ShadowAnimationUtils2 3 | -------------------------------------------------------------------------------- /animationlib/tests/robolectric/src/com/android/app/animation/robolectric/ShadowAnimationUtils2.kt: -------------------------------------------------------------------------------- 1 | package com.android.app.animation.robolectric 2 | 3 | import android.view.animation.AnimationUtils 4 | import org.robolectric.annotation.Implements 5 | import org.robolectric.shadows.ShadowAnimationUtils 6 | 7 | /** 8 | * This shadow overwrites [ShadowAnimationUtils] and ensures that the real implementation of 9 | * [AnimationUtils] is used in tests. 10 | */ 11 | @Implements(AnimationUtils::class) 12 | class ShadowAnimationUtils2 13 | -------------------------------------------------------------------------------- /buglist.txt: -------------------------------------------------------------------------------- 1 | 171450807 2 | 170675311 3 | 170338029 4 | 170338170 5 | 160544577 6 | 171171594 7 | 170488559 8 | 171131394 9 | 171131394 10 | 171026321 11 | 170648272 12 | 170752716 13 | 170611866 14 | 170702596 15 | 170487752 16 | 170665892 17 | 168608912 18 | 170636685 19 | 169771796 20 | 141126144 21 | 166614700 22 | 168805872 23 | 170263425 24 | 169221288 25 | 143965596 26 | 169221287 27 | 167259591 28 | 156044202 29 | 169438169 30 | 164926736 31 | 168653219 32 | 169963211 33 | 170121063 34 | 169988381 35 | 169980192 36 | 169221288 37 | 169385783 38 | 168167693 39 | 169796517 40 | 169330678 41 | 168818961 42 | 168608912 43 | -------------------------------------------------------------------------------- /buglist_unique.txt: -------------------------------------------------------------------------------- 1 | 141126144 2 | 143965596 3 | 156044202 4 | 160544577 5 | 164926736 6 | 166614700 7 | 167259591 8 | 168167693 9 | 168608912 10 | 168653219 11 | 168805872 12 | 168818961 13 | 169221287 14 | 169221288 15 | 169330678 16 | 169385783 17 | 169438169 18 | 169771796 19 | 169796517 20 | 169963211 21 | 169980192 22 | 169988381 23 | 170121063 24 | 170263425 25 | 170338029 26 | 170338170 27 | 170487752 28 | 170488559 29 | 170611866 30 | 170636685 31 | 170648272 32 | 170665892 33 | 170675311 34 | 170702596 35 | 170752716 36 | 171026321 37 | 171131394 38 | 171171594 39 | 171450807 40 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /gradle.properties: -------------------------------------------------------------------------------- 1 | # Until all the dependencies move to android X 2 | android.useAndroidX = true 3 | android.enableJetifier = true 4 | org.gradle.parallel=true 5 | 6 | ANDROID_X_VERSION=1+ 7 | 8 | #GRADLE_CLASS_PATH=com.android.tools.build:gradle:3.5.1 9 | #GRADLE_CLASS_PATH=com.android.tools.build:gradle:7.4.1 10 | GRADLE_CLASS_PATH=com.android.tools.build:gradle:8.4.1 11 | 12 | #PROTOBUF_CLASS_PATH=com.google.protobuf:protobuf-gradle-plugin:0.8.8 13 | #PROTOBUF_CLASS_PATH=com.google.protobuf:protobuf-gradle-plugin:0.8.18 14 | PROTOBUF_CLASS_PATH=com.google.protobuf:protobuf-gradle-plugin:0.9.4 15 | #PROTOBUF_DEPENDENCY=com.google.protobuf.nano:protobuf-javanano:3.0.0-alpha-7 16 | PROTOBUF_DEPENDENCY=com.google.protobuf.nano:protobuf-javanano:3.1.0 17 | 18 | BUILD_TOOLS_VERSION=28.0.3 19 | COMPILE_SDK=android-35 20 | #KOTLIN=org.jetbrains.kotlin:kotlin-gradle-plugin:1.7.10 21 | KOTLIN=org.jetbrains.kotlin:kotlin-gradle-plugin:2.0.0 22 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Launcher3-dev/Launcher3/b725301b436a3bacdabb8a8c49dd2d2647441356/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | -------------------------------------------------------------------------------- /iconloaderlib/.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .project 3 | .classpath 4 | .project.properties 5 | gen/ 6 | bin/ 7 | .idea/ 8 | .gradle/ 9 | local.properties 10 | gradle/ 11 | build/ 12 | gradlew* 13 | .DS_Store 14 | -------------------------------------------------------------------------------- /iconloaderlib/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 20 | 21 | -------------------------------------------------------------------------------- /iconloaderlib/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'com.android.library' 3 | } 4 | 5 | android { 6 | namespace = "com.android.launcher3.icons" 7 | compileSdkVersion COMPILE_SDK 8 | 9 | defaultConfig { 10 | minSdkVersion 26 11 | targetSdkVersion 35 12 | } 13 | 14 | sourceSets { 15 | main { 16 | java.srcDirs = ['src', 'src_full_lib'] 17 | manifest.srcFile 'AndroidManifest.xml' 18 | res.srcDirs = ['res'] 19 | } 20 | } 21 | lint { 22 | abortOnError false 23 | } 24 | compileOptions { 25 | sourceCompatibility JavaVersion.VERSION_17 26 | targetCompatibility JavaVersion.VERSION_17 27 | } 28 | 29 | tasks.withType(JavaCompile) { 30 | options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation" 31 | } 32 | } 33 | 34 | dependencies { 35 | implementation "androidx.core:core:1.13.1" 36 | } 37 | -------------------------------------------------------------------------------- /iconloaderlib/res/values/attrs.xml: -------------------------------------------------------------------------------- 1 | 2 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /iconloaderlib/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 18 | 24dp 19 | 20 | -------------------------------------------------------------------------------- /iconloaderlib/src/com/android/launcher3/util/SafeCloseable.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2019 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; 18 | 19 | /** 20 | * Extension of closeable which does not throw an exception 21 | */ 22 | public interface SafeCloseable extends AutoCloseable { 23 | 24 | @Override 25 | void close(); 26 | } 27 | -------------------------------------------------------------------------------- /image/launcher01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Launcher3-dev/Launcher3/b725301b436a3bacdabb8a8c49dd2d2647441356/image/launcher01.png -------------------------------------------------------------------------------- /image/launcher02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Launcher3-dev/Launcher3/b725301b436a3bacdabb8a8c49dd2d2647441356/image/launcher02.png -------------------------------------------------------------------------------- /image/launcher03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Launcher3-dev/Launcher3/b725301b436a3bacdabb8a8c49dd2d2647441356/image/launcher03.png -------------------------------------------------------------------------------- /image/launcher04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Launcher3-dev/Launcher3/b725301b436a3bacdabb8a8c49dd2d2647441356/image/launcher04.png -------------------------------------------------------------------------------- /image/launcher05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Launcher3-dev/Launcher3/b725301b436a3bacdabb8a8c49dd2d2647441356/image/launcher05.png -------------------------------------------------------------------------------- /image/launcher06.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Launcher3-dev/Launcher3/b725301b436a3bacdabb8a8c49dd2d2647441356/image/launcher06.png -------------------------------------------------------------------------------- /image/launcher07.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Launcher3-dev/Launcher3/b725301b436a3bacdabb8a8c49dd2d2647441356/image/launcher07.png -------------------------------------------------------------------------------- /image/launcher08.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Launcher3-dev/Launcher3/b725301b436a3bacdabb8a8c49dd2d2647441356/image/launcher08.png -------------------------------------------------------------------------------- /image/launcher09.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Launcher3-dev/Launcher3/b725301b436a3bacdabb8a8c49dd2d2647441356/image/launcher09.png -------------------------------------------------------------------------------- /image/launcher10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Launcher3-dev/Launcher3/b725301b436a3bacdabb8a8c49dd2d2647441356/image/launcher10.png -------------------------------------------------------------------------------- /local.properties: -------------------------------------------------------------------------------- 1 | ## This file must *NOT* be checked into Version Control Systems, 2 | # as it contains information specific to your local configuration. 3 | # 4 | # Location of the SDK. This is only used by Gradle. 5 | # For customization when using a Version Control System, please read the 6 | # header note. 7 | #Thu Jun 20 23:21:48 CST 2024 8 | sdk.dir=/Users/yuchuan/Library/Android/sdk 9 | -------------------------------------------------------------------------------- /prebuilts/libs/framework-14.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Launcher3-dev/Launcher3/b725301b436a3bacdabb8a8c49dd2d2647441356/prebuilts/libs/framework-14.jar -------------------------------------------------------------------------------- /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/menu_item_hover_state_color.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /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/drawable-v28/gesture_tutorial_action_button_background.xml: -------------------------------------------------------------------------------- 1 | 16 | 18 | 19 | -------------------------------------------------------------------------------- /quickstep/res/drawable/bg_circle.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 19 | 20 | -------------------------------------------------------------------------------- /quickstep/res/drawable/bg_sandbox_close_button.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | -------------------------------------------------------------------------------- /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_ripple.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /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/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/floating_header_content.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 9 | 10 | 14 | 15 | -------------------------------------------------------------------------------- /quickstep/res/layout/gesture_tutorial_activity.xml: -------------------------------------------------------------------------------- 1 | 16 | -------------------------------------------------------------------------------- /quickstep/res/layout/predicted_app_icon.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /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/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/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/tests/OWNERS: -------------------------------------------------------------------------------- 1 | vadimt@google.com 2 | sunnygoyal@google.com 3 | winsonc@google.com 4 | hyunyoungs@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.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /res/color-night-v31/material_color_surface_bright.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /res/color-night-v31/material_color_surface_container.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /res/color-night-v31/material_color_surface_container_high.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /res/color-night-v31/material_color_surface_container_highest.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /res/color-night-v31/material_color_surface_container_low.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /res/color-night-v31/material_color_surface_container_lowest.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /res/color-night-v31/material_color_surface_dim.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /res/color-night-v31/material_color_surface_inverse.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /res/color-night-v31/material_color_surface_variant.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /res/color-night-v31/popup_color_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 20 | 21 | -------------------------------------------------------------------------------- /res/color-night-v31/popup_shade_first.xml: -------------------------------------------------------------------------------- 1 | 15 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /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.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /res/color-v31/material_color_surface_bright.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /res/color-v31/material_color_surface_container.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /res/color-v31/material_color_surface_container_high.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /res/color-v31/material_color_surface_container_highest.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /res/color-v31/material_color_surface_container_low.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /res/color-v31/material_color_surface_container_lowest.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /res/color-v31/material_color_surface_dim.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /res/color-v31/material_color_surface_inverse.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /res/color-v31/material_color_surface_variant.xml: -------------------------------------------------------------------------------- 1 | 2 | 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_color_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 20 | 21 | -------------------------------------------------------------------------------- /res/color-v31/popup_shade_first.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /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/overview_button.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 8 | 12 | -------------------------------------------------------------------------------- /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_color_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /res/color/popup_shade_first.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /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/widgets_picker_scrim.xml: -------------------------------------------------------------------------------- 1 | 2 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /res/drawable-hdpi/ic_widget_resize_handle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Launcher3-dev/Launcher3/b725301b436a3bacdabb8a8c49dd2d2647441356/res/drawable-hdpi/ic_widget_resize_handle.png -------------------------------------------------------------------------------- /res/drawable-mdpi/ic_widget_resize_handle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Launcher3-dev/Launcher3/b725301b436a3bacdabb8a8c49dd2d2647441356/res/drawable-mdpi/ic_widget_resize_handle.png -------------------------------------------------------------------------------- /res/drawable-xhdpi/ic_widget_resize_handle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Launcher3-dev/Launcher3/b725301b436a3bacdabb8a8c49dd2d2647441356/res/drawable-xhdpi/ic_widget_resize_handle.png -------------------------------------------------------------------------------- /res/drawable-xxhdpi/ic_widget_resize_handle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Launcher3-dev/Launcher3/b725301b436a3bacdabb8a8c49dd2d2647441356/res/drawable-xxhdpi/ic_widget_resize_handle.png -------------------------------------------------------------------------------- /res/drawable-xxxhdpi/ic_widget_resize_handle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Launcher3-dev/Launcher3/b725301b436a3bacdabb8a8c49dd2d2647441356/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/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_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/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/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.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/Launcher3-dev/Launcher3/b725301b436a3bacdabb8a8c49dd2d2647441356/res/mipmap-hdpi/ic_launcher_home_foreground.png -------------------------------------------------------------------------------- /res/mipmap-mdpi/ic_launcher_home_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Launcher3-dev/Launcher3/b725301b436a3bacdabb8a8c49dd2d2647441356/res/mipmap-mdpi/ic_launcher_home_foreground.png -------------------------------------------------------------------------------- /res/mipmap-xhdpi/ic_launcher_home_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Launcher3-dev/Launcher3/b725301b436a3bacdabb8a8c49dd2d2647441356/res/mipmap-xhdpi/ic_launcher_home_foreground.png -------------------------------------------------------------------------------- /res/mipmap-xxhdpi/ic_launcher_home_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Launcher3-dev/Launcher3/b725301b436a3bacdabb8a8c49dd2d2647441356/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/xml/backupscheme.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /settings.gradle: -------------------------------------------------------------------------------- 1 | include ':IconLoader' 2 | project(':IconLoader').projectDir = new File(rootDir, 'iconloaderlib') 3 | 4 | //include ':SharedLibWrapper' 5 | //project(':SharedLibWrapper').projectDir = new File(rootDir, 'SharedLibWrapper') 6 | 7 | include ':systemUIPluginCore' 8 | include ':animationlib' -------------------------------------------------------------------------------- /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/OnAlarmListener.java: -------------------------------------------------------------------------------- 1 | package com.android.launcher3; 2 | 3 | public interface OnAlarmListener { 4 | public void onAlarm(Alarm alarm); 5 | } 6 | -------------------------------------------------------------------------------- /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_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 | -------------------------------------------------------------------------------- /systemUIPluginCore/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 20 | 21 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /systemUIPluginCore/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'com.android.library' 3 | id 'org.jetbrains.kotlin.android' 4 | } 5 | 6 | android { 7 | compileSdkVersion COMPILE_SDK 8 | namespace "com.android.systemui.plugin_core" 9 | 10 | defaultConfig { 11 | minSdkVersion 26 12 | targetSdkVersion 34 13 | versionCode 1 14 | versionName "1.0" 15 | } 16 | buildFeatures { 17 | aidl true 18 | } 19 | sourceSets { 20 | main { 21 | java.srcDirs = ['src'] 22 | aidl.srcDirs = ['src'] 23 | manifest.srcFile 'AndroidManifest.xml' 24 | } 25 | } 26 | } 27 | 28 | //addFrameworkJar('framework-14.jar') 29 | //compileOnlyCommonJars() 30 | -------------------------------------------------------------------------------- /systemUIPluginCore/proguard.flags: -------------------------------------------------------------------------------- 1 | # R8's full mode is a bit more aggressive in stripping annotations, but the 2 | # SystemUI plugin architecture requires these annotations at runtime. The 3 | # following rules are the minimal set necessary to ensure compatibility. 4 | # For more details, see: 5 | # https://r8.googlesource.com/r8/+/refs/heads/master/compatibility-faq.md#r8-full-mode 6 | -keepattributes RuntimeVisible*Annotation*,AnnotationDefault 7 | 8 | -keep interface com.android.systemui.plugins.annotations.** { 9 | *; 10 | } 11 | -keep,allowshrinking,allowoptimization,allowobfuscation,allowaccessmodification @com.android.systemui.plugins.annotations.** class * 12 | -------------------------------------------------------------------------------- /system_ext/com/android/wm/shell/Flags.java: -------------------------------------------------------------------------------- 1 | package com.android.wm.shell; 2 | 3 | /** 4 | * Created by yuchuan 5 | * DATE 2024/9/26 6 | * TIME 22:14 7 | */ 8 | public class Flags { 9 | 10 | public static boolean enableTaskbarNavbarUnification() { 11 | return false; 12 | } 13 | 14 | public static boolean enableAppPairs() { 15 | return false; 16 | } 17 | 18 | public static boolean enableSplitContextual() { 19 | return false; 20 | } 21 | 22 | public static boolean enableTinyTaskbar() { 23 | return false; 24 | } 25 | 26 | public static boolean enableLeftRightSplitInPortrait() { 27 | return false; 28 | } 29 | 30 | public static boolean enableRetrievableBubbles() { 31 | return false; 32 | } 33 | 34 | public static boolean generatedPreviews() { 35 | return false; 36 | } 37 | 38 | 39 | } 40 | -------------------------------------------------------------------------------- /systemui_core/shared/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /systemui_core/shared/proguard_flags.flags: -------------------------------------------------------------------------------- 1 | -keep class * implements com.android.systemui.flags.ParcelableFlag -------------------------------------------------------------------------------- /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/Launcher3-dev/Launcher3/b725301b436a3bacdabb8a8c49dd2d2647441356/tests/assets/databases/BackupAndRestore/launcher.db -------------------------------------------------------------------------------- /tests/assets/databases/BackupAndRestore/launcher_3_by_3.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Launcher3-dev/Launcher3/b725301b436a3bacdabb8a8c49dd2d2647441356/tests/assets/databases/BackupAndRestore/launcher_3_by_3.db -------------------------------------------------------------------------------- /tests/assets/databases/BackupAndRestore/launcher_4_by_4.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Launcher3-dev/Launcher3/b725301b436a3bacdabb8a8c49dd2d2647441356/tests/assets/databases/BackupAndRestore/launcher_4_by_4.db -------------------------------------------------------------------------------- /tests/assets/databases/BackupAndRestore/launcher_4_by_5.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Launcher3-dev/Launcher3/b725301b436a3bacdabb8a8c49dd2d2647441356/tests/assets/databases/BackupAndRestore/launcher_4_by_5.db -------------------------------------------------------------------------------- /tests/assets/databases/GridMigrationTest/flagged_result5x5to5x8.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Launcher3-dev/Launcher3/b725301b436a3bacdabb8a8c49dd2d2647441356/tests/assets/databases/GridMigrationTest/flagged_result5x5to5x8.db -------------------------------------------------------------------------------- /tests/assets/databases/GridMigrationTest/result5x5to3x3.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Launcher3-dev/Launcher3/b725301b436a3bacdabb8a8c49dd2d2647441356/tests/assets/databases/GridMigrationTest/result5x5to3x3.db -------------------------------------------------------------------------------- /tests/assets/databases/GridMigrationTest/result5x5to4x7.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Launcher3-dev/Launcher3/b725301b436a3bacdabb8a8c49dd2d2647441356/tests/assets/databases/GridMigrationTest/result5x5to4x7.db -------------------------------------------------------------------------------- /tests/assets/databases/GridMigrationTest/result5x5to5x8.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Launcher3-dev/Launcher3/b725301b436a3bacdabb8a8c49dd2d2647441356/tests/assets/databases/GridMigrationTest/result5x5to5x8.db -------------------------------------------------------------------------------- /tests/assets/databases/GridMigrationTest/test_launcher.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Launcher3-dev/Launcher3/b725301b436a3bacdabb8a8c49dd2d2647441356/tests/assets/databases/GridMigrationTest/test_launcher.db -------------------------------------------------------------------------------- /tests/config/robolectric.properties: -------------------------------------------------------------------------------- 1 | sdk=NEWEST_SDK 2 | -------------------------------------------------------------------------------- /tests/multivalentTests/dummy_app/dummy_app.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /tests/multivalentTests/dummy_app/dummy_app1.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /tests/multivalentTests/dummy_app/res/mipmap-xxhdpi/ic_launcher1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Launcher3-dev/Launcher3/b725301b436a3bacdabb8a8c49dd2d2647441356/tests/multivalentTests/dummy_app/res/mipmap-xxhdpi/ic_launcher1.png -------------------------------------------------------------------------------- /tests/multivalentTests/dummy_app/res/mipmap-xxhdpi/ic_launcher2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Launcher3-dev/Launcher3/b725301b436a3bacdabb8a8c49dd2d2647441356/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/Launcher3-dev/Launcher3/b725301b436a3bacdabb8a8c49dd2d2647441356/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/Launcher3-dev/Launcher3/b725301b436a3bacdabb8a8c49dd2d2647441356/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/Launcher3-dev/Launcher3/b725301b436a3bacdabb8a8c49dd2d2647441356/tests/multivalentTests/dummy_app/res/mipmap-xxxhdpi/ic_launcher1.png -------------------------------------------------------------------------------- /tests/multivalentTests/dummy_app/res/mipmap-xxxhdpi/ic_launcher2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Launcher3-dev/Launcher3/b725301b436a3bacdabb8a8c49dd2d2647441356/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/Launcher3-dev/Launcher3/b725301b436a3bacdabb8a8c49dd2d2647441356/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/Launcher3-dev/Launcher3/b725301b436a3bacdabb8a8c49dd2d2647441356/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/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/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/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/Launcher3-dev/Launcher3/b725301b436a3bacdabb8a8c49dd2d2647441356/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 | --------------------------------------------------------------------------------