Commit Graph

90 Commits

Author SHA1 Message Date
Sunny Goyal 3772b246c2 Revert "Revert "Revert "Changing GridMigrationTask to use ModelDbController directly"""
This reverts commit 8d9e468dbb.

Reason for revert: b/281179368

Change-Id: Ibfc5329f72cdbcb37d01a8bf3dac2ba0724b9faf
2023-05-06 18:18:07 +00:00
Sunny Goyal 8d9e468dbb Revert "Revert "Changing GridMigrationTask to use ModelDbController directly""
This reverts commit 30bb3a247a.

Reason for revert: Fixed original issue

Change-Id: I02d85d604631795d96f0379eb94b7b6789102ea9
2023-05-05 16:00:49 +00:00
Charlie Anderson 30bb3a247a Revert "Changing GridMigrationTask to use ModelDbController directly"
This reverts commit 9ef41413e0.

Reason for revert: This was the only launcher CL during the time  b/280669657 and 280680602 occurred

Change-Id: Id7107f0935f84908ca87e1ae4c62ab05efe41a24
2023-05-04 15:19:58 +00:00
Sunny Goyal 9ef41413e0 Changing GridMigrationTask to use ModelDbController directly
instead of using content uris

Bug: 277345535
Test: Updated tests
Flag: Presubmit
Change-Id: Ib62db3334c01d9e7d27ae7b02ea703d046e2bcaa
2023-05-03 08:54:14 -07:00
Fengjiang Li 5a36c17a32 [1/n] Launcher Startup Latency: add StartupLatencyLogger to launcher3 and log startup latency
More details at "Log Startup Latency" section in go/launcher-startup-latency

Test: tested on phone, foldable and tablet, print latency logs in logcat
Bug: 278092752
Change-Id: Ibf269b0ecd6007d29b95e36f65ab6f02c45deb3a
2023-05-02 17:08:05 -07:00
Sunny Goyal eb27546cc3 Removing remaining code around ENABLE_DATABASE_RESTORE
ENABLE_DATABASE_RESTORE feature is already removed
Also migrating some tests from BackupRestoreTest to RestoreDbTaskTest

Bug: 270392706
Test: Presubmit
Flag: N/A
Change-Id: I71822bbc2232008b3d2b4b9fbed0db5d889591e4
2023-04-12 15:52:35 -07:00
Sunny Goyal 84b48d8deb Removing support for adding legacy shortcuts.
All existing legacy shortcuts will be migrated one-time to deep shortcuts
This shortcuts are pinned under the Launcher package, with custom badging

Bug: 275875209
Test: Updated unit tests
Flag: N/A
Change-Id: I7da001f724776ad8d6c807517b7e4e259de626c2
2023-04-10 12:28:52 -07:00
Sunny Goyal ba2795827b Moving DatabaseHelper to it's own class outside of Launcher provider
Bug: 277345535
Test: Presubmit
Flag: N/A
Change-Id: Ib8c94ceb954172dc27e357be2face06d50d399dd
2023-04-10 09:15:18 -07:00
Sunny Goyal afaa8f0bfe Removing support for legacy shortcuts from default layouts
Launcher will only allow deep shortcuts to be pinned on homescreen.

Bug: 275875209
Test: Updated tests
Flag: N/A
Change-Id: I4f2674deb9cd81dd07d5d537f35a51b030a183da
2023-04-05 20:20:34 +00:00
Sunny Goyal 749983b192 Moving flag creation to a separate file
> This provides better control over proguarding descriptions
> Enforcing bug number in flag creation

Bug: 270386012
Test: Presubmit and verified on device
Change-Id: I31014e397690379024d2e42c0e913ce806b9569c
2023-02-27 23:19:39 +00:00
Stefan Andonian 24cff2fa3e Merge "Refactor Workspace Loading / Processing code." into tm-qpr-dev am: 3a14f1331d am: 8775725e06
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/20544534

Change-Id: I41e7ca11f4462407f73ac6ec4dc16d9fa619a1ee
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-02-15 22:57:29 +00:00
Stefan Andonian 05ca3a8089 Refactor Workspace Loading / Processing code.
There are no behavioral changes (other than we no longer are recycling
objects while processing workspace items), but this refactor will setup
the next change to load the first workspace page before other workspace
pages.

