Commit Graph

83 Commits

Author SHA1 Message Date
Fengjiang Li 6bb8d79549 Predictive back: widget to all apps
This CL adds a layer of OnBackPressedHanlderRouter to Launcher:
1. 4 OnBackPressedHandler(s) are added in such order: auto cancel action mode handler, drag handler, view handler and state handler
2. first handler who can handle back will handle the entire back gesture
3. Let WidgetsFullSheet to handle widget to all apps transition

Bug: b/260956481
Test: manual
Change-Id: Idbce3dcec746226dd68aaabaddc8fe01334e9673
2023-01-24 15:51:46 -08:00
Sihua Ma db7f098bc1 Re-enable the fast scroll in widget picker
Fix: 258299457
Test: Manual
Change-Id: Ic069f5304827de40be88b80590f5c6c7d88b13b2
2023-01-04 15:47:07 -08:00
Sihua Ma 1126f57441 Reducing the no-intercept area to widget picker recycler view
This allows drag-to-exit on the bounding area even if the scroll is not on top

Fix: 247121877
Test: Manual
Change-Id: Iebf7af195b717bad5e80ee34fec05fed58827699
2022-12-07 11:11:52 -08:00
Sihua Ma 8bbfcb6581 Move LauncherWidgetHolder to widget package
Making LauncherAppWidgetHost package-private as well

Bug: 235358918
Test: N/A
Change-Id: If022ec8d429579a972991872b2dc11db76719341
2022-11-16 14:31:14 -08:00
Sihua Ma aa2b872d1c Move most of the functions in LauncherAppWidgetHost to LauncherWidgetHolder
Test: N/A
Bug: 235358918
Change-Id: I343419376491203a195154f2766b12e5def38879
2022-11-16 14:30:08 -08:00
Sihua Ma 0593a0d3ec Created LauncherWidgetHolder as a wrapper for LauncherAppWidgetHost
The wrapper class is created for further changes that will run the wrapped host in the background.

Test: N/A
Bug: 235358918
Change-Id: I9bd6fc2749c5d4a4d3391fb75d0c3ff1e13d17bf
2022-10-26 10:57:13 -07:00
Alex Chau 3d2c062567 Change wallpaper depth in widget picker
- Also changed widget picker open/close duration, refactored the values into DeviceProfile
- Generalized MultiAdditivePropertyFactory to accept aggregator as parameter

Bug: 240580498
Test: manual
Change-Id: I6886ca514593e404b8d7b0e8ed44f20ec2b77c73
2022-09-13 12:20:56 +08:00
vadimt f6ef879cf4 Moving all sources that are shared between Launcher and TAPL in one directory
This will help SysUI test team (who uses TAPL) to set up Gradle build for their tests.

Bug: 202567877, 234414088
Test: presubmit
Change-Id: I3d923ea4b54d1a4c3d2b345be09692727d30433e
2022-07-27 20:18:46 +00:00
Sunny Goyal 9b458a0012 Generalizing the PredicitonScroll view so that in can be used in all-apps
Bug: 234008165
Test: Verified no-functionality-change on device
Change-Id: Ie17d58148b9bdcb08847beb24114b0494437b30e
2022-07-06 12:29:01 -07:00
Thales Lima 28a8b9f158 Add a scrim to AllApps and Widgets
Check the size of the scrim and draw on the bottom of AllApps and Widgets.
Add a padding to the bottom of AllApps and Widgets so content is above the scrim.
Change the color of nav buttons for better accessibility.
Correct width of the Widgets sheets to be the same as AllApps sheet.

Fixes: 221107977
Fixes: 214215594
Test: manual, HSV and Window
Change-Id: Ib7510ffcd80231de7fefcdef65b422174dd74593
2022-05-12 09:38:24 -03:00
Andras Kloczl 142b054e06 Tune widget picker bottom sheet VisD for large screen
Test: Open widget picker by long pressing the home screen.
Open app specific widget picker by long pressing an app icon
that has widgets. Try both landscape and portrait, also on
phone/tablet/foldable.
Bug: 214215594

Change-Id: I7b4b3a8d7421f1d4df84d49a18b465693a17bd7b
2022-03-15 14:01:59 +00:00
Zak Cohen 8e6c9bbb3e Widgets - Filter work widgets when Work Profile is paused.
Test: local
Bug: 188227318

