Commit Graph

83 Commits

Author SHA1 Message Date
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 bde762c618 Merge "Loading proper app icon if the associated activity is null" into ub-launcher3-master 2017-01-13 20:37:53 +00: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 f745b925b4 Loading proper app icon if the associated activity is null
Bug: 34123342
Change-Id: Ibb80c6e442beea34c612fb4ce5246260714820e2
2017-01-11 14:20:57 -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 aa29244754 Fixing AppInfo missing intent when loading icon
Bug: 34199268
Change-Id: I7223d1d408e7b48f9c63c9801c2805aaf7363038
2017-01-10 13:51:01 -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 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 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
Sunny Goyal ad0b6c1e18 Adding support for multiwindow drag and drop
am: d139b0aa7d

Change-Id: Ie2a41a3e355ff502a870bde5c8be2576b8712bf7
2016-09-12 21:58:54 +00:00
Sunny Goyal d139b0aa7d Adding support for multiwindow drag and drop
Change-Id: I95b46e3c3f1238307d3ef5a6c81a8e530ba0987a
2016-09-12 14:37:46 -07:00
Sunny Goyal 10629b077c Moving some image handling classes to .graphics package
Change-Id: Id6d3d0b9c345a503ff2e09f073eb4b6449e21c7e
2016-09-02 12:34:33 -07:00
Sunny Goyal 1edab71d01 Unifying toString() method for various ItemInfo subclasses
Change-Id: I7cde42f0df412e2877fb93c77e74ee56a25edead
2016-09-01 10:55:45 -07:00
Tony Wickham fc02c1b446 Use promisedIntent instead of intent when deep shortcuts are restored.
This ensures that the intent has the package corresponding to the
shortcut publisher, rather than a market intent. It also ensures that
the intent has the EXTRA_SHORTCUT_ID attached.

Bug: 31123204

Change-Id: I05d56396b629880322e915f52bfc0605b921b0b1
2016-08-29 15:59:28 -07:00
Tony Wickham 4efffc5ba6 Use shortcut disabled message if available.
Bug: 30681210
Change-Id: Ibb5fd58e5fc9557b63730bc1e3c3977133769466
2016-08-05 10:40:12 -07:00
Sunny Goyal f8d2a70e0f Merge "Adding quiet mode support for shortcuts" into ub-launcher3-calgary 2016-08-01 22:04:11 +00:00
Sunny Goyal 66d17ca32d Merge "Badging shortcuts with app icons" into ub-launcher3-calgary 2016-07-29 23:14:51 +00:00
Sunny Goyal d3b87ef196 Adding quiet mode support for shortcuts
> LauncherApps returns empty list when the user is locked. Not relying on
LauncherApps in this case
> When the user is locked, removing all dynamic shortcuts
> Loading shortcuts from DB when the user is locked
> Verifying the shortcuts again when the user is available

Bug: 30411561
Change-Id: Ib6eb372c5b009cadb86a8f6e781f3f3cbf787ceb
2016-07-29 16:10:31 -07:00
Sunny Goyal 79cf718fcd Badging shortcuts with app icons
Change-Id: I3fa005ece20a54b31f823acb28c384ecdf1eafb1
2016-07-29 16:06:36 -07:00
Sunny Goyal 70a7c9b700 Showing the shortcuts in the disabled state and removing ti from the menu
when its disabled

Bug: 30315906
Change-Id: Ice747e7be955d8bb2dd65191f7613e2afd4abc1c
2016-07-28 12:22:51 -07:00
Tony Wickham 672d07f3f0 Check package name and user handle in onShortcutsChanged().
Otherwise shortcuts with the same id would be updated,
even if they were in different packages.

Bug: 28980830

Change-Id: Ideefe3aaac83af38c03a38d821bac192ae55fe67
2016-07-28 17:17:51 +00:00
Sunny Goyal 10923b30a2 Removing shadow and badging from the icon which is shown in the menu
These are added as soon as the icon is added to the workspace

Bug: 28980830
Change-Id: I725d2ee8994324f09d9ecf7bbbb0090a7ceb5769
2016-07-26 14:18:09 -07:00
Sunny Goyal 4a464794f2 Adding support for dynamically adding shadows to the icon
Change-Id: I94d98750aea1faef8879e25990aa5c41a4894708
2016-07-20 11:26:22 -07:00
Winson b93f34a8be Fixing issue with content description not being updated.
Bug: 30064868
Change-Id: I09a0576c3618c253c25a5e755081833816887698
2016-07-12 18:02:37 -07:00
Sunny Goyal 9994b2b171 Making some shortcut manager calls protected by MR1 version check
Change-Id: Ifdfa95a58aa18a825c1838c61055928dbe0ea3be
2016-06-23 14:55:56 -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 a7ce166b2e Making the security checks and policy changes only when launching custom
shortcuts. This prevents launcher specific intents to unknowingly leak data.

Change-Id: I01343a9cee1f2a9a37a20aaf24e933e2771ecdbc
2016-06-10 13:48:44 -07:00
Sunny Goyal eb4b79935e Removing icon_type column
Icon type is not used consistently. It is used initially
during the loader. Afterwards, we save both the icon and resource to the db.
Instead of changing the logic to always read the shortcut-resource first, and fallback to the bitmap if the resource is not available,
always write the bitmap to DB whenever the shortcut is edited.