Bug: 251502424
Test: Workspace, app widgets, and containers loaded properly.
Change-Id: I437aab40000d841d7fcc4380d05ab4a8f5d5c2ad
2023-02-15 17:36:27 +00:00
Brandon Dayauon 1507785a36 Merge "Method to override feature flag" into tm-qpr-dev am: fb9c4d25c4 am: ebd8065f19
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/21306841

Change-Id: I6b442087c14ef91f3283c00fb85fd8d72a55aa27
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-02-10 00:41:39 +00:00
Brandon Dayauon 533e4856b4 Method to override feature flag
- Replaced where it's used in GridSizeMigrationUtilTest.kt

bug: 268094298
test: manually/presubmit and GridSizeMigrationUtilTest photo: https://screenshot.googleplex.com/7cLtFSbBvxnYAFM
Change-Id: Id8e688b95b91b1b6a4962a4e092505cbb79603f7
2023-02-08 17:01:46 -08:00
Stefan Andonian 6a651e63c9 Merge "Expanded LauncherPrefs APIs to Replace Direct Shared Preference Usage." into tm-qpr-dev am: 1eb59d6c6a am: 60e3b74522
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/20764866

Change-Id: I7a69b534e3df890034eb897e8d61517e75828702
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-01-17 19:29:02 +00:00
Stefan Andonian d1b33b311c Expanded LauncherPrefs APIs to Replace Direct Shared Preference Usage.
LauncherPrefs will contain Launcher's shared preference functionality.
It controls optimizations and classifications such as restorable vs
non-restorable data, bootaware vs non-bootaware data, and configurations
such as default values  so the calling code doesn't need to and our code
base can have a single source of truth for items that are used in
multiple places.

The old APIs remain in place, but are deprecated and will be removed
after all Shared Preference usage has been gated by LauncherPrefs in
future CLs.

Bug: 261635315
Test: Manually tested themed icon, Workspace configuration, and app
install functionality.

Change-Id: I29fd516468bc93fda393062e95be26b6d55c816e
2023-01-14 00:54:15 +00:00
Thales Lima bdfc07f1f0 Merge "Check kotlin format before uploading" into tm-qpr-dev 2023-01-10 16:41:58 +00:00
Thales Lima 03ac377a34 Check kotlin format before uploading
This uses ktfmt on the PREUPLOAD hook to check file formatting.

Bug: 264851618
Test: manual
Change-Id: I8bdeabd9c1ed571a464707e6912419ad3190a169
Merged-In: I8bdeabd9c1ed571a464707e6912419ad3190a169
2023-01-10 13:24:43 +00:00
Thales Lima 7a3c1e10a7 Check kotlin format before uploading
This uses ktfmt on the PREUPLOAD hook to check file formatting.

Bug: 264851618
Test: manual
Change-Id: I8bdeabd9c1ed571a464707e6912419ad3190a169
2023-01-09 17:45:42 +00:00
TreeHugger Robot f2df42fdca Merge "Revert "Add logging to help debug additional app infos being updated by CacheDataUpdatedTask"" into tm-qpr-dev am: 1973056e40 am: 3c57751362
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/20747317

Change-Id: I7c98fa2b687ff8af976b4cffe389afb3d8eb4304
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-01-05 21:15:58 +00:00
Schneider Victor-tulias 5455b85291 Revert "Add logging to help debug additional app infos being updated by CacheDataUpdatedTask"
This reverts commit 62511de74e.

Reason for revert: bug not reproducing

Fixes: 20747317
Change-Id: I55c1fe8005fee66db53052aab15e152e6d39a34c
2023-01-04 18:27:00 +00:00
TreeHugger Robot 1d4c44ce07 Merge "Make grid size migration less confusing for users." into tm-qpr-dev am: 33c348f573 am: a44e9370f0
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/20388826

Change-Id: I5df1ed1b272876e6ce64b19cd42410b840c10688
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2022-12-05 19:22:22 +00:00
Pinyao Ting cc90d1b767 Make grid size migration less confusing for users.
Grid size migration is a confusing experience for users because the
content of the grid is not predicatable to the user. Part of the reason
was the dedupe logic which merges items from new grid into old grid,
this mean if user removes an item, change to another grid and go back,
user will see that same item re-appears.

This CL keeps the content of target grid the same as source gird, i.e
user will will get the exact same set of app icons/shortcuts/folders and
widgets (if size permits) across grid sizes. The only difference being
their placement in the grid.