Change-Id: Icbe6f69de9f3776c88df8c56468531940b54f239
2022-03-08 11:33:46 -08:00
kholoud mohamed c76b2035aa Allow overriding enterprise related strings in Launcher
Test: manual
Bug: 188414133
Bug: 211422509
Bug: 188410712
Change-Id: I75858cdcf2057e7c270da5893cd9a90c6753f182
2022-01-28 16:33:03 +00:00
Alina Zaidi fc6837bb65 Do not reorder recommended widgets in widget picker.
This is to show them in ranking order sent by aiai.

Bug: b/201079509
Test: Added unit test in WidgetsTableUtilTest

Change-Id: I366ecaee8bc157aca185f633462d95fbd1dd180b
2021-09-29 15:52:47 +01:00
Steven Ng 0e8a2ce0a9 Fix RecyclerViewFastScroller scrolling in widgets full sheet
See b/200132426 regarding to the bugs.

Test: manually tested full widgets picker scrolling on phone and 2
      panels UI.
Fix: 200132426
Change-Id: I13c7a7262e9357cf0acac1c2c7c069b2118bd527
2021-09-22 18:02:44 +01:00
Sunny Goyal ed2a55f413 Removing widget preview caching
> All previews are generated on demand when the corresponding
  header expands
> Using ItemAnimator to animate layout changes when preview loads

Bug: 196238313
Test: Manual
Change-Id: I0cb859c8443c2c536399e4063f58baecfc7416ad
2021-08-17 17:50:30 -07:00
Sunny Goyal 77acf12905 Fixing header jump
Linking header position to an empty entry in the recyclerView,
instead of calculating the vertical scroll position. This
allows the header to be in sync with the recyclerView scroll and
item animations

Other simplifications:
> Moving top collapse handle out of header view (it doesn't scroll)
> Removing background clipping logic from full-sheet
> Moving tab bar inside the header view

Bug: 196464142
Test: Verified on device
Change-Id: Iae5a0ae9af7ce258e1b391b8e85c5c270fe56197
2021-08-16 09:45:14 -07:00
Steven Ng 3edfa98ba7 Use the right content to estimate the span in WidgetsFullSheet
Test: Manual
Fix: 194784402
Change-Id: I150f4c7b5a0344caa2bea3f1502894cb0f32e208
2021-07-30 13:15:26 +01:00
Steven Ng 24c16de329 Use 32dp as the content margin for widgets pickers in large screen
devices

Test: manual
Bug: 194369046
Change-Id: I7376eab59d57bdd9ccc8a64e9f321358e09ee579
2021-07-27 12:00:52 +01:00
TreeHugger Robot c48e4fa64d Merge "Measure WidgetsFullSheet before estimating the recommended table size" into sc-dev am: 6a01fe49a5
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/15359118

Change-Id: I0004e2f55347e018fa553f8b56c26a754a93e0f1
2021-07-22 19:11:55 +00:00
Steven Ng a606d344a6 Measure WidgetsFullSheet before estimating the recommended table
size

Issue: The header view height was obtained before any measurement.

Test: On Pixel 5 4x5 gird with Photo widget shown in recommended
      table, make the device in landscape. Then open the full widgets
      picker. The widgets picker can be scrolled. Before this fix,
      scrolling is not possible.
Fix: 194172597
Change-Id: Ib30cf4b95d2ed23ff28f3d24e103f0e919b3a551
2021-07-22 16:08:15 +01:00
Steven Ng 452e8b8512 Correct # of cells estimation that can fit horizontally in widgets
picker

Fix: 192661517
Test: check widgets are fit correctly in both full & bottom widgets
      picker in portrait and landscape in different grid settings.
Change-Id: Ic1b0589b7ccf62ff1ec1fd5713b4249ba58246a5
2021-07-08 16:23:38 +01:00
Alina Zaidi 57973c328a Make sure search recycler view is bound to fast scroller if user is
in search mode at the time of attachment of work/personal recycler view.

Bug: 191980945
Test: Tested manually.
1) Open widget picker, scroll.
2) Enable dark mode, scroll.
3) Type search query, scroll.
4) Disable dark mode, scroll.
5) Have work profile in phone and repeat the above with work tab open
and search.

Change-Id: I106717091a88868c4bbe3fad0dd71c8344e9c8ed
2021-06-29 16:32:32 +01:00
Steven Ng fbe1836627 Extract common measurement in widgets pickers to its base class
Bug: 191644950
Test: 1. Open the full widget picker. Observe the clock widgets'
         previews are shown properly. Then, rotate the screen and
         observe the clock widgets' previews are shown properly.
      2. Open the bottom widgets picker for clock. Observe the
         clock widgets' previews are shown properly. Then, rotate
         the screen and observe the clock widgets' previews are shown
         properly.
      3. Repeat 1, 2 after changing the system navigation from button
         to gesture.
