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
> 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
- Log as long press with child type DEEPSHORTCUTS container
- Parent type can be one of WORKSPACE, HOTSEAT, FOLDER,
ALLAPPS, PREDICTION, or SEARCHRESULT.
Bug: 30537079
Change-Id: Ie62e4889ee06c845f959ca998781787a7fdaf00e
- Adding DeviceProfile callback for when the launcher layout changes due
to insets. This is necessary since there are now different layouts
depending on which side the navigation bar is on
- Consolidating hotseat and other layout into the device profile
launcher layout logic
- Making the all apps icons match the workspace icon height
- Tweaking caret drawable to draw to the bounds specified to simplify
layout in each orientation
- Fixing minor issue with page indicator shifting in landscape
- Centering overview buttons to the workspace page
Bug: 30021487
Change-Id: I1866bce00b2948f3edd06168c0f88d81207e3f13
- Fixes a long standing issue with fast-scrolling to the predicted apps
not quite scrolling the list to the top of the screen.
- Fixes an issue where we don’t scroll exactly to the fast scroll
position due to rounding
- Also fixes a small issue where the thumb would not update when the
fast scroll popup was no longer showing, even while dragging.
Bug: 30023608
Change-Id: I6b5080c6aea521ff03dca24317f0405c02725061
- Removing old logic which assumed that views were the same size,
especially now we can have variable dividers, etc.
- Simplifying old scroll position logic.
- Removing unnecessary prediction icon layout (same as normal icon)
Bug: 30023608
Change-Id: I39e1126fa586a76a9bdd3ff38cd6e360ac3021e6
b/26494415
- Removed bundle object that became redundant now that we have LauncherEvent proto
- Combined Stats and UserEventLogger as they are effectively doing same thing
- Removed parent field inside Target
- added predictedRank target inside Target
b/27967359
- make com.android.launcher3.action.LAUNCH broadcast explicit
Later CL: finish packageName/intent/componentHash/predictedRank fields
Change-Id: I441fb46c834f73e58a4d2324e8da7971e8713ec8
- This CL fixes an old assumption we had about the height
of rows in AllApps, and ensures that we account for the
difference in height between the predictive icons and the
normal icons.
- In addition, we refactor FastBitmapDrawable to have multiple
states, which it manages in drawing itself, including the
press state and fast scroll focus states. And we also refactor
some of the fast scroll logic in the all apps recycler view
out to its own class.
Change-Id: I1988159b2767df733bbbfc7dc601859cde6c9943
- This was due to us not re-attaching the thumb to the scrollbar after
we scroll the view to the top explicitly without the user scrolling.
Bug: 23562489
Change-Id: I5932b9b3b9358e23c0ec23aa235644b4f27c43ea
- Issue: The fast scroller currently does not follow the touch input
because fundamentally, the fixed scrollbar height and the mapping
of the scroll space to the scrollbar space is fundamentally incompatible.
- This CL changes the fast scroller to allow it to detach when the user
fast-scrolls, then re-attaches after the user scrolls the screen and
the current scroll position for the scrollbar picks up the thumb position.
- Since the scroll position and the fast scroller thumb is now detached,
we can change the distribution of the fast scroll letters to make it
independent of the rows for each section and instead uniformly distribute
it along the scrollbar, which allows for more stability.
- There are edge cases where this fails, especially when there are few
apps, which we can investigate further.
Bug: 20035978
Change-Id: I8322f862107e6f330deff692885233706564bffd
- Fixes two accessibility issues with the prediction bar being
separate from the rest of the list of icons related to scrolling
and switch access.
Bug: 21725276
Change-Id: Ibc48e5028cace9a77000e6646b951f021910465d
- For the time being, we are going to do custom drawing to ensure that we get the touch
events in the right order, while still allowing the recycler view to draw the overscroll
effect on top of the prediction bar.
Bug: 21335369
Change-Id: I6bf64e5c1e9aa634a953223a5decf74942e4fb57
- Fixing issue with fast scroller not fitting name width.
- Refactoring fast scrolling/scroll bar code out of base recycler view
- Adding animations to fast scroller to match design
- Smooth scrolling when jumping between app rows
- Fixing issue with fast scroller jumping when you first pick it up
- Fixing issue with wrong background paddings being used
Bug: 21874346
Bug: 22031923
Change-Id: I9f011b1f375751f437604b900e95a2942d3f4601
- This CL removes all space for section names in both phones
and tablets. And when there are no section names, the layout
will automatically fully merge the sections.
Bug: 20222023
Change-Id: Ic7c751d86f095e5cbd690bfd4f94bb5b00ff8ae4
- Adding support for an external search bar that can be used
to search a container view. This adds a new interface
AllAppsSearchController which manages the external search
bar. Each controller will have its own search implementation
which means that we no longer need a common AppSearchManager
interface.
- Removing elevation controller as we no longer have a builtin
search bar in all apps
- Refactoring container view insets so that they behave
the same in all containers.
- Refactoring apps view to ensure that we only update the number
of columns with the available width
- Cleaning up LauncherCallbacks interface
Bug: 20127840
Bug: 21494973
Change-Id: I710b8e18196961d77d8a29f0c345531d480936fe