Commit Graph

57 Commits

Author SHA1 Message Date
Sunny Goyal
a5c8a9eb66 Adding logic to pull in workspace data from another Launcher3 based
provider. This allows OEMs to keep the user's homescreen intact while
changing the default home app package.

Bug: 28536314
Change-Id: Ibebfd7dd33aa2cbd9ca28d2d611dd0a4a5971444
2016-07-09 16:19:26 -07:00
Sunny Goyal
f03bd4f547 Build fix.
Missed some traces of key-value backup

Change-Id: Ifda94aa27aa53625bfb7ca173c6750c1b2433669
2016-07-09 15:43:07 -07:00
Sunny Goyal
eb77aaea89 Removing Key-Value pair backup logic as Launcher now uses full-data backup
Change-Id: I3bbaec2b33afe8c1da3ca1468c7c733cc3194604
2016-06-23 16:31:54 -07:00
Tony Wickham
ec1b1c542c Merge "Add support for launcher shortcuts." into ub-launcher3-calgary 2016-06-22 20:35:31 +00:00
Sunny Goyal
803896767b Fixing bug in GridSizeMigrationTask, where it was not accounting for
an extra space when there is no all-apps icon

Bug: 29569843
Change-Id: Ib768f0d069aed413bd8f4c2aa86ab1d3d657680e
2016-06-22 09:51:07 -07:00
Tony Wickham
bfbf7f9f4a Add support for launcher shortcuts.
- This CL has no UI but provides the necessary backing for one.
- Adds new item type: ITEM_TYPE_DEEP_SHORTCUT, to distinguish from
  ITEM_TYPE_SHORTCUT. We can reconsider these names.
- Adds ShortcutCache, using LruCache for up to 30 dynamic shortcuts
  (pinned shortcuts are always cached in a HashMap).
- DeepShortcutManager queries for shortcuts and other things like
  pin them. In a future CL it will use the cache, but for now it
  simply makes an RPC for all queries.
- LauncherModel maintains counts for pinned shortcuts, pinning and
  unpinning when counts reach 1 or 0, respectively.
- LauncherModel maintains a map of components to lists of shortcut ids,
  which Launcher gets a copy of after it is changed in the background.
  This will allow us to know how many shortcuts an app has immediately,
  and query for details as the UI is animating.

Change-Id: Ic526f374dd10d72a261bae67f07f098fca8d8bca
2016-06-21 15:49:16 -07:00
Sunny Goyal
bb011dad4e Adding a flag (enabled by default) to remove the all-apps button.
All apps can still be opened by clicking the caret.

Bug: 29398447
Change-Id: I61f1b05cea83a0a49d7cc16c518c5419618ba779
2016-06-17 08:17:22 -07:00
Sunny Goyal
a9e2f5abb3 Adding a DB update path to handle the QSB position change
> Renamed the id of 1st screen to 0 and making space for the QSB
by running the grid migration task.
> Added a feature flag to easily disable the QSB-in-workspace behavior

Change-Id: Ie3369f0d4433d916e9d6215d414770d4333f3e26
2016-06-15 10:03:12 -07:00
Sunny Goyal
da4fe1a624 Moving the QSB to the workspace grid.
The QSB will only be resent on the first screen of the workspace
covering the full width of the first row. If will not be movable.
The first screen of the workspace will not be movable.
The searchDropTargetBar no longer contains the QSB (it can be
renamed in aseparate cl).

Refactoring all QSB related logic by moving it to a custom view
inflated only using xml.
Change-Id: Icb4fd6eb855df1af15f685961c38351bf4fd4f4a
2016-05-27 18:23:29 -07:00
Sunny Goyal
ff4ba2d995 Refactoring out grid occupancy management in a separate class
Change-Id: I37a830c0f2eb0a0dd4f5fc78fa29127cb18cb3c2
2016-05-27 09:12:26 -07:00
Sunny Goyal
6388b2c61b Adding some utility methods for thread verification
Change-Id: I3fb6a1b860bba8a6efe413dd2698f972dc3e2506
2016-04-15 18:03:50 -07:00
Sunny Goyal
1ab22630a0 Fixing wrong grid size definitions
Bug: 27958565
Change-Id: Icabc651552bbf6483fedbaeb52745c48d418f9ea
2016-04-07 12:21:26 -07:00
Sunny Goyal
4ddc40130a Creating WidgetCellItem to wrap LauncherAppWidgetProviderInfo and resolveInfo
In PackageItemInfo,, using the user of the first item in the sub-list

