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
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
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
This eliminates an unreliable timeout.
Also removing an unnecessary check for harness that is done by the
called method.
Change-Id: If954580060415cbb2952532c16ea0ae4dc7b9469
Derivative projects can extend the FloatingHeader to add support
to custom content in all-apps screen.
Change-Id: I4e29221a72e5a077a756713a6774cda7ecde8f1b
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
- 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
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
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
By not intercepting touch when in overscroll, the user
can immediately exit by swiping the opposite direction.
Bug: 64094565
Change-Id: I0b4e3e7a38d90d4e6a336985d939d177a8f04c9b
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
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
> 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
> 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
> 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
* 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
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
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
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
This will allow derivative projects to easily change the search behavior
by simply overriding the xml file
Bug: 37616877
Change-Id: Ib8d6a2dab06819a52611e9a3d97c70c5a49bbf97
This is the basis for app discovery integration while searching in all apps.
This does NOT include binding to the actual service and retrieving results,
but instead provides all the UI to show suggested instant apps and apps
from a store with star rating and pricing.
Change-Id: I1605b52848491acee4ac1d15c0112e6a768363f6
This was an exploration for an alternative UI in all apps, where we
show section headers before every section. This was never released.
Change-Id: I2d36f1d078cc9a6f3ba6f0ec9655412182c9b016
> Using a separate view for drawing the popup. This allows us to use elevation
property instead of drawing the shadow as bitmap.
> During the thumb animation, invalidating the full track width, instead of
invalidating the track and thumb separately.
> The thumb path is calculated at 0,0 and drawn using canvas.translate().
This avoids recalculating the path on every scroll.
Change-Id: I48741e5b4432df0d939016db284d7aaf52cc2aa6
b/30039490
Supported in this CL:
- DnD: drag from container [WORKSPACE|HOTSEAT|FOLDER|ALLAPPS|WIDGETS|DEEPSHORTCUTS]
drag to container [HOTSEAT,WORKSPACE,FOLDER,DROPTARGETS]
- Source and target can be [FOLDER_ICON, ICON, DEEPSHORTCUT, WIDGET]
- $ adb shell setprop log.tag.UserEvent DEBUG will turn on debugging
Change-Id: I0b8b879b80e6dce85bbde6e7794f9e0677832603
- We only want to log when the container is opened and potentially
used, not when a long press is followed by a drag-and-drop.
- Also cleaned up code that was determining the container of the
app icon, since LaunchSourceProvider.fillInLaunchSourceData()
can do that instead (it's more robust and consistent).
Bug: 30791570
Change-Id: I05b6750f26182fda8a9940ac66f1371c2d228ca9