Defer:
- Setting all apps
- Setting widgets
Also set the launcher-loader thread to THREAD_PRIORITY_BACKGROUND
for the duration of the animation.
Bug: 37965432
Change-Id: I8364940805b84aecb8353a473ab4d575c27bfec4
> LoadWorkspace can be called with a LoaderResult which does not bind anything.
> Synchronous bind does not look for a valid page id, and will fallback to the
current pageId similar to full load flow
Bug: 37616877
Change-Id: If14491dc79c5b85ae1019cc93e4e08759df3387d
Will move it to a separate file in a followup cl.
This simplifies dependencies between LauncherModel and LoaderTask which
and making it easier to start the loader before Launcher activity is
created (as the Callbacks in LauncherModel can change while loader is running).
Bug: 34112546
Bug: 37616877
Change-Id: Ie9619c6b0de0e3eb60657c04ae1b58d946c829e9
This change separates the loading and binding code. Eventually workspace
loading will not depend on bind and we will be able to preload workspace
even before the launcher activity is started.
Bug: 34112546
Bug: 37616877
Change-Id: Ia8e661465cb40ad073b5b76adfc74b9e15633b1d
> Checking for duplicate icons before adding new icons
For O and above, icon addition is controlled using
SessionCommitReceiver.
As long as the Launcher is the default app, it will keep adding
icons on the homescreen. Apps installed while launcher was
not the default homescreen, no icons will be added.
For below O, icons are added based on package event. As long as
the Launcher process is running, it will keep adding icons on the
homescreen. Apps installed while the launcher app was dead, no
icons will be added.
Bug: 37528649
Bug: 37082950
Bug: 34112546
Change-Id: Ic99501fa476c00474a479f2a36c24614bfa3f4bf
loadDeepShortcuts() is called after loadWorkspace() which already
clears the shortcutMap. So if loader runs twice, during the second run,
workspaceLoaded is true, but the shortcutMap had already been cleared
in loadWorkspace().
Bug: 38384071
Change-Id: I40f0faf88376617e56819aef02620488e528dfb2
Legacy 1x1 shortcut intents have null package names.
This was causing an NPE when calling LauncherApps#getApplicationInfo(),
which caused those shortcuts to be removed from the workspace.
Bug: 37634887
Change-Id: I6d9876ee1634a573c1f0f94602ae373365cab01c
Before this change, PendingAppWidgetHostView would appear 'blank'
until they were loaded -- which could take a while depending on
how many apps the user had, because the all apps icons are loaded
first.
Bug: 36815047
Change-Id: Ia7449cce4341ed9e9384fc8aaadeaae6c33bb262
Before we were adding it in a disabled state, and then enabling it once
widgets were bound (if widgets existed for that app). Now we load all
widgets when launcher starts so that we can use the values for the
purpose of animating the popup container. Then, as the container opens,
we reload widgets/shortcuts for that particular app and add/remove the
widgets shortcut if necessary.
Bug: 34940468
Change-Id: I64bd009442d10d3d1f9a977bdedfdb639a7dd193
> A one-time DB update for removing any existing ghost widgets
> Handling widget cleanup when we bulk delete workspace items during loader
> Simplifying external delete
Bug: 35634653
Change-Id: Id0c520f57aee6d75d9c0e7bcd5786a464bf9f39f
$ adb shell dumpsys activity provider com.android.launcher3/com.android.launcher3.LauncherProvider
To see how the proto is filled: go/launcher-proto-dump
b/31772480
Change-Id: I8e0f1e5e38148a3dfeabd2fc057392193b2625dd
(cherry picked from commit 6aa3729e98)
The intent extra is not always correct as the profile id can change during backup restore.
This allows us to use a consistant behavior everywhere.
Change-Id: I004bd244204ca91758b1d42488e1fc13b0ccb998
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 CL only modifies the model and is behind a feature flag
which per default is set to false.
The app icon will appear as a promise icon, it reacts on icon
or label changes and the icon will be remove on finishing the
installation process. With this CL the progress of the installation
process is not visible.
Bug: 23952570
Change-Id: I510825d0b0b1b01eb14f7e50f0a2358b0d8b99b5
DeferredHandler was added when we were posting each icon separately,
to prevent starvation. But since then we have moved to binding batct
items during bind.
Also fixing waitForIdle not waiting the second time. waitForIdle was
using a global variable to maintain state, and was not waiting properly
when its called the second time before binding deep shortcuts
Original Change-Id: I9c1289cb3bfb74f86e53ec7ac6dd76bb39666b2d
Change-Id: I9e6b3ae65fbd3aec3a46092efc5249c4525efedf
$ adb shell dumpsys activity provider com.android.launcher3/com.android.launcher3.LauncherProvider
To see how the proto is filled: go/launcher-proto-dump
b/31772480
Change-Id: I8e0f1e5e38148a3dfeabd2fc057392193b2625dd
This class verifies whether an item in a Foder is displayed in
the FolderIcon preview, based on the item's rank.
We use this class to determine which items in a Folder will be
displayed in the preview.
Bug: 35064148
Change-Id: Ia21bccbd95c348efeac62591ae3696a4c60b5339
The tasks will be enqueued after the model is loaded when it
gets to the final state.
Bug: 31509386
Change-Id: Id72aaedb025a91a49b25e1ef103cc1976d603b21
Instead of maintaining 3 different states, each tied to a subset of data,
maintaing a single state that represents all the data. Individual subset
data is invalidated in rare cases and these invalidates are tightly tied
to the UI. This also allows us to add new data to the model, without worring
about classifying the data into a subset.
Bug: 34112546
Change-Id: Id9cb273de35b79e84a2ef8d6556fcf1e72fb4b75
This CL fixes app shortcuts for suspended packages.
1) When DO/PO suspends an app, its pinned shortcuts are instantly grayed
out, but this is not persisted after the launcher restarts (e.g. device
reboot). We now enforce the launcher to check the suspended state when
loading the workspace, and gray out pinned shortcut icons accordingly.
2) When DO/PO suspends an app, its app shortcut popup is still
available. We now temporarily disable the popup when the app is
suspended, and persist the state across restarts.
Bug: 32365540
Test: manual, by following the steps in the bug above
Test: manual, by restarting the launcher package
Change-Id: I983d7c17fa198beca23b66459b50bd67b447bdd2
> Adding checks on legacy shortcuts
> Checking restore status based on package and not componentName
Bug: 34123342
Change-Id: I442699e4ebb34ae66aa25c512bfcdc1b4fd5ae2a