Bug: 27585511
Change-Id: I8243f0e5c831af65661ae815489e53e9fcade837
2016-03-18 11:06:01 -07:00
Sunny Goyal
2e1efb480a Changing the widget loading strategy
Widget is loaded only when the user enters the overview mode and we keep
the list updated as long as the user is in the overview mode. Once the user
leaves the overview mode, we stop responding to widget updates

Bug: 26077457
Change-Id: I9e4904b8f1300bfe0d77e2bc5f59aa6963fad8d1
2016-03-09 20:21:22 -08:00
Hyunyoung Song
dfaeff757d Manual revert due to conflict:
am: d31dcbcc7c

* commit 'd31dcbcc7c7901959c65c4e635e59274a1d4c334':
  Manual revert due to conflict:
2016-02-23 19:56:32 +00:00
Hyunyoung Song
d31dcbcc7c Manual revert due to conflict:
Revert "Load label in bg thread to prevent ANR b/27238970"

This reverts commit b62fd09576.

Change-Id: Ia751e3414fb24a18bb8bb9ca09dcd93d0e4249f6
2016-02-23 11:36:21 -08:00
Hyunyoung Song
b62fd09576 Load label in bg thread to prevent ANR
b/27238970

Change-Id: Ic5d77df7d5276cee07861d59427a94fb19691d9c
(cherry picked from commit 72a9953cf4)
2016-02-23 00:45:56 +00:00
Hyunyoung Song
72a9953cf4 Load label in bg thread to prevent ANR
b/27238970

Change-Id: Ic5d77df7d5276cee07861d59427a94fb19691d9c
2016-02-22 16:36:15 -08:00
Sunny Goyal
f076eae0ca Adding support for migrating the grid between any two valid screens sizes.
The grid is migrated in steps where each step consists of at max one column change and at max one row change.
Adding some unit tests for GridMigrationLogic

Bug: 25958224
Change-Id: Ie54e872ea0925cc4c463edbba0a7201d62b373a0
2016-01-20 11:58:09 -08:00
Sunny Goyal
f862a26347 Extending the grid migration logic to handle density changes
For hotseat migratino, we simply drop the items with least weight
If the workspace row/column decreases by 2 or more, we clear the whole workspace

Bug: 25958224
Change-Id: I7131b955023d185ed10955f593184b9238546dc8
2016-01-06 10:16:44 -08:00
Sunny Goyal
d249748abf Making all provider calls using content resolver.
This will allow us to easily move db creation out of onCreate

Change-Id: Idd949624b0a9c95e4451e48db7764b7b7922c40a
2015-10-20 11:04:44 -07:00
Sunny Goyal
f912beb2ee resolve merge conflicts of fe3db428ab to ub-launcher3-master.
Change-Id: Icc60a61f621fefe9db67b178921e62f7d72d7e5a
2015-10-20 10:37:15 -07:00
Sunny Goyal
f725824fa2 Refactoring getPreferenceKey method
This method was returnning a constant and getting inlined by proguard.

Change-Id: I87348e25b21483adc1b27d16f99dec4b73205701
2015-10-20 09:41:04 -07:00
Tony Wickham
c2d77a5bb0 am fb062c63: Close some Cursors and call super.onFinishInflate().
* commit 'fb062c63355f65e6df9e99cbf4cce49cee2900d1':
  Close some Cursors and call super.onFinishInflate().
2015-10-16 17:17:46 +00:00
Tony Wickham
fb062c6335 Close some Cursors and call super.onFinishInflate().
Android Studio gave these warnings, and they seem like good ideas.

