Since screenId is changed to primary key, the rowId can now be 0 (earlier
it was auto-increment and never 0)
Bug: 19566734
Change-Id: Icf0e4294a581039101df1ad1756fdb6e581c4cba
Content providers are created during process startup (before Application.onCreate),
and we should not be doing expensive stuff in Provider.onCreate
Adding an exception for now as it looks like LauncherProvider initialization is needed
before we can show meaningful UI.
Bug: 19094644
Change-Id: I860c2934c110d3a43f1a3afa00729077dc64796c
> Removing DB upgrade logic for versions before 12. Launcher3
was forked off Launcher2 when DB version was already 12, so, there
can never be a lower version of the DB.
> Removing logic for auto import of launcher2 DB. This flow had
been permanently disabled by a flag, and we show a confirmation
prompt/cling before migration
Change-Id: I2ac2f21fefc41ee247164566a088927263b09459
1) During migration, if launcher2 has deleted user data,
migration oes not happen
2) If Launcher3 does not has bind widget permission,
QSB would be null.
Bug: 18388507
Change-Id: Ief81f6f77ce154e7b3ecd4b77caf24239401e738
> Removing all logic related to search and voice overlays
from Launcher3
> Using the widget provided by global search provider on the
homescreen
> Removing VoiceButtonProxy, as it is not being used anymore
Change-Id: Ie8b09b44f7213c8fa11bce685914442e4884295d
> Adding DeviceProfile information in the backup
> Removing SharedPreference backup
> Adding helper methods to abort backup in the middle
> Comparing keys against the backup journal during restore
to avoid restoring corrupt/lost entries
> Old backups are still compatible, but lost keys verification
will be ignored in that case.
Bug: 17937935
Bug: 17951775
Bug: 17260941
Change-Id: Iad48646cfdd69abaff5c163b2055f3b8a9b39b19
-> The only delta between the two icons was slightly different flags
-> No need to consider flags for the purposes of duplication
Change-Id: I161f6ad6023d829e5ebbb15f1a9fbc9306795d80
> For resizing icons, scaling them down instead of cropping them
> Removing duplicate methods and variables
Bug: 17663119
Change-Id: I0f270860c0edaaa939495e63e05da841a603f6e9
Rather than dropping the user in the middle of the app wherever
our intent resolves to, add a shortcut to the launch intent of
the app that handles that intent.
Bug: 16459162
Change-Id: I58256cdc9dc1b3441815f60cc354b60f91fb1a16
> Launcher checkes for an apk in the system image with a broadcast
receiver for action:
com.android.launcher3.action.LAUNCHER_CUSTOMIZATION
> Default layout is parsed from that apk, which can also contain
icons and string resources used in the layout config
Change-Id: I44fc9e7c3134f525f7b5db29f4e8bb56e17ce445
-> Ensure that when an item is added to the db from an external
source that the screen id exists.
-> If the screen id does not exist, add that id as the largest rank
Change-Id: I98d68900c428d80666dab1909418c6d9b0f52e10
(cherry picked from commit 484526620012f88bcd9d5656a71d4218a9acd090)
-> Resources in folders were not being loaded with the partner
apk resources. This caused any number of weird things to appear
in folders of partner default layouts
Change-Id: I7d373e53028c5c327980c15d004993af997de553
-> We generate an item id, and allocate and bind a widget id if necessary when items
are added to the LauncherProvider externally. Writing to the provider is protected
by system|signature.
issue 16191557
Change-Id: I09472e41ad4c8302901a5e49b5817247e9b86695
Use LauncherApps API and badging APIs instead of PackageManager.
With compatability layer that uses PackageManager pre L.
Adds support to show apps from current user and any managed profiles.
Background: Managed profiles are user sandboxes that are visible from
the primary user and can be launched as if they are a part of this user.
A launcher should now be capable of listing apps from this user as well
as related profiles of this user.
Launching of activities is now via the LauncherApps interface, to allow
for cross-profile app launching. Only activities with category LAUNCHER
can be added as a shortcut on the workspace for a managed profile.
Widgets and non-application shortcuts are only supported for the
current profile. Widgets from the managed profile are not available.
Change-Id: I5f396b1bf7f91ad91a5710ea4a0fd14573972eb9
-> Delete items contained directly on the desktop whose screens
no longer exist (do not remove items contained in hotseat or
folders, except as described below)
-> Delete items contained by folder ids which are no longer present
(ie. orphaned as their parent folder no long exists)
Change-Id: I2f47cc970ce00677cb1c83c0f0a2d13b6f16a33e
Traditionally Launcher workspace customization is offered through
overlays at build time, but we don't have access to partner-specific
customization at build time. To solve this, this adds a new
"partner-folder" tag which points at an XML resource provided by
an external package.
The external package XML can't depend on the binary XML attributes
defined by Launcher3, so we switch to using manual string-based
attribute lookups. Partners can also provide extra wallpapers.
When a folder only results in a single item, promote that item into
the folder location instead of deleting completely.
Bug: 13340779
Change-Id: Ide558288bef4113565f288b700d8245055c0fee9
-> Any workspace item whose screen id is not present in the
screens table is removed from the database. This is
intended to restore database consistency.
issue 13741729
Change-Id: I9a04b4165f1d85541025fcf48ddf2ad9e39ae94e
Move the URI used to import favorites from launcher2 to be loaded
from a string resource. This allows it to be overridden.
This will enable permissions fix for GoogleSearch.
Bug: 12058200
Change-Id: I31243fe89f545c9771d5cceffe1c9e7668a42bc5
Adds support for new types in default_workspace xml files.
Adds support to favorite that attempts to resolve an intent specified
by URI. If a logical choice can be found from the resolve, it adds the
shortcut.
Adds support for a resolve, which contains several favorites and attempts
to add the shortcuts until one is successful.
Bug: 10547358
Change-Id: Ia30341e77e7d4a0bd4a4f4e6a3d9ce2a48a46237
Launcher2 on sw720dp devices had 8 hotseat slots; Launcher3
has only 6 on those same devices. When importing the old
hotseat, the empty slot (so technically there were 9)
occupied by the all apps button didn't line up with the new
all apps button, causing a hole on the hotseat. Furthermore,
the icon in old position 3 was clobbered by the new all apps
icon:
0 1 2 3 (#) 4 5 6 7 ==> 0 1 2 (:) _ 4 5
In this CL we introduce a separate sort-and-place step for
hotseat icons so that any icon colliding with the new
all-apps slot can be moved to the right to find the next
nearest open slot. This works well for the 8->6 case; it
will probably do something reasonable, if not ideal, for
other grid migration scenarios.
But those are not covered by this bug.
Bug: 13015468
Change-Id: I7edb3f27addc78ad02bbfcd1c39175ca56220007
-> Also removed the db-created as a criteria for showing the clings
(this was a bit problematic in some cases and going forward)
-> Instead, we use database upgrade as a signal to not show the clings.
This is used instead of the above criteria (to prevent old users from
seeing the migration cling and losing their data.)
-> Stripped some old code related to custom clings that's no longer used.
Change-Id: Ib5e5285e5ddbc60e69eb998ee9fd092ae879150d
The workspacescreens table is updated in LauncherModel.updateWorkspaceScreenOrder
and that the operation to remove all screens, then reinsert the new list of
screens in not inside a single transaction, so if the app is updating or
crashes between ContentResolver.delete and ContentResolver.bulkInsert then
the data will be lost. This CL makes it all happen inside 1 transaction.
Bug: 12523285
Change-Id: I409dbc9f48fa9c8bd4bf3b1453204a4daac1689a