From 1f8f88696b8e19dda37b4b3defdc91d557e424bc Mon Sep 17 00:00:00 2001 From: Brandon Dayauon Date: Thu, 2 May 2024 16:24:20 -0700 Subject: [PATCH] Create an alpha letter scroller - The function used is a raised cosine function to determine the sections to animate. Tested flag: adb shell device_config put launcher com.android.launcher3.letter_fast_scroller true Based on recent figmaspec, size of selected letter is 28dp and regular is 20dp. That means scaling should be 28/20. Colors are: onSurface for letter surfaceContainer for background. Figma shows selected colors are materialColorOnSecondary bug:358673724 Test manually: https://drive.google.com/file/d/1gvJd5KoK8X_Sv8jXg1cZ65R4AuqHuvcd/view?usp=sharing Flag: com.android.launcher3.letter_fast_scroller Change-Id: Ia86eb0e8c41bc043fda3c44aeaf59e204429f337 --- aconfig/launcher.aconfig | 7 + res/drawable/bg_letter_list_text.xml | 23 +++ res/layout/all_apps_fast_scroller.xml | 13 ++ .../fast_scroller_letter_list_text_view.xml | 24 ++++ res/values/dimens.xml | 5 + .../launcher3/FastScrollRecyclerView.java | 12 +- .../allapps/ActivityAllAppsContainerView.java | 19 ++- .../allapps/AllAppsRecyclerView.java | 88 ++++++++++++ .../allapps/AlphabeticalAppsList.java | 6 + .../launcher3/allapps/LetterListTextView.java | 133 ++++++++++++++++++ .../views/RecyclerViewFastScroller.java | 99 +++++++++++-- .../widget/picker/WidgetsFullSheet.java | 7 +- 12 files changed, 415 insertions(+), 21 deletions(-) create mode 100644 res/drawable/bg_letter_list_text.xml create mode 100644 res/layout/fast_scroller_letter_list_text_view.xml create mode 100644 src/com/android/launcher3/allapps/LetterListTextView.java diff --git a/aconfig/launcher.aconfig b/aconfig/launcher.aconfig index 0df6c368ba..be8ebbbdfc 100644 --- a/aconfig/launcher.aconfig +++ b/aconfig/launcher.aconfig @@ -332,3 +332,10 @@ flag { purpose: PURPOSE_BUGFIX } } + +flag { + name: "letter_fast_scroller" + namespace: "launcher" + description: "Change fast scroller to a lettered list" + bug: "358673724" +} diff --git a/res/drawable/bg_letter_list_text.xml b/res/drawable/bg_letter_list_text.xml new file mode 100644 index 0000000000..427702b045 --- /dev/null +++ b/res/drawable/bg_letter_list_text.xml @@ -0,0 +1,23 @@ + + + + + + \ No newline at end of file diff --git a/res/layout/all_apps_fast_scroller.xml b/res/layout/all_apps_fast_scroller.xml index 0f1d9330a6..7e16ca5c0b 100644 --- a/res/layout/all_apps_fast_scroller.xml +++ b/res/layout/all_apps_fast_scroller.xml @@ -36,4 +36,17 @@ android:layout_marginEnd="@dimen/fastscroll_end_margin" launcher:canThumbDetach="true" /> + \ No newline at end of file diff --git a/res/layout/fast_scroller_letter_list_text_view.xml b/res/layout/fast_scroller_letter_list_text_view.xml new file mode 100644 index 0000000000..493b6fcb7e --- /dev/null +++ b/res/layout/fast_scroller_letter_list_text_view.xml @@ -0,0 +1,24 @@ + + + + \ No newline at end of file diff --git a/res/values/dimens.xml b/res/values/dimens.xml index 5e1d8a5ad3..39e726803d 100644 --- a/res/values/dimens.xml +++ b/res/values/dimens.xml @@ -81,6 +81,11 @@ 32dp 19dp + 5dp + 14sp + -10dp + 20sp +