Change-Id: I564fc2ce0baf3103ae77499380ad69ec38ac6930
2021-06-28 14:55:27 +01:00
Alina Zaidi e92c63f45b Remove scrim from navigation bar from full widget picker.
Bug: 191926325
Test: Manually tested
Change-Id: Idc5fded9e8227a6aa9cf58c9e2cce146dc52a2c6
2021-06-24 20:20:05 +01:00
Yogisha Dixit 4ff5ee3a8f Add new log events for widgets.
Design doc: go/widgets-logging

Bug: 185778648
Test: manual
Change-Id: Ia3c6edb87766a33e77865e9461e7101a1df864c1
2021-06-04 14:52:37 +01:00
Alina Zaidi 8a8c36cca9 Merge "Add more education tips for widgets. (2/3)" into sc-dev 2021-06-01 17:34:18 +00:00
TreeHugger Robot 04ef35f854 Merge "Further adjust work profile tabs paddings in the widgets picker" into sc-dev 2021-06-01 13:13:03 +00:00
Alina Zaidi f2c79dea0d Add more education tips for widgets. (2/3)
Show education dialog on WidgetsFullSheet.
-Have a button in widget education dialog to intent into PixelTips apps.
-Make sure arrow tip view shows after dismissing education dialog on
WidgetsFullSheet if there is a widget to show it on.
-Update colors and layout for arrow tips.

Test: Tested manually
Bug: 185354491
Change-Id: I5cbdd02fc4f19a49a42dac4451b071e3d604747f
2021-06-01 13:58:18 +01:00
Steven Ng a0d49dcfb4 Further adjust work profile tabs paddings in the widgets picker
Test: Open widgets picker and observe tabs paddings are correctly set.
Bug: 188872382
Change-Id: Ib6a735bf2b0710f86b8641533cadb27116049341
2021-06-01 11:40:36 +01:00
Stevie Kideckel 47f935dbbe Add the DefaultItemAnimator, without change animations
Change animations cause the addition of another view to be able to
crossfade/interpolate the two. Disabling change animations prevents us
losing the focus when a header row changes due to expanding or
collapsing.

Test: verified locally
Bug: 183378651
Change-Id: I07837b41748b5206936321c08d376069fa81b363
2021-05-26 17:08:18 +00:00
Alina Zaidi e6521ad542 Merge "Add more education tips for widgets. (1/3)" into sc-dev 2021-05-25 17:35:27 +00:00
Alina Zaidi 9d24de1353 Add more education tips for widgets. (1/3)
Show Arrow education tip on WidgetsBottomSheet. This tip is shown only
once either in widgets full sheet or bottom sheet.

Test: Tested manually
Bug: 185354491
Change-Id: I6d770ed0906a5cb0f5bcfe6ae0cd327b790cf164
2021-05-25 10:50:02 +01:00
Steven Ng ede641bd77 Adjust padding, margin of tabs in the WidgetsFullSheet
Also remove elevation set to tab to remove unwanted shadow.

Test: Set up a work profile. Then, open the full widgets picker.
      Observe padding & margin of the work / personal tabs.
Bug: 188221455
Change-Id: I761cb1c1410f87c80a5fdca3803fb8b099d499d6
2021-05-24 11:40:16 +01:00
Alina Zaidi 260c38c4a0 Align 'No widgets available' text box properly in Widget picker.
Bug: 186209657
Test: Tested manually
Change-Id: I85fa43cd745a8c9f9601d25ed3a35f512506234d
2021-05-21 10:49:03 +01:00
Steven Ng 9f194ee290 Merge "Clear widgets search bar focus when the user taps outside the search bar" into sc-dev 2021-05-21 08:52:50 +00:00
TreeHugger Robot 45f7360432 Merge "Animate recommended widgets vertical transition when reset widgets picker scroll position" into sc-dev 2021-05-21 02:02:47 +00:00
Steven Ng 73d44f63b4 Animate recommended widgets vertical transition when reset widgets picker scroll position
Test: Set up work profile. Then open the widgets picker, scroll down from
      the personal tab, then switch tab. Observes a vertical transition
      animation of the search and recommendation container view.