Change-Id: I9a4d3997fd18e86e007e4511e1ac9e8a75509265
2015-10-16 10:12:23 -07:00
Sunny Goyal
2924080923 am 4c67dce4: am ce0a8946: Merge "Preventing nullpointer exception when cloning rawList" into ub-launcher3-burnaby
* commit '4c67dce43f6e4f535bfe9c6d804db0822ac6db9d':
  Preventing nullpointer exception when cloning rawList
2015-09-23 18:43:52 +00:00
Sunny Goyal
6a706b1dd7 Preventing nullpointer exception when cloning rawList
Bug: 24299525
Change-Id: I92018a3da7d75afc2c6997302f8e0492eb78e62f
2015-09-22 16:56:55 -07:00
Sunny Goyal
a410e99205 am 6579e1ee: Disabling home screen migration logic
* commit '6579e1eee8a6fce44f020d40c3bbdbf245d6c12c':
  Disabling home screen migration logic
2015-08-11 21:03:31 +00:00
Sunny Goyal
6579e1eee8 Disabling home screen migration logic
Change-Id: I506948852945bfb8ebd7a95fc951880ffe9a3e17
2015-08-11 12:10:34 -07:00
Sunny Goyal
f85602b00e am 7ca3250a: Merge "Creating a cache of users to avoid multiple calls to UserManager" into ub-launcher3-burnaby
* commit '7ca3250a10d608c06a733a92cd61a2feadb9007f':
  Creating a cache of users to avoid multiple calls to UserManager
2015-08-07 18:00:50 +00:00
Sunny Goyal
823fd50902 Creating a cache of users to avoid multiple calls to UserManager
Bug: 22805101
Change-Id: I9cd270efd74fdd34a7eb738fc25797e6f1bf2487
2015-08-04 12:37:05 -07:00
Sunny Goyal
3c938a7e0d resolved conflicts for merge of 3f7550c1 to ub-launcher3-master
Change-Id: I3bb155473d48832e496a8983f84c20e6e935fa41
2015-08-04 10:33:30 -07:00
Sunny Goyal
233ee964a9 Calculating widget minSpans and spans statically/independent of orientation
> Filtering the widget list and excluding widgets which dont fit the grid
 > setting minSpans for the widget item when binding.

Bug: 22541314
Bug: 22559137
Change-Id: Ieda48b56c95bee0c7ec71dd691af7e23e2d43db6
2015-08-03 16:39:49 -07:00
Sunny Goyal
7808e27363 am 8f375d1e: Merge "Enabling logging for migration task" into ub-launcher3-burnaby
* commit '8f375d1e68cdc67ce693a7693a2175ef5cb3b4eb':
  Enabling logging for migration task
2015-07-31 22:06:40 +00:00
Sunny Goyal
8f375d1e68 Merge "Enabling logging for migration task" into ub-launcher3-burnaby 2015-07-31 22:01:31 +00:00
Winson Chung
1493662849 am e990d495: Merge "Fixing minor memory leak with name comparator." into ub-launcher3-burnaby
* commit 'e990d49534bb61606bcf3e61fa3c26e088d1b854':
  Fixing minor memory leak with name comparator.
2015-07-31 20:12:14 +00:00
Winson Chung
e990d49534 Merge "Fixing minor memory leak with name comparator." into ub-launcher3-burnaby 2015-07-31 20:08:57 +00:00
Sunny Goyal
d934e0b0b7 Enabling logging for migration task
Bug: 22353460
Change-Id: I8a9a8ea0d5523acb6d2376920535a9f4f519525d
2015-07-31 13:03:11 -07:00
Sunny Goyal
c1729a4d15 resolved conflicts for merge of e5bb705f to ub-launcher3-master
Change-Id: Id7ec170a3c4b1415b18ad46a18d7ea69595a8992
2015-07-31 12:53:08 -07:00
Sunny Goyal
e5bb705fb7 Homescreen migration from a larger grid to a smaller grid.
Adding support for restoring from a larger device, if the grid size
difference is not more that 1.
During restore add all the items in the DB, and run a one-time migration
the next time launcher starts.

