Commit Graph

392 Commits

Author SHA1 Message Date
Hyunyoung Song 69a49c1d24 merged ub-launcher3-dorval, and resolved conflicts
Test: $ make -j 32 dist checkbuild
Bug: 62196967

Change-Id: Ibdcdde25cb117574549404348105d49348e79bea
2017-05-31 11:48:47 -07:00
Sunny Goyal 4869bf3f74 Removing workspaceLoaded check from loadDeepShortcuts()
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
2017-05-17 12:07:39 -07:00
Hyunyoung Song 93d0b87153 merged ub-launcher3-dorval, and resolved conflicts
Bug: 36904684
Bug: 37929893
Bug: 36068989

Merged-In: I3da7113926cdcb933707b3864c4334223c11e25b
Merged-In: If9b11b212852cb1048d54db2224dab4acf2d93e0

Test: make -j 32 dist checkbuild

Change-Id: I7e12afdf66a892654a06b77f7fc625a93554d1e7
2017-05-10 14:16:30 -07:00
Tony Wickham 431a71320c Don't delete legacy shortcuts in loadWorkspace()
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
2017-05-04 17:08:30 -07:00
Tony Wickham 6f725f2831 Merge "Only add widgets system shortcut if widgets exist" into ub-launcher3-dorval 2017-04-20 23:08:47 +00:00
Tony Wickham a7e1c1c088 Only add widgets system shortcut if widgets exist
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
2017-04-20 15:10:38 -07:00
Sunny Goyal 55fddc825b Deleting any ghost widget from system service:
> 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
2017-04-17 15:28:39 -07:00
Hyunyoung Song 0aa685bb6f Merge "Launcher dump proto that will be used for:" into ub-launcher3-dorval 2017-04-06 22:42:10 +00:00
Hyunyoung Song e295acaeb3 Launcher dump proto that will be used for:
$ 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)
2017-04-04 23:06:30 +00:00
Tony Wickham 86222d23e2 Add support for getting widgets/shortucts for a particular package/user
Bug: 34940468
Bug: 33553066
Change-Id: I5d0131df206c6a13d4227ad28c5b094bbf1343df
2017-04-04 14:36:52 -07:00
Sunny Goyal 24bb66a1c5 Removing the profile extra from intent and using the profile id from the profile column
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
2017-03-21 15:14:43 -07:00
Sunny Goyal ad2e91a216 Fixing SDCard and package enabled state checks in PackageManagerHeler
Bug: 32365540
Change-Id: Iaac3e08ce55457ebbfb3633514ebc8ade6d200c5
2017-03-01 17:17:40 -08:00
Sunny Goyal e05b08f705 Using transaction when dropping tables, so that the DB never enters
an inconsistant state

Bug: 34720697
Change-Id: I55a26d63be6c06622da6ee3395bf1990f1a58a11
2017-02-23 18:30:56 -08:00
Jon Miranda f28629a47b Ignore tasks if the LauncherModel is still pending.
The tasks will be enqueued after the model is loaded when it
gets to the final state.

Bug: 31509386
Change-Id: Id72aaedb025a91a49b25e1ef103cc1976d603b21
2017-02-23 15:12:42 -08:00
Sunny Goyal dd96a5e4fd Simplifying Model data load state management
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
2017-02-22 15:45:14 -08:00
TreeHugger Robot 232f6a3884 Merge "Launcher3: fix app shortcuts for suspended apps" into ub-launcher3-master 2017-02-21 20:33:33 +00:00
Charles He 3ff9047221 Launcher3: fix app shortcuts for suspended apps
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
2017-02-21 20:23:50 +00:00
TreeHugger Robot 93bc3c1e41 Merge "Separating methods for updating the model to a sepatate class." into ub-launcher3-master 2017-02-16 21:56:39 +00:00
Sunny Goyal 43bf11d9c9 Separating methods for updating the model to a sepatate class.
Removing static access to model update methods, to allow for better
access control and testing

Change-Id: I9afe004dbf1b2fe50df422fd28bceea9230a4704
2017-02-16 13:50:14 -08:00
TreeHugger Robot ee544c5d24 Merge "Making methods in PaackageManagerHelper non-static" into ub-launcher3-master 2017-02-09 23:28:21 +00:00
Sunny Goyal 342e466739 Making methods in PaackageManagerHelper non-static
Bug: 34112546
Change-Id: Ia3db3e2f56d26e314000e302b51e6d38607c525d
2017-02-02 15:26:12 -08:00
Ricky Wai 1e92b1fd05 Fix duplicates work apps in launcher work folder after reboot
Cause:
When we run heuristic.processUserApps(apps), "apps" could be outdated,
as it's scheduled in mBindCompleteRunnables and only runs after bind
completed. The fix is get an updated app list and reschedule
processUserApps().