Change-Id: I0ea5e88f8904bd3250ca669220b3e5d6aeef1bfd
2016-05-11 15:21:42 -07:00
Sunny Goyal 261194387b Revert "Reverting refactoring of Folder and FolderIcon to avoid dependencies breakage"
This reverts commit fc956e5a2a.

Change-Id: Ib3b5156b8fc3cad35c4634d61d5390c848ce1f93
2016-02-23 02:02:54 +00:00
Sunny Goyal fc956e5a2a Reverting refactoring of Folder and FolderIcon to avoid dependencies breakage
Change-Id: Ifd0d717d70aff4c83c9eb5cba397d04500b2c869
2016-02-17 13:27:13 -08:00
Adam Cohen f9c184a619 Refactor FolderIcon to separate the preview effect into it's own class
-> Created com.android.launcher3.folder package to house most folder-related files
   (aside from the FolderInfo) which is more related to the model than the UI.

Change-Id: I767063e1e4c775c01a799a3bede30cd94ac48ade
2016-02-12 17:28:31 -08:00
Kenny Guy ff05f4375d Respond to managed profile availabilty Intents.
Grey out applications when managed profile is
not available.

Change-Id: I9bb9442cd0b3d0d207062716bfd6b179e3ba8489
2016-01-25 21:23:59 +00:00
Kenny Guy 44cba69638 Grey out suspended applications.
Grey out application shortcuts and all apps entries
for packages that are suspended.

Bug: 22776761
Change-Id: I1b63da1816aca1de52b9f9bee62d1b162d0cdf4d
2016-01-25 11:28:06 +00:00
Sunny Goyal dc893151f0 resolve merge conflicts of 0c2f0700a5 to ub-launcher3-master.
Change-Id: I92f38e9f4ac4d9b6c5a3000e0971d2bc417bd3c6
2015-11-30 10:19:02 -08:00
Sunny Goyal 0c2f0700a5 Only fetching firstInstallTime for an activity when required
Change-Id: Ia16c05718938849f4250802d8770ddfe6dbef055
2015-11-30 09:51:39 -08:00
Sunny Goyal 9eba1fd75e Refactoring WallpaperOffsetInterpolator to a new file
Removing some us unused methods

Change-Id: Ife790e5ca6848fa13dc3fab1bba1e6220bf83743
2015-10-16 09:02:25 -07:00
Vadim Tryshev fedca43d39 Moving drag-drop related code into a separate package.
This is per an earlier CR comment "we should probably move all this code to its own package (launcher3.dragndrop) in a separate cl".

I'm not moving DragSource because it's referred from gsa code.

Bug: 22609426
Change-Id: Ia7204dab99c0c395c66b77143a2d60411153f5f3
2015-08-20 07:45:57 -07:00
Sunny Goyal f9ada46270 am 317698bd: Loading high resolution icons for first 3 items in a folder
* commit '317698bd012c1930b83bb4e2e47ac9e363fa6c6a':
  Loading high resolution icons for first 3 items in a folder
2015-08-04 18:09:20 +00:00
Sunny Goyal 317698bd01 Loading high resolution icons for first 3 items in a folder
> Sometimes a folder gets rearranged, without updating the model,
   like when an app in uninstalled. In that case, we need to update
   the icons for folder items, which were previously hidden

Bug: 22813360
Change-Id: I99754911c969bf2153efb2948c226c1c69219b88
2015-08-04 11:05:15 -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
Sunny Goyal 4e5cc64eaf Fixing backup restore
> Not deleting icons from cache, which have not been restored yet
> Not checking if activity exists during DB migration. Missing
components are removed during loader anyway
> Backing up and restoring bitmaps even when iconType is resource.
This allows us to show a proper bitmap icon, until the correct
resource is available.
> Loading proper shortcutResource icon for promiseIcons
> Checking against promise intent when verifying duplicates
> A launcher App intent can contain EXTRA_PROFILE

Bug: 22094970
Change-Id: I982971338846733833ec133119393af0bea0eb08
2015-06-25 17:41:06 -07:00
Sunny Goyal a214a63bfe Preventing homscreen getting filled with secondary user apps, when launcher
starts for the first time

> Sorting the apps in the work folder by install time

Change-Id: Ia475b4ff3197d90e6dffe070c12c0aa16be9e292
2015-05-15 11:53:10 -07:00
Winson Chung 82b016cb56 Trim all whitespace from titles and labels.
Bug: 20953160

Change-Id: I1610df5e445a4139522226f68fa6439926bc70c6
2015-05-08 22:22:39 -07:00
Sunny Goyal 756adbc3e4 Fixing missing updates in package install sessions
> Ensure icon cache never returns null icon
> Enabling install shortuct receiver only after workspace has finished binding
> Making all the model changes for package installs on worker thread and only
posting the updaes on the UI
> Making shortcut exists check on the loaded items and not on the DB
> Explicitely using worker thread for PckageInstallListener
> Removing backward compatibility support from PackageInstallerCompat

Change-Id: I9592771b9670c1c1c84c8208cae8dafa7b393e65
2015-04-22 10:08:14 -07:00