Commit Graph

88 Commits

Author SHA1 Message Date
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
Samuel Fufa
fd58d23cdf Migrate from Plugin SearchTarget to API search Target [1/3]
Setup architecture for separation between aosp and quickstep search as setup for switch to android.app.SearchTarget

Bug: 177223401
Test: manual
Change-Id: Iefd069a34d5e5551bf731e9171958e93377774aa
2021-01-12 19:46:25 -06:00
Hilary Huo
f5ce80b8a0 [pixel-search] Latency analysis, add logging statement in launcher
Bug: b/170675311
Change-Id: I229ace399085bea1c3f9535eb713edd329dff8bd
2020-10-21 18:00:06 -07:00
Hyunyoung Song
95786e077d Good riddance UserEventDispatcher
Bug: 165675920
Bug: 161381246

TL;DR;;
- nano -> lite proto
- add all the missing logs to WW
- pin item related logging fix
- Removed logging for assistant

sgrep "com.android.launcher3.userevent.nano." | cut -f1 -d: | xargs sed -i -e 's/userevent\.nano\./userevent\./g'

Change-Id: Ie2a49fdd891cacbd7ef40a1dc9e41ff0574c7517
2020-09-27 13:41:49 -07:00
Samuel Fufa
114de69c98 Introduce support for play results in launcher
Introduces PluginSearchPipeline class, a plugin listener for AllAppsSearchPlugin. Coverts from List<Bundle> results from callback to AdapterItems to be rendered in SearchController.
- Moves AdapterItem to AllAppsGridAdapter

Bug: 164699827
Test: Manual
Change-Id: I20ec147e6b3f4707cf69d62b4b4ac70a90196345
2020-08-18 11:34:09 -07:00
Samuel Fufa
df10ff46bd Migrate AllAppsSearch [part 1/3]
[Video attached to bug report]

Setup DeviceSearchAlgorithm to handle on device search

Bug: 161801950
Test: Manual
Change-Id: Ib55f415f9992ceab687bbbfe904d153157541648
2020-07-28 14:48:33 -07:00
Sunny Goyal
355e845851 Using inbuild smooth scroller instead of custom fastscrolling logic
Change-Id: I9208720c3bf164bd664e5bacd75b672573fe7601
2020-04-20 11:15:34 -07:00
Sunny Goyal
e396abf502 Moving model data structures to a separate file
Change-Id: I77ad7a5219e72d2e0d6c1803de2ac3ed6a65a8f7
2020-04-09 13:20:39 -07:00
Samuel Fufa
f5a4deb120 Hide work apps when work profile is paused
- hide overlay icon in landscape mode
- don't show edu if user has already seen legacy work profile edu
- make sure personal tab is highlighted when work profile is reinstalled
- always go home after a work profile is added or removed
- add tests for work edu flow

Bug: 150122946
Test: Manual
Change-Id: I8f80ac763acf03ca31a534464f4ddfd84528d329
2020-03-12 10:25:50 -07:00
Samuel Fufa
a579ddc9c8 Refactor logging to capture Target hierarchy
Instead of creating a fixed number of targets, we now pass an ArrayList
of targets to. Any class implementing
LogContainerProviders#fillInLogContainerData can setup it's own target
and add it to the ArrayList, It can also pass the ArrayList to other
LogContainerProvider to capture full Target hierarchy.

Bug: 147305863
Change-Id: I0063c692120fb9e1cff2d8902c5da972d0623418
2020-03-06 13:49:19 -08:00
Sunny Goyal
9c2b96090b Adding SecondaryDisplayLauncher in Launcher using common listener
Bug: 141596722
Change-Id: I480bfadf592f7d0309f17c33a3fe14bb77fb5586
2020-01-30 08:27:27 +00:00
Tony Wickham
d785fc289c Merge "Properly prevent All Apps relayouts by avoiding scrollToPosition" into ub-launcher3-qt-qpr1-dev 2019-09-05 21:27:41 +00:00
vadimt
758a1d983d Removing flinging via UI Automator
UI Automator loses events. Switching to the homemade scrolling.

Bug: 138729157
Change-Id: Ib09bd5714e83eadfc65b54202867bf375e6b47c5
2019-09-04 16:35:19 -07:00
Tony Wickham
bfdeda96e6 Properly prevent All Apps relayouts by avoiding scrollToPosition
Calling scrollToPosition on RecyclerView internally calls
requestLayout() (to cacluate where to scroll and then go there).
Therefore, we should avoid calling that whenever possible, especially
during transitions. In particular, we can optimize scrollToTop() to not
scrollToPosition() if we are already at the top.