Test: Use DMAgent to activate work proifle, it does not show duplicated work
icons anymore.

Bug: 32650490
Change-Id: Ia705a24c6264c077af30cc4297c8b165744c827d
2017-02-02 19:23:10 +00:00
Hyunyoung Song 3c7d9cbb20 Clean up around 1) Log.VERBOSE and 2) dump
b/31772480

Note: in the follow up CL, I will add the dump result of the bgDataModel
to a proto

Change-Id: I5261cff0fb29cedd1dd772b8b15f67095ad5b967
2017-02-01 15:11:08 -08:00
Sunny Goyal 81e4491450 Fixing loadWorkspace
> Adding checks on legacy shortcuts
> Checking restore status based on package and not componentName

Bug: 34123342
Change-Id: I442699e4ebb34ae66aa25c512bfcdc1b4fd5ae2a
2017-01-24 22:55:36 -08:00
Sunny Goyal 1b0726359b Moving icon generation out of ShortcutInfo constructor so that it
can be created on the UI thread

Change-Id: If84e52041eb4ab20807f5cfd4b7f31d7b5f381ed
2017-01-18 11:30:59 -08:00
Sunny Goyal c1ad0ce8ae Only marking items not already restored as restore
> Moving the restore property to LoaderCursor

Bug: 34123089
Change-Id: I1f992ef086d65e0b3cf18d3b2cf37a4f254c97d2
2017-01-13 10:38:41 -08:00
Sunny Goyal e6e7200791 Removing promiseIntent property from ShortuctInfo
> 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
2017-01-12 18:54:21 -08:00
Sunny Goyal 3e9be43b6e No more LauncherActivityInfoCompat
Bug: 32745285
Change-Id: I00f13794d5dc0a2b1fe03ec74de36018f22eb386
2017-01-11 13:06:50 -08:00
Sunny Goyal 87f784c285 Removing static Context access using LauncherAppState
> This ensures that LauncherAppState is only accessed in the presence of
a valid context

Bug: 33032833
Change-Id: I955e5cb022f8bd6374681ae6c0720a2666d5b750
2017-01-11 12:52:03 -08:00
Sunny Goyal 1cc1c9ad83 Enforcing background thread when accessing iconCacheDb.
> Moving any icon cache access to background thread
> Updating Apps list to avoid loading icons for ignored apps

Bug: 21325319
Change-Id: Id72755100f1176ccfcc99249c5e02873cc249a13
2017-01-10 23:42:49 -08:00
Sunny Goyal aaf86fe9a0 Refactoring some loadWorkspace logic in a separate class
Bug: 34112546
Change-Id: I8a43ed1646056aa1957ac3d6ea82018691df6386
2017-01-10 13:53:50 -08:00
Sunny Goyal a32bf9b181 Removing logic around replacing icon during restore
This logic was dependent on key-value based backup. Since we are
using full-backup, the appropriate flags are never set.

Bug: 18764649
Change-Id: I95a93eee63ac9c82acfb66abfdd1a5407974df46
2017-01-05 14:07:58 -08:00
Sunny Goyal 3fe4a146cf Simplifying IconCache access code
Providing a way to access icon cache without LauncherAcitivtiyInfo.
This allows fetching LauncherActivityInfo only when required, thus
avoiding system RPC when the icon is already in cache.

Change-Id: I92918c7a0d0d0796e5f7b70d4ecb6787c52c6600
2017-01-03 15:58:53 -08:00
Sunny Goyal 7c74e4ae64 No more UserHandleCompat
Bug: 32745285
Change-Id: I762fb4e268c1afe48a1860ab12a4ccb3f626aa95
2016-12-15 22:06:10 -08:00
Sunny Goyal 1cd01b023a Ensuring that ShortcutInfo always has an icon
> Making iconBitmap public instead of a getter (similar to AppInfo)
> Removing getIcon() which can lead to IO on UI thread
> Removing updateIcon and handling the update at the caller

