Commit Graph

11 Commits

Author SHA1 Message Date
Stevie Kideckel abd33b38e2 Use the LayoutManager as the source of truth for visible positions
During animations, the view group child may not correspond to the
visible views that appear at the top.

The previous logic is kept in the case that the layout manager returns
null for any reason, which can happen before layout has occurred for the
position.

Fix: 189588014
Test: verified locally
Change-Id: Ie8b5dcef50287e9e90a21f86e30a1ebcbbcba30f
2021-06-03 09:36:22 +00:00
Steven Ng e90dddaaa0 Fix full widgets picker fast scroller height.
1. Fix the app title to one line.
2. Use the measured height of a header view to estimate the available
   fast scroll bar height.

Test: Open full widgets picker. Scroll to the bottom by scroll gesture.
      Observe the fast scroll bar indicator is correctly shown.
      Scroll back to top and then use the fast scroll bar to scroll to
      the end of the page. Observe the last app row is aligned to the
      bottom of the page.
Bug: 188914448
Change-Id: I57a2419d1fbfc8f946a932eebfefb67ae0c07eb6
2021-05-24 18:05:56 +01:00
Steven Ng 095e7562a4 Fix UI overlapping and void space in the full widgets picker
The issue is caused by not updating the header container after widgets
recycler view items changed due to item click.

Test: Expand / collapse items in the full widgets picker. No UI
      overlapping or void space is observed.
Bug: 186121915
Change-Id: I6a12bbdcca921d66c6d62601bb59cea66a33640b
2021-05-07 10:21:24 +01:00
Alina Zaidi bfd56a6d59 Merge "Hide scroll bar if recycler view has no items." into sc-dev 2021-04-20 12:25:47 +00:00
Alina Zaidi c839676fa0 Hide scroll bar if recycler view has no items.
Bug: 185873180
Test: Manually tested
Change-Id: Id0b21b264417aff19cfdcb46228bb497310ccc1b
2021-04-20 09:39:52 +01:00
Alina Zaidi 1ccd7efaf0 Fix UI bugs for widget picker search.
- Mirror search icon in RTL (b/184162989)
- Fix spacing between edit text and cancel button, to make it consistent
with space between search icon and edit text. (b/183602001)
- Scroll to top on every search result. (b/183602001)
- Fix keyboard overlap on orientation change. This is fixed by clearing
text on edit text differently (b/184048899)

Test: Manually tested
Bug: 184162989
Bug: 183602001
Bug: 184048899
Change-Id: I72ed51e1968a55a3105bd8b389d1bbd74d50d8af
2021-04-13 10:41:18 +01:00
Alina Zaidi 2e732e95d9 Bug fixes for widget picker search.
SearchBarController
- Use Extended Edit Text to handle close keyboard action well.
- On press enter while search remove focus from bar and hide keyboard.
- On cancel button press hide keyboard and also reset search targets to empty so that on next search session the previous results dont flash (show for a short time before reflecting users query).

WidgetsFullSheet
- Make sure expanded header are reset when user leaves personal/work recycler views. Search recycler view resets its expanded header on every search already.
- Show 'no search results' view if no search result present.
- Update WidgetListBaseRowEntryComparator to show personal profile widgets first.

Test: Tested prototype locally.
Bug: b/157286785
Change-Id: Ibaa208c4091783e14ac0887caf559e867185df5a
2021-03-17 14:43:04 +00:00
Alina Zaidi 1632752a72 Have an interface for WidgetsSearchBar so Nexus Launcher can override the search bar.
Test: Tested prototype locally.
Bug: b/157286785
Change-Id: I263063a451862755efe3d6e4a5a2eb69f2ea29b8
2021-03-16 09:25:22 +00:00
Steven Ng 53d1364e8b Better estimate the height of widget recycler view
Test: Expand and collapse apps in the widgets picker. Then, observe
      the height of the fast scroller is correctly displayed.

Bug: 181629430
Change-Id: I9efcf902f8548fc5c8a398609758d43123228e5e
2021-03-12 22:58:45 +00:00
Steven Ng 167f81b931 Add a header container view to the widgets full sheet
A header container view will contain
1. A horizontal bar: for indicating the popup view can be dragged
   to dismiss:
2. A title view: a title of the widgets full sheet popup view.
3. A search bar: for widgets / shortcut search. Since we will be
   making the fallback search algorithm available in AOSP, the
   search bar will now live in the Launcher3 codebase.
4. Recommended widgets (coming soon...)

This CL also added a scroll effect which gradually collapses the
title view when the user scrolls down the recycler view. The title
view will gradually restore its height when the user scroll to the
top of the recycler view.

Test: Manually test widgets pickers in work profile and non work
      profile setup. Verified the fast scroll bar works well in
      both setup.
      With searchbar: https://drive.google.com/file/d/19grUHL_LspLhMD_5p6-i0CiMW1FpflmD/view?usp=sharing
      Without searchbar: https://drive.google.com/file/d/1KRPgEAESHUhJDo1UJsQN80JO1c9Y8Nhl/view?usp=sharing

Bug: 179797520

Change-Id: If0016e3b3c693414897140e7912531ed9bd5deef
2021-02-26 10:03:36 +00:00
Steven Ng 2f5648a911 Refactoring before adding a new view type in the WidgetsListAdapter
Changes made:
1. Model: added an abstract class for storing common information for
   entries shown in the full page widgets picker.
2. Introduced a ViewHolderBinder interface to split the logic of binding
   data to ViewHolder into separate classes.
3. Move the view holder binding of WidgetsListRow from WidgetListAdapter
   to its new class.
4. Move some widgets picker classes into a new picker package.

Test: Auto: Run WidgetsListAdapterTest, WidgetsListRowEntryTest and
      WidgetsListRowViewHolderBinderTest.
      Manual: open the all apps widgets tray and navigate the list.

Bug: 179797520
Change-Id: Iab29557842bb79156cad84d00a4c5d0db0c5aa06
2021-02-10 21:23:40 +00:00