This makes some other workarounds unnecessary, namely setting All Apps
to GONE during system gestures.

Test: Open an app, swipe up, ensure AllAppsRecyclerView doesn't get
onLayout().  If we had scrolled to an app first, we get one layout
in prepareRecentsUi(), but not during the transition.

Bug: 140308849
Change-Id: I62ee341bf5893c121cfc013cc6542559f79d2a42
2019-09-03 16:16:54 -07:00
Tony Wickham
7310bb4b5c Don't update all apps content visibility during home animation
We already set the all apps content visibility = GONE at the start of
the gesture to prevent relayouts, but when animating home we were
inadvertently changing it to INVISIBLE, causing a relayout and jank.

Bug: 140308849
Change-Id: I285746f8ac8f3f857282e22ebec8eebd0b98647f
2019-08-30 22:10:55 +00:00
vadimt
2d6cd80bc9 Launcher reports whe 0-button swipe-up gesture pause is detected.
This eliminates an unreliable timeout.

Also removing an unnecessary check for harness that is done by the
called method.

Change-Id: If954580060415cbb2952532c16ea0ae4dc7b9469
2019-05-24 19:28:40 -07:00
vadimt
3d13f303ee Using model-time scrolling in all apps
This should solve flakes when the test thread wakes up too rarely to
inject enough touch events.

Change-Id: I461583d35eb4bfe0192b81c242aacf8d20e353d1
2019-05-14 10:40:22 -07:00
Hyunyoung Song
fc00747909 Add StatsLog*Manager for logging.
Bug: 113043444

Verification: (19) is our event classifier number
11-05 11:24:28.188   932   994 I statsd  : { 1541445868000000000 766293363001 (19)0x10000->1[I] 0x20000->0[I] 0x30000->0[I] 0x40000->[S] 0x50000->1[I]  }

Change-Id: I75403837f9fa8e51efa012fb708bce7efc9c4488
2018-11-05 11:41:38 -08:00
Sunny Goyal
2b787e5bd6 Using a placeholder icon shape instead of low-res/blurry icon
Bug: 111142970
Change-Id: I867224464ae9c026f4dcb5256ef14fc39c8e751d
2018-08-27 10:43:46 -07:00
Sunny Goyal
d230307a95 Migrating to android-x
Change-Id: I9a774152d13a541e8496dd84f2469bfed407f86d
2018-08-14 15:22:12 -07:00
Sunny Goyal
2020b20cd9 Disabling alpha layer on some views
Change-Id: Ide1d5951ea80080f8fea8f32a76487b646b4f958
2018-04-17 10:48:54 -07:00
Mario Bertschler
14a89262f1 Using edge effect to trigger spring animation for all apps.
Bug: 72811152
Bug: 72059944

Change-Id: Ied7b51caa2fb48a2fda126d59e4eaf6a35edded3
2018-03-08 11:16:53 -08:00
Sunny Goyal
3661bfac0b Fixing fast scroller touch handling in all-apps and widget sheet
Also removing scrim view, instead drawing the scrim manually

Bug: 73085356
Change-Id: I188c6c9b1685e22d5d97b38dd5d3e960b655c9ba
2018-03-06 11:41:43 -08:00
Sunny Goyal
ee047871eb Removing unnecessary view inflation
Using a predefined height for app icons, and for everything else,
inflating it on demand

Change-Id: I7520802f30d2111d63fe336b09f6264201cdea61
2018-02-06 11:00:09 -08:00
Sunny Goyal
b1d222e9a7 Removing support for app prediction from Launcher3
Derivative projects can extend the FloatingHeader to add support
to custom content in all-apps screen.

Change-Id: I4e29221a72e5a077a756713a6774cda7ecde8f1b
2018-01-30 20:53:11 -08:00
Sunny Goyal
01ce755753 Removing unused app discovery support
Change-Id: I670be29851b232caa5c05624ae37ae5e92a8b65f
2018-01-23 13:53:03 -08:00
Tony Mak
2bfa4d469a Make work footer stick to the bottom if there are only a few apps #2
1. Move the work footer divider into the container, so it is translated
   with the rest of the footer.