Bug: 21325319
Change-Id: I6a49b9043f974e9629ea25e77012d97cc04c0594
2016-12-13 10:31:12 -08:00
Sunny Goyal f75baa9f40 Adding support for deep shortcuts in Install queue
Bug: 32904959
Change-Id: Ida43bcf78da716defdf95eb704c31973bc390ea1
2016-12-03 15:55:13 +05:30
Sunny Goyal b7f5431232 Merge "Moving ShortcutInfo creation in InstallShortcutReceiver to background thread" into ub-launcher3-master 2016-11-30 16:42:31 +00:00
Sunny Goyal 2bcbe13c64 Moving ShortcutInfo creation in InstallShortcutReceiver to background thread
> Creating shortcut info requires iconCache access

Bug: 21325319
Change-Id: I3317d8b6824aa05b836f3ed3626f169d4d34f783
2016-11-30 05:47:57 +05:30
Sunny Goyal d423a8b868 Merge "Changing DeepShortcutManager to have a singleton contructor instead of getting it from LauncherAppState" into ub-launcher3-master 2016-11-21 17:07:05 +00:00
Sunny Goyal dde4fd971e Changing DeepShortcutManager to have a singleton contructor instead
of getting it from LauncherAppState

This follows the design of other managers and makes it easier to access it
from other processes and non-ui thread.

Bug: 33032833
Change-Id: I8ad82ae5b6cc47bae885f9896985675c7dd0d5b8
2016-11-21 22:28:23 +05:30
Sunny Goyal 32f3dda802 Adding a utility class to enforce that icons are always flattened on
the background thread.

Bug: 21325319
Change-Id: I4d0f02557cdbf70cfa86750ac047faf2917e39bf
2016-11-19 23:40:07 +05:30
Sunny Goyal f0ba8b7ca1 Moving various runnables in LauncherModel to individual tasks
> Adding tests for some of the runnable

Change-Id: I1a315d38878857df3371f0e69d622a41fc3b081a
2016-11-09 15:50:08 -08:00
Sunny Goyal f5e3744637 Updating version check method names
Change-Id: If98851677545a9bbb9de308c23ff5c155a61a8bf
2016-11-02 10:31:41 -07:00
Sunny Goyal d164b7f4ab Fixing static instance of Indexer being created in the model
Indexer depends on the locale and should be created when ever the config
changes. Moving the widget indexing to the adapter (similar to allApps)
which gets created whenever the activity is recreated.
This fixes the bug where widgets indexing breaks if locale changes while launcher
process is alive
Also fixing the bug in widget model cloning where the HashMap was not cloning
the underlying ArrayList

Change-Id: I7dbe6290e73299c4c07aa7fa564077a2649e1a4c
2016-10-19 07:42:34 +01:00
Tony Wickham 6982de2485 resolve merge conflicts of 2fd0208 to ub-launcher3-master
Change-Id: I20ad6eaace81786be080e28d6eb551908add6d90
2016-10-12 14:38:43 -07:00
Sunny Goyal 8e0e1d7609 Moving come helper methods to corresponding classes
> Moving isPackageEnabled to InstallShortcutReceiver
> Moving the deep shortcut map to the data model
> Removing appInfo.flags. Instead fetching the flags when needed

Change-Id: I654dd8acefa7b7d183b0419afbe112bef001d536
2016-10-10 20:58:56 +00:00
Tony 2fd0208605 Use Launcher.getLauncher(Context) instead of type-casting.
Bug: 32010039
Change-Id: Icb80d3e547a706740b84df2cb80f99e4a7f81c43
2016-10-07 12:50:01 -07:00
Tony Wickham 8177ac7f88 Remove shortcuts that no longer exist or are no longer pinned.
am: 7695e603bf

Change-Id: I525c3342a7559f1cd831cbd4f56c2acd8b6875b9
2016-09-23 00:35:13 +00:00
Tony Wickham 7695e603bf Remove shortcuts that no longer exist or are no longer pinned.
(This change is in the onShortcutsChanged() callback.)

- Remove all workspace icons that correspond to shortcuts that
  are now unpinned
- Remove all workspace icons that have the same package and
  user handle as passed in onShortcutsChanged(), if they aren't
  included in the list of shortcuts that is also passed.

These cases will happen for static and dynamic shortcuts,
respectively, when an app's data is cleared.

Bug: 30316501
Change-Id: I50db6567cb318d087012ab5d8208e765b81c6f99
2016-09-22 16:54:57 -07:00
Sunny Goyal e9956a76c9 Separating all the static data in a separate class, BgDataModel.
This will allow moving all the Tasks defined in LauncherModel as
separate intependent classes

Change-Id: I0b2f82b90dc22590eb1cc360a5690e2e7f857b5c
2016-09-09 13:32:32 -07:00