Split InvariantDeviceProfile#numHotseatIcons into two variables:
numDatabaseHotseatIcons and numShownHotseatIcons. These are generally
the same, but different DisplayOptions within the same GridOption
can choose to show different numbers of hotseat icons while sharing
the same database.
numDatabaseHotseatIcons is used for all reading/writing/migrating
purposes, while numShownHotseatIcons determines how many Hotseat
icons to show in the UI.
Test: Existing tests pass, added two new migration tests
Bug: 184789479
Bug: 171917176
Change-Id: I54583504f61a47a4444b6a637ebb7e3ab31528b7
1. Changed Preload Icon UI to be grayscale while the app is not startable.
2. Added progress bar for when app is installed but still ownloading.
3. Updated Preload Icon progress and click handling to use new incremental api.
Progress bar color updates will follow in a separate CL.
Demo: https://drive.google.com/file/d/1H1EvtTorLeJwC1eiq10tm-TT81YZ6osk/view?usp=sharing
Bug: 171008815
Test: manual
Change-Id: I5874a5146d79a8c91d7d90ff0b9c1c427a3c95dd
In order to experiment with presenting more predicted content to the
workspace I have added a flag to expand smartspace to two rows.
This CL does not include any app relocation. If an app lives in a space
the expanded smartspace will occupy, it will be removed from workspace.
Change-Id: I38354dc81a34a495828cf7a69ddb04cc137e2e4e
Adding support for persisting itemInfos on disk. This uses
a separate xml file. Unlike prefs, it does not keep the items
in memory and is just a wraper over reading/writing a file.
Bug: 160748731
Change-Id: Iaccab9928ab8f30127fb3c2d630ca8ca83f0bd05
Bug: 144953948
Bug: 137777105
The new lite proto builder is used to send two types of logging to statsd
1) Snapshot logging
2) App launch, task launch, task dismiss
Statsd will be connected once platform CL is submitted
Change-Id: If606cee5288fe4bd6c522605ae84eb0f24174f5b
go/grid-migration-preview
With this change, we can see actual grid migration in wallpaper preview.
The approach here: we use a tmp table (favorites_preview) here specifically for this preview (to write off the migration results), and load from this tmp table workspace items if migration is necessary and successful. Otherwise, we load from the current workspace.
UPDATED: this change should be completely compatible with the new multi-db grid migration algorithm. Here is why
1. In LauncherPreviewRender#renderScreenShot, I added a check to decide which grid migration preview method we should call. Once v2 preview method is implemented, it should be integrated with other parts of this change perfectly (the reason will be mentioned below).
2. While we have multiple DBs, mOpenHelper in LauncherProvider always points to the current db we are using. Queries using CONTENT_URI is routed to whatever DB mOpenHelper points to, so it works perfectly to directly operate on CONTENT_URI even when we use multi-db underneath the hood.
3. With 1 and 2 mentioned, I believe in order for this preview change to support multi-db, we only need to implement the V2 grid migration algorithm. Because most of what we are doing in this change is wrapped in GridSizeMigrationTask, it's perfectly safeguarded.
Bug: 144052839
Change-Id: Ie6d6048d77326f96546c8a180a7cd8f15b47e4c4
> Multiple instances of LauncherIcon created when
LauncherIcons refers IconCache which in turn creates new LauncherIcons
> Widget icons are never cached as they were using low res icons
> Shortcut drag icons are not loaded synchronously
when using PinItemRequest flow
> Wrong lastUpdatedTime is used in iconCache for shortcuts
> IconUpdateHandler does not ignore managedUser promise icons
Change-Id: Ie7eed68a30fad11d1861b6c70c380953a15ae1cf
This will allow subclassing BitmapInfo to support custom icon/dynamic
icons which can be loaded on the background thread instead of going
through IconFactory which runs on UiThread
Change-Id: Ieced6e91330bdff1b505826d097a8df711dfe967
- Added flag PROMISE_APPS_NEW_INSTALLS
- Promise icons only added if flag (above) is on, as well as the setting
for "Add icon to Home screen"
- Maintains a list of session ids of promise icons that have been added to the
home screen, so that if the user manually removes the icon, we do not add
it back to the home screen when the install is completed.
- Queues all applications as promise icons, and replaces with actual
app info when its being added to the workspace.
Bug: 135633159
Change-Id: I411db59f9bd1b346d98b9bb73f5376a5983b8de5
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
> Avoiding color extraction for icons which have already be evaluated
> Fixing color extraction from hardware bitmaps
Bug: 111343544
Change-Id: I624866e892465684871fbc130003e32945d86460
This removes some crass dependency on Launcher compat implementation
making it easier to move iconCache to a separate library
Change-Id: If5fab0c82d98089cde6f54b6a374fb7bb2db5ae8
Bug: 115891474
Test: make -j10 icon-loader
Next step: Launcher will depend on icon-loader in next CL
Change-Id: I797ddb857cf8be79f3be6ca2f174c593ca3713a5
> 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
This is the first step in adding a flag toggler UI to launcher.
The change migrates a single flag (QSB_ON_FIRST_SCREEN) from a
boolean constant to a boolean method. In future, that will allow
us to return different values at runtime.
Bug: 117223984
Change-Id: I1e62c91dd941b8145166021bc0aa157733e62ea0
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
> 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
> Adding checks on legacy shortcuts
> Checking restore status based on package and not componentName
Bug: 34123342
Change-Id: I442699e4ebb34ae66aa25c512bfcdc1b4fd5ae2a
> Instead of checking promiseIntent != null, using isPromise() for consistency
> Fixing bug where clicking a pending icon does not launch anything
> Fixing bug where draging an icon on Info target, permanently hides the icon
Change-Id: Ic8f6b56042dba42d5ed9aedb0f5947186e1a4208
> This ensures that LauncherAppState is only accessed in the presence of
a valid context
Bug: 33032833
Change-Id: I955e5cb022f8bd6374681ae6c0720a2666d5b750