2. Fixed the scrollbar issue in work tab by putting the footer height
   in AllAppsRecyclerView

3. We planned to drop the company name, and decided to use
   "Managed by your organisation".

4. Rename WorkModeToggleContainer to WorkFooterContainer as
   we are using work footer in else where.

BUG: 70571983
Change-Id: I218fe7d9970780a1a457ee450f1a32e7a46d9766
2017-12-15 11:40:07 +00:00
Mario Bertschler
2d3157a0bf Fixes for fast-scrollbar when using work profile tabs in all apps.
- do not hide scrollbar between switching tabs
- full scrollbar height
- show predictionrow only when fully scrolled to top

Bug: 70037972
Bug: 68713881

Change-Id: Icaa434ce2726b75d22ec4ac3287ab2b0e18ce42b
2017-12-05 14:36:16 -08:00
Tony Mak
6ffe4e0eee Add work profile footer in work tab
Screenshot(work mode is on): https://hsv.googleplex.com/6279751685636096
Screenshot (work mode is off): https://hsv.googleplex.com/6279751685636096

TODO:
It is just the UX bit, once the platform change is in, we should then
consume the new API to
1. Turn on / off work mode
2. Get the organization name and set the textview accordingly.

BUG=69905244

Change-Id: Id94ae57625d6b629dac89c1c28f8d65f395fff6c
2017-11-29 20:37:11 +00:00
Mario Bertschler
ac9408a5cd Enable work profile tab in all apps.
This CL will bring two tabs to all apps: Personal and Work,
currently only if the user has a workfile set up and
behind a feature flag defaulting to disabled.

Bug: 68713881

Change-Id: Ib5a558281ef3593359db3ad593ee1d0cf279f547
2017-11-14 10:28:54 -08:00
Jonathan Miranda
572da280d3 [automerger] Fix bug where user gets stuck in overscroll. am: 27ad267a81
Change-Id: I5437e02a5c16eefd05c3414c98f77b96bfb0b2ca
2017-08-03 22:09:05 +00:00
Jon Miranda
27ad267a81 Fix bug where user gets stuck in overscroll.
By not intercepting touch when in overscroll, the user
can immediately exit by swiping the opposite direction.

Bug: 64094565
Change-Id: I0b4e3e7a38d90d4e6a336985d939d177a8f04c9b
2017-08-03 15:08:35 -07:00
TreeHugger Robot
95de553bcb Merge "Updating fade-effect parameters: > Shifting the effect at the edge in the presence of padding > Removing fade effect at the bottom > Fixing wrong call for translating children" into ub-launcher3-dorval-polish2 2017-08-02 17:46:29 +00:00
Jon Miranda
813c626f92 All Apps physics polish.
With this change, the springs will now animate if your finger
is on the RecyclerView while you hit the top/bottom.

This covers the case when the user has few apps (ie. the
RecyclerView does not scroll very much).

Bug: 64041310

Change-Id: Ia72aea05d62a6fb896fdb7df379d6c7abd188d6d
2017-07-26 20:23:23 +00:00
Jon Miranda
2d5e0e067c All Apps physics polish.
With this change, the springs will now animate if your finger
is on the RecyclerView while you hit the top/bottom.

This covers the case when the user has few apps (ie. the
RecyclerView does not scroll very much).

Bug: 64041310

Change-Id: Ia72aea05d62a6fb896fdb7df379d6c7abd188d6d
2017-07-26 20:21:07 +00:00
Sunny Goyal
5d80c28161 Updating fade-effect parameters:
> Shifting the effect at the edge in the presence of padding
> Removing fade effect at the bottom
> Fixing wrong call for translating children

Bug: 63003761
Change-Id: Ia9d030de60e933a2e688496109d62977885c2c0d
2017-07-26 06:43:50 -07:00
Sunny Goyal
b72d8b2c8b Using common fling detection logic for notification and all-apps
> Refactoring SwipeDetector to both allow vertical and horizontal swipes
> Using SwipeDetector and common overscroll effect for notification swipes
  instead of a separate logic