Bug: 256859723
Test: atest GridSizeMigrationUtilTest
Change-Id: I1732c91e441ad44bc43e0a943566a83563d12b07
2022-12-02 13:33:04 -08:00
Pinyao Ting 55621f4001 Merge "Refactor GridSizeMigrationTaskV2" into tm-qpr-dev am: ad932045ac am: ff521c99ad
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/20535959

Change-Id: Ic7a3f0ac4db6facf7ce17208133bf6b85dc25644
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2022-11-22 17:52:26 +00:00
Pinyao Ting dec4305d0c Refactor GridSizeMigrationTaskV2
The majority of the logic in grid size migration should be implemented
as static functions in the first place since (1) they only runs once
after instantiation and (2) they are executed immediately after they are
instantiated.

This CL removes most of the instance variables from grid size migration
in favor of static methods since the later is more efficient, more
testable and therefore considered better programming practice in
general.

Bug: 256859723
Test: atest GridSizeMigrationUtilTest
Change-Id: Ief4654d79ad5cfd636e6145fdcc9dfe5a39cdf62
2022-11-21 15:24:38 -08:00
Pinyao Ting 292d0d3dc9 Merge "Explicit Nullbility in Launcher (Part 2)" into tm-qpr-dev am: 775b0d21dc am: ff8f09b5b5
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/19679564

Change-Id: I569d5e6fd9ebbcb31266c6683c129481ee3c2144
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2022-08-24 05:08:54 +00:00
Pinyao Ting 023b973d15 Explicit Nullbility in Launcher (Part 2)
This CL updates the nullabality on methods associated with IconCache in Launcher.

Bug: 242895652
Test: manual
Change-Id: I4832c0950141c8a52c8a9e62659ccabb082897c8
2022-08-22 17:15:44 -07:00
Andras Kloczl 7b83486fe4 Trying to fix flaky launcher tests
Test: run AddWorkspaceItemsTaskTest.kt
Bug: 227650070
Change-Id: Ie093c5b13bdb4143829f82767fdeb208805f388a
2022-08-10 16:07:02 +00:00
Schneider Victor-tulias 62511de74e Add logging to help debug additional app infos being updated by CacheDataUpdatedTask
Bug: 239465630
Test: ran test locally.
Change-Id: I1b31cfaeb697f87acd99d787284f55d7e6b75b54
2022-07-28 23:09:39 +00:00
Andras Kloczl 68e1af2bc2 Separate workspace item finding logic
Extract the item finding logic from AddWorkspaceItemsTask
to a separate class and write tests.

Test: AddWorkspaceItemsTaskTest.kt , WorkspaceItemSpaceFinderTest.kt
Bug: 199160559
Change-Id: Ie1bc4fcd4f94cd7cb0601c21bbdf273452b9dd1f
2022-03-29 13:31:31 +01:00
Alex Chau d5859e80d7 Change grid migration to start from top to bottom
Fix: 222236363
Test: GridSizeMigrationTaskV2Test
Test: 4x4 -> 4x5/5x5 migration, 5x5 -> 4x5/4x4 migration
Change-Id: Id5d87b5d0bf9d7cc9154de81dd5edfb0ca9fa633
2022-03-15 17:21:24 +00:00
Alex Chau fe9a07bb96 Pass in dbFile from idpGridState for grid migration
- IDP can get re-initializeed during grid migration task, causing src/dest dbFile to be the same when prepareForMigration, which fails the migration and causes a wipe
- The fix is to cache IDP state as DeviceGridState, and use DeviceGridState to determine migration, trigger migration and save configuration after migration
- This should avoid migration failure in b/198965093 that causes homescreen wipe. Homescreen icon may still be messed up by the migration, but won't completely disappear

Bug: 198965093
Fix: 223579388
Test: manually trigger grid migration
Change-Id: I9890a6d5d530ff87aed8f601ec7d35a672b7cd46
2022-03-09 14:52:17 +00:00
Thales Lima 0a7ff8780f Create new logic for grid migration
Fixes 217564863
Test: manual, changing grids from Wallpaper & Style and checking against spec

Change-Id: I94cf77111b37810282527f1a212b6e4126d3eba1
2022-02-23 15:20:50 +00:00
Alex Chau 4075f17c2d Revert "Migrate workspace item adding tests to kotlin"
This reverts commit e77eafc263.

Reason for revert: b/207684378
Bug: 207684378
Bug: 199160559

