> The widget panel is only inflated when needed
> Using the swipe up/down interaction for widgets tray
> Removing additional view wrappers from all-apps
> Widget tray is preserved across activity recreation
> Launcher no longer has WIDGET state, the actual code around
the states will be removed in a follow-up cl
Bug: 67678570
Bug: 67585158
Change-Id: Ia29a7c33ec81e6c53cc24e2906b7022b6f41755b
Predicted apps should be pushed by the called whenever they change
instead of Launcher polling them on every UI update.
Bug: 67305604
Change-Id: Ibd3d809b09b7d8fd39036f69367e8580fb90dcef
* changes:
[automerger] Integrating suggested app by handling new status flags for shortcut items. am: 8ff9e1d679
Integrating suggested app by handling new status flags for shortcut items.
Removes all Add/Change/Move/Remove animations by
clearing the AllAppsRecyclerView ItemAnimator.
Bug: 64675794
Change-Id: I41f975ab6be4bf48c483828ea6f109382a8a9320
* Prefetch existing predictions in onResume.
* Only update predictions if something has been changed.
* Swap predictions in place (if possible) -- this avoids
having to relayout all of All Apps when just the predictions
change.
Bug: 64126588
Bug: 63711551
Change-Id: Iffa0d9d7d6f99f606dd68b7df5893d6eba1574f5
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
> 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
SpringAnimationHandler is only responsible for motion tracking and
updating the list of springs it is handling.
Spring initialization and updates are handled by the AnimationFactory
interface.
This is done in preparation for future CLs where SpringAnimationHandler
will be used in more cases.
Bug: 38349031
Change-Id: I5ebce710cc05e4e88b708ceea5d2cfefbd0eb3d0
ie. When scrolling up from the bottom, the animation will immediately
start since the last visible item condition is true — and by the time
it reaches the top the spring is done moving.
Bug: 38349031
Change-Id: I344deef47c50b33405345dd3a137ccdb12aeae02
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
Instead of notifyItemChanged(), we iterate over children of the
RecyclerView itself and call applyBadgeState() on affected icons.
This is the same logic we do for the workspace.
Issues this fixes:
- Icons flash when dismissing notifications
- Badge reappears on the icon while popup is open
Change-Id: I5c69d5c6bd47630c0241666b5f7f6f7ca97118f9
on clicking promise app icon in All Apps.
Only the progress will be changed with animation on progress update,
no relayout is performed. If the icon is newly bound, the progress
will not be animated.
Bug: 23952570
Change-Id: I98d3f945f08a2abadf53f20e6007c15e56d5d410
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
> Replacing some colors with theme attributes
> Simplifying styles definition by removing unnecessary inheritance and inlining some definitions
Change-Id: Ifa167515cae6a7fd3720f1a52ff9ce11abb4495f
PackageUserKey is only meant to be used for items that support
notifications, so when trying to update it for an item that
doesn't, we don't use it to check if the item has notifications.
This fixes a crash that happens when trying to update notifications
for a legacy shortcut, as such a shortcut doesn't have a component
on its intent, which we were trying to use to populate PackageUserKey.
Bug: 34842278
Change-Id: I8c69ccebbf9d93505d5b29ecd25d76c65610ddc4
- NotificationListener extends NotificationListenerService, and is
added to the manifest.
- Added PopupDataProvider, which contains logic for storing and
interacting with data that goes into the long-press popup menu
(shortcuts and notifications). A follow-up CL will rename
DeepShortcutsContainer to a generic PopupContainerWithArrow.
- If Launcher has notification access, NotificationListener will
get callbacks when notifications are posted and removed; upon
receiving these callbacks, NotificationListener passes them to
PopupDataProvider via a NotificationsChangedListener interface.
- Upon receiving the changed notifications, PopupDataProvider maps
them to the corresponding package/user and tells launcher to
update relevant icons on the workspace and all apps.
This is guarded by FeatureFlags.BADGE_ICONS.
Bug: 32410600
Change-Id: I59aeb31a7f92399c9c4b831ab551e51e13f44f5c
> Moving all fling related logic to FlingToDeleteHelper from DragController
> Removing fling related methods from DragSource and DropTarget
> Moving fling animation logic from DeleteDropTarget to FlingAnimation
> Simplifying DropTargetBar to directly look for all valid drop targets.
This makes it easier to add new DropTarget in xml.
Change-Id: I7214d2d30c907ab93c80d92d9f9be6dda2d63354
Previously we checked for deep shortcuts when closing all apps by swiping
down. Now we check any AbstractFloatingView, and when swiping up.
Bug: 33542711
Change-Id: I860eb55c69567a92cd626e966bf881b7d1bffc6e
In portrait multi-window mode, hotseat cell height is
too small. Found that there was already a resource for
all_apps_search_bar_height so using that instead.
Change-Id: I56647eb55a7808e93bdcbb3334b1513f6ac23d7c
In a previous refactor, I mistakenly used hotseatBarHeightPx instead of
hotseatCellHeightPx.
Bug: 32176631
Change-Id: I53ef8fa29a6980dcb33bb979d1bed98317c8ade2
Drawable contain a reference to the view which is used to invalidate the view.
If the same drawable is used with two views, only once view will get invalidated.
Bug: 32575647
Change-Id: Ia22310a6bda55ce0a591712761ec8ab1cdbaccdf
> Removing new object creation (during draw and touch handling)
> Simplifying matrix operation to call invert only once at the end
Change-Id: Iffadd6e9d84997baa36719ed688a7c3c1027e839
* when user tries to add item to full hot seat from workspace.
* when user tries to add item to full home screen from workspace.
* refactored so that Workspace handles displaying error messages.
Bug: 15574422
Change-Id: Ibc98c7f45bc0c646dc4636660fba62be9db22ac0