During AppWidgetRestoredReceiver, we call forceReload from worker thread
which in turn starts the loader while holding mLock. This causes other
loader calls on UI thread to cause ANR
Bug: 133651528
Change-Id: Iabf983c4319bd6e6ef88e74fe6076289294454f9
> Removing unnecessary check when binding model data as its safe to bind old data,
we should just not persist it (that check is already there in model writer)
> Adding additional check in model bind to skip old bind if there are multiple binds
Bug: 126259547
Bug: 118441555
Change-Id: Ic250d2af13797d3e70c6e1fc70da65ebe6ab8d70
We were already returning to the current page, but this wasn't
always right, e.g. when removing the last item on the last page.
So now we mark the page the item was removed from, and bind that
page first when undo is clicked.
This also addresses an issue where we incorrectly returned to the
first page if currentPage = INVALID_RESTORE_PAGE, which happens if
there are no items on the first page.
Bug: 118846684
Change-Id: I4ec1f64b24ba1cc308ce08bfb3111b5981fae99b
Removing a separate table for workspace screens. List of screens are
automatically parsed using the items in the favorites DB. Order of the
screen based on the screen id and rearranging screens is no longer
supported. In case the screens need to be rearranged, all the items
in the favorites db will need to be updated with new screen ids.
This makes backing up the DB (in the same database) easier as only
one table needs to be duplicates.
Change-Id: I8ba947a898f637d780e2f49925e78604263126e8
Change to only keep the per Activity shortcut count in memory, not
the list of ids.
The full shortcuts are loaded at long press time so saves memory.
Bug:117239104
Test:Manual and ran instrumentation tests
Change-Id: Iee974ecba2c977216be4f078396ceed22b931f5d
Bug: 115891474
Test: make -j10 icon-loader
Next step: Launcher will depend on icon-loader in next CL
Change-Id: I797ddb857cf8be79f3be6ca2f174c593ca3713a5
1. Make waitXXX methods fail if the condition diesn’t turn true.
2. Waiting for loading to complete in tearDown instead of reloading the
model
3. Avoiding waiting for load-complete where loading didn’t start
4. Disabling last test in AddConfigWidgetTest
5. Waiting for loading to complete inside setupAndVerifyContents(), not
outside
6. Unifying how we wait for loader to complete
7. Adding more logging
Bug: 117332845
Test: running all Nexus tests
Change-Id: I3070e1ac2b9161179cc3e0800b0cd8162807389a
> Items ids were already being typecasted to int when being bound on the UI
> Using a consistent type allow better use of platform data-structures
> Adding IntArray and IntSet as a replacement for various Collection classes
Change-Id: Id3c650ed2420c2bfca3bd7671d2b705b56112371
Bug: 115891474
Sending out the package name changing CL first before I make
LauncherIconsHandler and tests around it.
Change-Id: Ic10479a06333e1435b392a7072cd08782e710cbd
When launcher loads, it fetches the list of apps twice, once for
loading all-apps and again for updating icons. Instead reusing
the previously fetched apps list.
Also moving the icon loading in a separate package for further
generalization
Change-Id: Ibd2dae56e6027a31b633da030bc6b43a90b27e1b
- Add methods to ModelWriter to prepareForUndoDelete, then
enqueueDeleteRunnable, followed by commitDelete or abortDelete.
- Add Snackbar floating view
- Show Undo snackbar when dropping or flinging to delete target; if the
undo action is clicked, we abort the delete, otherwise we commit it.
Bug: 24238108
Change-Id: I9997235e1f8525cbb8b1fa2338099609e7358426
If launcher submits a job, and then reloads before the job is executed, the correct model
is not reflected on the Launcher. In that case, we simply rebind the launcher
Change-Id: I380242a4de13e7b2bc326d1a076f0a974435999c
before marking the ViewOnDrawExecutor as completed.
Also fixing model writer not updated on rotation
Change-Id: I5ecd7ac865b939ffa4c02afe892bd773d9f275c3
which could be caused by the following sequence of events
1) Starts preload => execution moved to background thread
a) check if loader is running
... execution moved to ui thread
2) Launcher starts
3) Cancels any running loader and starts a new loader
.... Execution on background thread
b) Cancels any running loader and starts a new loader
Synchronizing (3), and [a, b] under same lock would avoid this case
Bug: 73399920
Change-Id: I6b01f797fd6f4a2e5b3c078bb374ad40fcc311c8
> Calculating extracted color during icon generation and storing it in model and DB
> Removing unused logic avoid various types of badge rendering
> Icons are badged with extracted colors, while folder is badged with theme color
Bug: 35428783
Change-Id: I93e30c52fbded7515c3ae1778422e84672eafb56
Apply model updates as son as they arrive instead of waiting for onResume.
Various workspace items do not use any configuration dependent resources.
For Widgets, we wait until the host starts lietening before inflating the actual view.
Change-Id: Icb2f5e5940c1ce6c27062ccd34eff87e80af5ab1
> Removing Widgets and related states
> Fixing different durations being used when opening/closing all-apps
> Removing some unnecessary object allocations when changing state without animation
> Differentiating widget bootm sheel and full sheet in logs
Bug: 67678570
Change-Id: Ic169528736d04ee0b38564b4f96595ba066eabda
> 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
This avoids acquiring a lock for upating the sharedPrefs during onResume
as all the logic runs on a single thread.
Bug: 67305604
Change-Id: I1bbea382da9fafb403b4e9508f393f78db28478d
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