Change-Id: Ib706ee179811ade59ddb68184e1c202365d147c4
2017-07-20 01:33:10 -07:00
Sunny Goyal
d3e669b9ae Merge commit 'refs/changes/98/2553198/2' of sso://googleplex-android/platform/packages/apps/Launcher3 into am-948a617f-f892-4399-bd5c-3dd472692cca
Change-Id: I4b54791fcaaf09a9aad6774d19645e7d7793c75d
2017-07-19 11:08:35 -07:00
Sunny Goyal
2b50b53183 Updating UserEventDispatcher to make some methods accessible.
> Removing helper methods around fillInLogContainerData so that its easier to
  create events with 3 and more srcTargets
> Removing setPredictedApps from userEventDispatcher as its specific to Launcher
  and does not apply to other activities. Instead moving it to AllAppsRecyclerView

Bug: 63719473
Change-Id: Ib92621e41ede4ffe03892642ab173772b5a84dd1
2017-07-19 11:03:35 -07:00
Hyunyoung Song
f40e94955c Add tests to SwipeDetector (formerly VerticalPullDetector).
Change-Id: I09ab4f22d7204ad806825ab0d6374c2b9616bf39
2017-07-06 14:32:35 -07:00
Jon Miranda
2b35905ea7 Add overscroll to the top of All Apps.
* Overscroll at the top of all apps will occur when the user scrolls
  up, hits the top, and continues to scroll up.
* Fixed bug where All Apps jumps when the user enters overscroll
  from a scroll that doesn't start at the bottom.
* Fix bug where AllAppsRecyclerView stays translated even after
  the user has finished dragging.

Bug: 62628421
Change-Id: Ia1d230a7cc07a7cf8c1a7c5211a025034ae5f6df
2017-07-05 14:58:34 -07:00
Tony
200352ca4e Don't enter overscroll when dragging fast scrollbar.
Bug: 63298293
Change-Id: Id3a6551df265c5a92ce5da6509fdac60fb44fcb7
2017-07-05 10:36:33 -07:00
Jon Miranda
35cb8aefea Polish for all apps physics.
By adjusting the start value based on the direction of the scroll,
the springs will appear more smooth.

This only changes the appearance of the spring when scrolling down,
since the start value has always been 1 and thus looked fine when
scrolling up.

Bug: 38349031
Change-Id: I563e6e7cfdbc74c4a95adb22f90d5efe17dfa453
2017-06-29 08:49:10 -07:00
Jon Miranda
ad3194ec81 Add overscroll w/ physics to All Apps.
Bug: 62628421
Bug: 38349031

Change-Id: If3ba6dfbbd3a4b1c87e69df0066f801f963752aa
2017-06-26 22:45:53 -07:00
Sunny Goyal
89d5c5a31b Updating fast scrollbar UI in Landscape
Creating a separate view for FastScrollBar and moving all the relavant logic in
the view.
For protrait, the touch handling is delegated by the recycler view just like before.
For landscape, the dcrollbar does not overlay with recyclerView and handles the touch
itself

Bug: 37015359
Change-Id: Ie1981326457ba739bdf0ac8063db1065f395f133
2017-06-26 14:56:36 -07:00
Sunny Goyal
1a8f6fb736 Updating the fast scroll bar UI
Bug: 37015359
Change-Id: Iec0748f04ebe9a3eef13ff759da3cab6ff28c3a1
2017-06-16 14:57:34 -07:00
Sunny Goyal
9e4c359054 Adding utility method to temporarily hide scrollbar
Bug: 37616877
Change-Id: I286493746c44ace8958ffd8df24317125b445cf7
2017-06-07 14:05:48 -07:00
Jon Miranda
4e11c2738a Add physics motion to items in all apps.
Motion applied to:
- Icons
- Prediction icons
- Prediction divider

Bug: 38349031
Change-Id: I376e6e39080c8c80463a0ce8b104b05e4d576f17
2017-05-23 10:02:51 -07:00
Sunny Goyal
dc19a07aba Adding support for top padding in BaseRecyclerView. The scrollbar is
drawn below the top padding.
Also adding callback for getting the all-apps vertical pull range
so that it can be controlled by SearchUiManager

Bug: 37616877
Change-Id: Ib4642073f3e92f6676caede3bddd652fda89c86f
2017-05-15 14:14:04 -07:00
Sunny Goyal
161f96bc77 Moving apps search related logic into a custom layout file
This will allow derivative projects to easily change the search behavior
by simply overriding the xml file

Bug: 37616877
Change-Id: Ib8d6a2dab06819a52611e9a3d97c70c5a49bbf97
2017-05-08 14:43:32 -07:00