Change-Id: I4a35fea423f1cd7afae4603fd1185150763f8bf0
2021-11-25 11:54:26 +00:00
Andras Kloczl e77eafc263 Migrate workspace item adding tests to kotlin
In a former CL (http://ag/16064580) I've tried to
do the same but presubmit was constantly failing,
probably because the test is in kotlin.

Test: AddWorkspaceItemsTaskTest.kt
Bug: 199160559
Change-Id: Ie1bc4fcd4f94cd7cb0601c21bbdf273452b9dd1f
2021-11-23 18:32:12 +00:00
Andras Kloczl 953eb8041e Fix LauncherProvider newScreenId issue
Remove maxScreenId from LauncherProvider and whenever we need
a new screenId, query the database to calculate a new screenId.
Also converted and refactored AddWorkspaceItemsTaskTest
and added some extra test cases.

Test: manual & AddWorkspaceItemsTaskTest.kt
Bug: 199160559
Change-Id: I185f6823fed171d778af0130497f5ffaf89c0a70
2021-11-12 19:56:07 +00:00
Sunny Goyal 777d49062f Revert "Revert "Migrating all model tests to Instrumentation tests""
This reverts commit 7a4a30d86d.

Test: Presubmit
Reason for revert: Fixing original bug

Bug: 196825541
Change-Id: Id4b1eb24a89564d264266d305aebea52917dfcd9
2021-08-31 10:51:52 +00:00
Alex Chau 7a4a30d86d Revert "Migrating all model tests to Instrumentation tests"
This reverts commit 455ba62b5d.

Reason for revert: Breaks tests on all targets

Bug: 196825541
Bug: 197570389
Change-Id: Ida6792a09c54dee46105b6b914a0dd1545bdf48d
2021-08-24 17:27:52 +00:00
Sunny Goyal 455ba62b5d Migrating all model tests to Instrumentation tests
Bug: 196825541
Test: Presubmit
Change-Id: Iebd46eb41eb46c187d569197f4b97b4fddc0f6f7
2021-08-23 12:34:44 -07:00
Sunny Goyal 9ae9b60043 Updating Robolectric tests
> Adding multi-thread support
> Simulating actual loader loading flow
> Moving some android tests to robolectic

Change-Id: Ie17a448f20e8a4b1f18ecc33d22054bbf9e18729
2020-01-06 11:05:42 -08:00
Sunny Goyal 3808a69a6c Storing BitmapInfo instead of icon and color directly in itemInfo
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
2019-10-28 11:12:47 -07:00
Sunny Goyal e7b00128c7 Removing static instance of LauncherAppsCompat and unnecessary wrapper classes
Bug: 141376165
Change-Id: I8c1f1ab7d83ec50fe9c7bf39960ef9c360025ec7
2019-10-02 16:20:22 -07:00
Sunny Goyal 9dbb27c09c Moving some utilities methods to separate class
Change-Id: I5094b22ddc77c45590cea1a5f5dead0dc7580abf
2019-07-17 15:15:07 -07:00
Sunny Goyal 9589916418 ShortcutInfo renamed to WorkspaceItemInfo
Will get rid of ShortcutInfoCompat in a follow up cl

Change-Id: I7d7d9c938635f59b216290ba28bea9d0e0721a7d
2019-04-16 00:08:24 -07:00
Sunny Goyal c5939393a9 Bye bye workspace screens table
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
2018-12-10 11:43:35 -08:00
Sunny Goyal 06a07e9748 Moving come tests to Roboelectric
> Fixing resource loading in robo tests

Change-Id: Id5b8a0e4916a2a200da7a41b03f19846834beb1f
2018-11-12 10:49:59 -08:00
Sunny Goyal 202fabfe10 Adding reusable version of IconCache and IconFactory
> Adding resource based allowing projects to control cache behavior
> Fixing missing comments from ag/5470467
> Adding support for no-immemory cache

Bug: 115891474
Change-Id: I691206805430cd93d3be78119bc249cefd79790a
2018-11-09 15:44:07 -08:00
Sunny Goyal 1a9cbd3c88 Moving BaseIconCache to icon lib
Change-Id: I4fb56dcd6231a848d152e690edaf8885efbc995a
2018-11-08 15:18:25 -08:00
Sunny Goyal efb7e84242 Converting long item IDs to int
> 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
2018-10-08 14:52:39 -07:00
Sunny Goyal ac8154a23d Caching widget labels in icon cache to avoid lookup at startup
Change-Id: Ie026ee47905454bd70e774d422cd7fe142aec7e2
2018-09-28 16:36:33 -07:00