The migration strategy is defined in ShrinkWorkspaceTask.java which involves
resizing, moving and removing some items.

Change-Id: I6ee411f6db5bf0152b527e16146a88c56dec2d97
2015-07-31 12:03:33 -07:00
Winson Chung
eea0225304 Fixing minor memory leak with name comparator.
- WidgetsAndShortcutNameComparator was using the actual widget and shortcut resolve
  infos as the key to the label cache.  Neither of these classes override hashCode()
  and we were retrieving a new set of widgets and shortcuts whenever packages changed
  so we would end up creating more and more entries in the cache.  This isn't a huge
  leak, but could lead to problems if Launcher is used for long periods without being
  killed.
- Now, we use a ComponentKey as the key, so that we don't keep a reference to the
  widget/shortcut infos and also ensures that they should hash to the same labels.

Change-Id: I91347ee72363adbc2b075b67dba331e35ab1fe34
2015-07-27 18:35:28 -07:00
Hyunyoung Song
11bebbc463 am f63dda5e: Query the title and icon for app using correct user handle.
* commit 'f63dda5e153febf0b5163ac41d927129ec822314':
  Query the title and icon for app using correct user handle.
2015-07-17 00:39:17 +00:00
Hyunyoung Song
f63dda5e15 Query the title and icon for app using correct user handle.
> Note: when there are corp and regular user profile widget providers,
it is guaranteed that regular user profile widget provider is always
queried first. Thsi is guaranteed because inside AppWidgetManagerCompat.getProviders(),
regular user always takes prescedence when iterating thru different providers
associated to different users.

Change-Id: I5e38e1fb30925ccba7e1e2925fd3e77c44a14901
2015-07-16 17:24:30 -07:00
Hyunyoung Song
3155e34856 am cbab1cb4: Merge "Hide spammy WidgetModel log behind a DEBUG flag" into ub-launcher3-burnaby
* commit 'cbab1cb44f4fca4ea80ec2aeb63b55b9ea5d9e2e':
  Hide spammy WidgetModel log behind a DEBUG flag
2015-07-13 22:01:01 +00:00
Hyunyoung Song
f56513f6ba Hide spammy WidgetModel log behind a DEBUG flag
Change-Id: I0119855655516d9fdc114334a974b8766aabf674
2015-07-13 10:26:22 -07:00
Sunny Goyal
aa8ef119f1 Refactoring ItemInfo
> Changing dragObject to ItemInfo
> Removing dropPos which is always null
> Removing requiresDbUpdate which is only used in CellLayout

Change-Id: I753ddaae0880c8a9bfee5a1266095ff34610284a
2015-06-30 10:26:49 -07:00
Winson Chung
2a1d4ed54f Fixing crash when using app name comparator with empty titles.
Bug: 22065752
Change-Id: I4160f5e1728e46ce85fd2579889e7952de01a752
2015-06-25 10:05:54 -07:00
Hyunyoung Song
eaf291b9fe Widgets model should respect AppFilter.
> This pattern is already used in AllAppsList
> mBgWidgetsModel variable cleanup inside LauncherModel.

b/21739736

Change-Id: I03a05064ce3c3e5effb09055af9f4d4de2811c95
2015-06-17 21:12:44 -07:00
Sunny Goyal
091f0ffd92 Updating widget list when iconCache updates
> Fixing bug where items were not getting removed from the memcache
> Fixing bug where package entries were not getting removing because
of component mismatch.

Bug: 21612532
Change-Id: Ie56f3272f7fb7e1a37c5ff9bfa523d814edc1a02
2015-06-04 15:21:23 -07:00
Hyunyoung Song
7b3bdcd6bb Merge "Consistent scrolling experience for All apps and widget tray" into ub-launcher3-burnaby 2015-06-04 18:39:44 +00:00