Commit Graph

81 Commits

Author SHA1 Message Date
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
Hyunyoung Song 48cb7bc7a4 Move IconNormalizer/ShadowGenerator/LauncherIcons to icons package
Bug: 115891474

Sending out the package name changing CL first before I make
LauncherIconsHandler and tests around it.

Change-Id: Ic10479a06333e1435b392a7072cd08782e710cbd
2018-09-26 11:57:37 -07:00
Sunny Goyal 0b3053c9fc Extracting icon caching logic into a base class.
This will allow using the cache cache for other type of objects,
like shortcuts and widgets.

Change-Id: I38616d031cb051f93e724d9cc0e8fe9a822b9e3a
2018-09-25 16:36:06 -07:00
Sunny Goyal f840f10d50 Removing additional rpc due to icon cache update
When launcher loads, it fetches the list of apps twice, once for
loading all-apps and again for updating icons. Instead reusing
the previously fetched apps list.
Also moving the icon loading in a separate package for further
generalization

Change-Id: Ibd2dae56e6027a31b633da030bc6b43a90b27e1b
2018-09-21 15:27:03 -07:00
Vadim Tryshev 12daab5597 Enabling some test suites that miss from ATP
ATP requires the test size attribute, or else the test won't be run.

Test: Will see on ATP
Change-Id: If231781b5188c022e47cc40e46af933d753fa114
2018-08-24 14:04:43 -07:00
Vadim Tryshev 0a9f3ab4a6 Converting tests to Androidx
Bug: 112610679
Change-Id: I712826e668f1fbeb4e47cc541d4f5296d8eb74c0
2018-08-21 15:04:48 -04:00
Sunny Goyal d230307a95 Migrating to android-x
Change-Id: I9a774152d13a541e8496dd84f2469bfed407f86d
2018-08-14 15:22:12 -07:00
Sunny Goyal 36b54228fc Retiring some feature flags
Change-Id: I80a00ecaec0785ce2ba6a5f14a54c8a76f555d43
2018-07-10 13:52:17 -07:00
Sunny Goyal 605bcf3367 Fixing bug when model was not reflected properly on the UI.
If launcher submits a job, and then reloads before the job is executed, the correct model
is not reflected on the Launcher. In that case, we simply rebind the launcher

Change-Id: I380242a4de13e7b2bc326d1a076f0a974435999c
2018-03-05 17:38:47 -08:00
Sunny Goyal 179249d804 Dominant color is part of icon cache
> Calculating extracted color during icon generation and storing it in model and DB
> Removing unused logic avoid various types of badge rendering
> Icons are badged with extracted colors, while folder is badged with theme color

Bug: 35428783
Change-Id: I93e30c52fbded7515c3ae1778422e84672eafb56
2018-01-03 16:55:58 -08:00