Bug: 188538428
Change-Id: I2b8523d1682a6312de3b5393c0bff782ae110b3c
2021-05-19 23:58:54 +01:00
Steven Ng 1a55d1ff37 Widgets: Only reset expanded item & scroll to top if the user switch tab
Test: Open widgets picker, then adb install an app that has widget.
      Observe the newly installed app widget is shown and the widgets
      picker doesn't scroll itself back to top.
Bug: 188425375
Change-Id: I7ac29f08b06d528ef64e902e678a67e56971c681
2021-05-19 15:32:54 +01:00
Steven Ng 66034efaae Clear widgets search bar focus when the user taps outside the search bar
Test: Focus widgets search bar. Then tap outside the search bar and
      observe the keyboard is being dismissed.
Bug: 188540267
Change-Id: Ica1b5b804ed97dd0b1cd8d41351eddcf5249ded0
2021-05-19 11:31:09 +01:00
Steven Ng c47d8a027d Merge "Add a scrim underneath the top section of search & recommendation UI" into sc-dev 2021-05-17 17:51:41 +00:00
Alina Zaidi d80cec62b4 Modify pin widget dialog open-close animation.
Pin widget sheet should open from bottom up and close on drag down.
Behaviour with navigation bar is similar to that of widgets bottom sheet.

Add a drag layer and reuse AbstractSlideInView for open-close
animation.

Test: Tested manually- opening, closing through dragging/ cancel button/
back button. Adding widget to screen by dragging/ add to home screen
button.
Bug: 186124244

Change-Id: I4b77d5bdd4ed1689b651847dfed69d19cafa7456
2021-05-14 17:59:50 +01:00
Steven Ng 3503e6fa25 Add a scrim underneath the top section of search & recommendation UI
Test: In the full widgets picker, scroll up. Recommended widgets are
      not visible behind the search bar when they overlap.
Bug: 188021019
Change-Id: I13144ad534c74393bb1b12c651e734bb8bee0bc2
2021-05-14 17:03:01 +01:00
Samuel Fufa f94540b28a Merge "[WorkProfile] Update work/personal tab to pills" into sc-dev 2021-05-06 23:33:06 +00:00
Steven Ng edfec2fc0b Fix scrolling issue in the full widgets picker
Before this change, the widgets recommendation table handles all the
touch events. The table doesn't distinguish a touch event from a scroll
event. This change forwards the motion event to the active recycler view.
If the recycler view doesn't handle the event, it will then forward the
event back to the view hierarchy.

Test: Open the full widgets picker, then start scrolling on the
      recommended widgets UI. The full widgets picker scrolls perfectly.
      Drag-n-drop a recommended widget
Bug: 186567644
Change-Id: I89d473179796c516d2394332dd75f8e9a1d8b388
2021-05-05 23:19:09 +01:00
Samuel Fufa db9b483c02 [WorkProfile] Update work/personal tab to pills
Bug: 186857875
Test: Manual
Screenshot: https://screenshot.googleplex.com/89jD32tHqNkBUWb
Change-Id: Ia4bb91372896d8a53017e3eadbe985878ce7f0ec
2021-05-03 10:53:33 -05:00
Steven Ng 3417c1d22b Remove debugging logs from the full widgets picker
Test: None
Bug: 185508758
Change-Id: I2958118abc9d4f3778aaf6c3e3df01b0712354dc
2021-04-28 19:27:40 +01:00
Alina Zaidi 9f531ee6c4 Always check for availability of widgets before changing visibility of
recycler view and no widgets view.


Bug: 186117900
Test: Tested manually
Change-Id: I57ac95fee935a54ce70f5793f0b0686b549cbf9e
2021-04-28 10:36:46 +01:00
Alina Zaidi 80732f89e7 Fix some widget picker recommended widgets bugs.
- Bind recommended widgets only when not in search mode. (b/183503774)
- Bind recommended widgets in onAttachedToWindow, Recommended widgets
are available in PopupDataProvider at this point. (b/185461866)

Bug: 183503774
Bug: 185461866
Test: tested manually
Change-Id: If24e5b2b3e69a695821b5f7d9f42ff4c89ae62fc
2021-04-21 15:26:01 +01:00
Steven Ng 8c8d99f966 Fix flaky widget tapl tests
Potential issues:
1. Widgets floating tips view is being shown
2. Header visible height is too small to be considered as a scroll
   gesture

Test: Run AddConfigWidgetTest, AddWidgetTest, BindWidgetTest &
      RequestPinItemTest
Bug: 185733371
Change-Id: Ic3e9188724dd920349ce8d8e8d98392b94b40642
2021-04-20 23:01:19 +01:00