Commit Graph

237 Commits

Author SHA1 Message Date
Shamali P ea078cb647 Add a resource override for providing default widgets filter.
The implementation in this CL is no-op i.e. all widgets will be shown

Bug: 356127021
Flag: com.android.launcher3.enable_tiered_widgets_by_default_in_picker
Test: Verified with other child cls
Change-Id: I0a6f8973dc8ec58fd87d29b3f291b5e290ea988d
2024-11-04 22:17:23 +00:00
Stefan Andonian bb85110a0d Delete Unused Flag related to Altering how the workspace is loaded.
This flagged feature was never released, and instead was thought to be too
complicated compared to the benefits in decreased latency.

Bug: 251502424
Test: Verified that this launcher still loads properly when this flag is removed.
Flag: EXEMPT flag removal
Change-Id: I672708e26cb37d1e2b22c4510f9c3500edd4f959
2024-10-25 22:28:55 +00:00
fbaron a796d74e36 Refactor grid migration
In this CL:
-Make GridsizeMigrationLogic functions pure (no side effects)
-Make it so GridSizeMigrationLogic contains the migration logic and does NOT interact with the database
-Let GridSizeMigrationUtil receive the results from the logic layer and use those results to interact with the database appropriately

In future CLs:
-Refactor GridSizeMigrationLogic to Kotlin

Bug: 358399271
Flag: com.android.launcher3.grid_migration_refactor
Test: GridSizeMigrationTest
Change-Id: Ifcc5ca356558a7463352580f2e89eef8c86ed16b
2024-10-23 22:26:38 +00:00
Sunny Goyal 43b01b9900 Cleaning up temporary interfaces which were created for refactoring
Bug: 366237794
Test: Presubmit
Flag: EXEMPT refactor
Change-Id: Ic2c69bcdde1429c787903c24f0e19ea26b91d314
2024-10-11 11:03:47 -07:00
Sunny Goyal f7c32a29fd Requesting ApplicationInfo in cached object
Bug: 363324203
Test: Presubmit
Flag: EXEMPT refactor
Change-Id: I92f3d3ed8c267b895dc439ba1f01eb67d7f63965
2024-09-27 14:04:16 -07:00
Sunny Goyal 2a359916ca Moving some utility class to IconCache to make it easier to use outside Launcher
Bug: 366237794
Flag: EXEMPT refactor
Test: Presubmit
Change-Id: I7583ae162b652e73a33f1aee76714e292b707e39
2024-09-18 10:05:05 -07:00
Charlie Anderson 4c159412de Use bugfix flag for archived broadcast extras
Bug: 322314760
Test: locally
Flag: com.android.launcher3.enable_first_screen_broadcast_archiving_extras
Change-Id: I9e3944d35a1cf2a17d1b5fcbf249ecf488265a93
2024-08-23 18:08:15 +00:00
Sebastian Franco c794aca69f Refactoring FolderPagedView to make it more testable
Bug: 353588686
Test: Compiles
Flag: NONE refactor
Change-Id: I612523282a57beac90b14a890a333a1670ab0d48
2024-07-17 23:32:17 +00:00
Charlie Anderson 30a3acc779 Only send new first screen broadcast on first load after restore
Flag: EXEMPT launcher_broadcast_installed_apps
Bug: 322314760
Test: manually tested

Change-Id: I28a3ee1fb2c5c382ea8789b6e966c80db1abf0e0
2024-06-18 18:19:46 -04:00
Charlie Anderson 7cc4302f10 Send additional Extras in first screen broadcasts, to help with app archiving.
- refactor FirstScreenBroadcast.java into FirstScreenBroadcastHelper.kt
	- send Extras to include installed/archived items on first screen
	- send Extras to include installed/archived widgets on all screens.
	- truncate items to limit Broadcast size

Bug: 322314760
Test: unit testing and E2E test of B&R
Flag: launcher_broadcast_installed_apps

Change-Id: I214149ac0c63f177d3d1ca0b6d0cb11be37f4ae0
2024-06-13 21:29:50 +00:00
Fengjiang Li 62f1eca9e7 Use global PackageManagerHelper for LoaderTask
This reverts ag/27303480 as we have found the root cause of workspace icons deleted by setting up private space (ag/27354841)

Fix: 340362067
Test: manual
Flag: NONE
Change-Id: I81d95e95282f09b872268ddb232ba9f092e952bc
2024-05-16 11:04:32 -07:00
Fengjiang Li 1db1dfcb67 Do not use PackageManagerHelper created on boot for LoaderTask.
This CL partially reverts ag/26827295.

Re-using the PackageManagerHelper obj created earlier than LoaderTask obj will lead to the bug where private space user handle is not recognized. This is a temporary fix to create a separate PackageManagerHelper obj for LoaderTask. The real fix should be on framework side.

Also note that PackageManager service instance is now created much later in launcher lifecycle than before.

Fix: 338091143
Test: manual
Flag: NONE
Change-Id: Iab467fe8979aec52c5837c8fd676f821b2e3eb3c
2024-05-10 22:49:21 +00:00
Winson Chung 94e8ad0731 Add multi-instance state to item infos
- Add legacy resource for supported multi-instance apps that
  matches the current SystemUI resource of the same name, and will
  be removed as apps migrate to the V manifest property to declare
  multi-instance support
- Load the multi-instance state from PackageManager when the db is
  first loaded or when packages are updated
- The multi-instance check is then used to determine if an app pair
  can be saved (ie. whether the action can be shown)

Bug: 323112914
Test: atest NexusLauncherTests

Change-Id: I565b4bee4ab5f7040910306b1fd60a4fc3bf9a1c
2024-05-09 18:43:38 +00:00
fbaron 9d08e0fe70 Migrate smartspace as a widget and smartspace removal toggle flags to aconfig
Bug: 336823684, 336823681
Test: none
Flag: ACONFIG enable_smartspace_as_a_widget DISABLED
Flag: ACONFIG enable_smartspace_removal_toggle DISABLED
Change-Id: I4cba42e09f58365f761ab866b15a494817e6bb0f
2024-04-25 14:26:30 -07:00
Winson Chung bb32b7e0de Migrate PackageManagerHelper to MainThreadInitializedObject
- This is in preparation for other things that can be loaded with
  PMH initialization and prevents duplicate temporary helpers from
  loading this many times.
- Most calls in PMH can use the app context, but one call requires
  starting activities/showing toasts so that one needs to take the
  context and can be made static instead.

Bug: 323112914
Test: atest NexusLauncherTests
Change-Id: Id11c780955880cf49c022cbf2744c41e1b696355
2024-04-22 12:35:03 +00:00
Winson Chung 6a6de2dfc3 Migrate WorkspaceItemInfo non-resizeable flag to runtime status flag
- This aligns with other app-level state that is read at runtime

Bug: 323112914
Test: atest NexusLauncherTests
Change-Id: I1e29583d1c0302646718473c8958d604c1a202a5
2024-04-14 06:20:54 +00:00
Winson Chung 21cf4439d2 Use shared method for updating the runtime status flags for an item info
- The method AppInfo#updateRuntimeFlagsForActivityTarget should also
  both add and remove runtime flags to match the current state

Bug: 323112914
Test: atest NexusLauncherTests
Change-Id: If87acf1e2324f98cf1d96d194eac13a93fa432c1
2024-04-14 06:19:49 +00:00
Song Chun Fan e5ad96ce10 [Launcher/Archive] remove all checks for the archiving system property
No longer needed

Change-Id: I62c8843aa04a245d1dcc30f7787c71d17993f5d1
BUG: 331165939
Test: builds
2024-04-08 23:14:07 +00:00
Jeremy Sim a596f589c4 Allow app pairs in folders
This CL substantially refactors folders to be able to take contents of type AppPairInfo. App pairs can now be moved in and out of folders, and launch from folders.

This CL contains only logic and model changes; animation and style changes (for dropping items into folders, color changes to app pair surfaces, etc.) will be in a following CL. Another CL (hopefully) will contain tests. I'm planning to submit them together, but this patch should also be able to stand alone with no issues (except janky transitions).

Bug: 315731527
Flag: ACONFIG com.android.wm.shell.enable_app_pairs TRUNKFOOD
Test: Manual, more to follow in another CL.
Change-Id: I73732fcaefbdc61bf6e02a5be365962b8bbc3e41
2024-04-03 16:47:42 -07:00
Jeremy Sim da4ba9336e Merge "Reparent folders and app pairs" into main 2024-03-30 03:06:44 +00:00
Jeremy Sim 742630c2f8 Reparent folders and app pairs
Previously, app pairs and folders shared a common data model, FolderInfo. Now we need to separate them, so a new type, CollectionInfo, will serve as the parent of both types.

Bug: 315731527
Fixes: 326664798
Flag: ACONFIG com.android.wm.shell.enable_app_pairs TRUNKFOOD
Test: Manual, unit tests to follow
Change-Id: Ia8c429cf6e6a376f2554ae1866549ef0bcab2a22
2024-03-29 15:39:28 -07:00
Sunny Goyal 77954bae4e Cleaning up some build configurations
> Removing Launcher3Go-without-quickstep
> Removing src_ui_overrides to src_no_quickstep
> Removing unnecessary code swpa for GO builds

Bug: 330920490
Flag: None
Test: Presubmit, everything builds
Change-Id: I5746dbc7c5a37c1d99d78b55bf2a6adce1a711c9
2024-03-26 17:16:52 +00:00
Vinit Nayak ef5159e8df Request high res icons for app pairs after all workspace items processed
* TL;DR Loading workspace icons only requests high res icons for apps
on workspace or in hotseat, not for folders or app pairs. They need to
request that separately
* See notes on bug for root cause

Test: Created many app pairs, empty icons does not repro.
If I remove my change issue consistently repros, not a race condition
Fixes: 323106492

Change-Id: I05ba5e8e8b0eddd4041642f89d06deff85511e40
2024-02-23 16:47:50 -08:00
Jakob Schneider 328c32235e Add the archiving sysprop check to launcher3.
This system property will be used to test the feature
in DVT. This is required because the new device is built on U QPR3, not V. See
https://docs.google.com/document/d/1h8sLlnnhwGP4uZssglBqTShMoQcEq5dvR7jsJmmp0Cw/edit?resourcekey=0-KTFHkPKTdtMN-5kQYBWJig&tab=t.0#heading=h.x9snb54sjlu9  for more details.

Test: tested manually
Flag: ACONFIG com.android.launcher3.enable_support_for_archiving TEAMFOOD

Change-Id: Ie64a40ba799c81057258dd7de3872a0494cff2d8
2024-02-06 14:29:07 +00:00
Himanshu Gupta f591ce5f17 Restricting Accessibility flows for Private Profile.
Adding PS apps to the home screen is restricted.
This CL prevents the same from accessibility drags.

Bug: 289223923
Flag: ACONFIG com.android.launcher3.Flags.private_space_restrict_accessibility_drag DEVELOPEMENT
Test: Ran Launcher3 Tests.
Change-Id: I3e2b7b196b96a4d2ba34d8ece5fd6e0463f17253
2024-01-25 04:19:20 +00:00
Rohit Goyal d16a574524 Merge "Add support for progress bar for archived apps in AllApps view." into main 2024-01-18 17:56:04 +00:00
Rohit Goyal 04fe042e83 Add support for progress bar for archived apps in AllApps view.
Working Video: https://drive.google.com/file/d/1-cSD63FQLmqyeTkUuXqcSsjb03m31ULO/view?usp=sharing

Test: TaplPromiseIconUiTest
Bug: 302115555
Bug: 317108448
Flag: ACONFIG com.android.launcher3.enable_support_for_archiving DEVELOPMENT
Change-Id: Iebaa338789430c5e0a004bd8b05bdbda87cd986e
2024-01-17 22:49:08 +05:30
Sunny Goyal d24d33925a Using WidgetInflater in loader task
This removes duplicate logic for widget inflation.
Since the widget inflation can now happen during loader,
the restore logging can also be moved completely to the loader

Bug: 318539160
Test: atest TaplBinderTests
Flag: None
Change-Id: If9f336e7bf49ee7df121d7d9852b674d98124895
2024-01-14 00:56:51 -08:00
Stefan Andonian 22c4399105 Merge "Split LoaderTask.processWorkspaceItem into separate methods." into main 2024-01-13 00:25:13 +00:00
Sunny Goyal 39f235154e Merge "Fixing some launcher model tests" into main 2024-01-12 23:04:39 +00:00
Stefan Andonian 808e4f32f0 Split LoaderTask.processWorkspaceItem into separate methods.
Right now, processWorkspaceItem is almost impossible to fully
understand. It is a behemoth of a method that handles everything
possibily related to processing a workspace item.

In order to make life easier for developers, it is being split into
smaller methods that deal with limited functionality each, and are
commented / named well. These can also be individually unit tested, so
developers don't have to use mock data anymore to test even the smallest
bit of functionality.

Bug: 318398886
Test: Manually verified that the workspace loading behavior still works
on device.
Flag: None, this is just a copy/paste refactor.

Change-Id: I040bce708cada5b29cf3488ddf37ccc8d7af8282
2024-01-12 22:22:01 +00:00
Sunny Goyal 6449a21062 Fixing some launcher model tests
> Removing static mocks and using Sandbox context instead
> Removing inheritence in LauncherModel and converting LauncherApps.Callbacks
  to a separate class. decMaker sometimes fails because of API changes in
  LauncherApps.Callbacks

Bug: 319877828
Test: atest LoaderTaskTest
Flag: N/A
Change-Id: If78b5d83595627a355b284f52d887d75fef53014
2024-01-12 12:30:52 -08:00
Charlie Anderson da3138cd91 Replace ENABLE_LAUNCHER_BR_METRICS flags with fixed aconfig flag.
This is necessary because the value of the read-write flag will not be updated in time for backup/restore.

Bug: 307527314
Test: compiles
Flag: ACONFIG ENABLE_LAUNCHER_BR_METRICS_FIXED TEAMFOOD
Change-Id: I67a1a820734d8881b3ed5be4a1f2f1556e6e4704
2024-01-12 14:33:29 -05:00
Charlie Anderson 67636269dd add metrics for when db grid migration fails
Flag: ACONFIG enable_launcher_br_metrics TEAMFOOD
Test: locally verified
Bug: 307527314

Change-Id: Iab84a337d76d63bb3bc2ed81fdf4b6fd50dc5661
2024-01-05 10:48:40 -05:00
Rohit Goyal 2e6010c421 Add support for progress bar during unarchival of app.
* With this change, progress bar should appear whenever app update for archived app reaches non-zero progress.
* Once the update is cancelled, the progress bar should also disappear.

Test: PromiseIconUiTest and manually tested the progress bar using Play Store
Bug: 302115555
Flag: ACONFIG com.android.launcher3.enable_support_for_archiving DEVELOPMENT
Change-Id: Iacf7a0fd865dba34915fa09f59c63a1da6e47315
2024-01-03 23:44:52 +05:30
Charlie Anderson 511421c12f Adds logging for Launcher restore metrics in Launcher and LoaderTask
- Adds flag for indicating when we are loading after a restore, separate from the pending restore flag
- Adds many success/failure scenario metrics when loading and binding items

Flag: ACONFIG enable_launcher_br_metrics DEVELOPMENT
Test: locally verified
Bug: 307527314
Change-Id: I9d2660f6d9d7cd5813072201e96b1a64aec4ea4b
2023-12-18 19:32:02 +00:00
Charlie Anderson 861c2eed78 Merge "Adds more in depth logging of Launcher restore functionality" into main 2023-12-12 20:30:19 +00:00
Charlie Anderson c61288e271 Adds more in depth logging of Launcher restore functionality
Test: locally
Flag: N/A
Bug: 294386159
Change-Id: I810239047480090911c54dbe65a4aad8515f640c
2023-12-12 11:04:52 -05:00
Thales Lima 1faa4edc42 Make numFolderRows/Columns accept more values
InvariantDeviceProfile hold values that are not related to current DP in use. Now other classes get the value correctly from DeviceProfile, and each posture can hold different values, making it akin to iconSize.

Fix: 309800141
Test: DeviceProfileResponsiveDumpTest
Test: DeviceProfileResponsiveAlternativeDisplaysDumpTest
Test: DeviceProfileDumpTest
Test: DeviceProfileAlternativeDisplaysDumpTest
Flag: ACONFIG com.android.launcher3.enable_responsive_workspace TEAMFOOD
Change-Id: I32295738585de67205dcd6c8942d08a3d07d169a
2023-12-08 22:00:48 +00:00
Thales Lima 09d42d5340 Revert "Make numFolderRows/numFolderColumns accept more values"
Revert submission 25438456-5x5_folder
Reason for revert: http://b/313567919
Reverted changes: /q/submissionid:25438456-5x5_folder

Revert "Use DeviceProfile numFolderRows and numFolderColumns"
Revert submission 25313018-numFolder
Reason for revert: http://b/313567919
Reverted changes: /q/submissionid:25313018-numFolder

Change-Id: I4890016e310c0a2122861f36fcdbf33e98e727c0
2023-11-30 11:47:37 +00:00
Thales Lima 07c6b8d96d Use DeviceProfile numFolderRows and numFolderColumns
Invariant hold values that are not related to current DP in use. This is a change needed for IDP to hold more values in the future akin to iconSize.

Bug: 309800141
Change-Id: Iefb388a5f6590d7da3452d2c388c02bd5e9d32bb
Flag: N/A
Test: NexusLauncherTests
2023-11-21 11:47:21 +00:00
Himanshu Gupta 9aab4d4603 Adding Prework for Private Space integration in Launcher
This Cl adds the following:
1. Fixes for Quite Mode check maintained by Launcher
2. Addition of new Quite Mode broadcasts
3. Fixes for determining work profile user correctly.

Flag: ACONFIG com.android.launcher3.Flags.enable_private_space DEVELOPMENT
Bug: 289223923
Test: Ran Launcher3 tests
Change-Id: I5f6158b213723339e70ff99e66c5f439f5879e12
2023-11-05 12:31:10 +00:00
Jeremy Sim 5ff90cd057 Prevent app pairs rank from resetting on Launcher model reload
This fixes a bug where app pairs rank was mistakenly reset upon Launcher reload, causing app pairs to launch with the wrong ratio.

Bug: 274835596
Test: App pairs restore properly even after Launcher restart
Flag: ENABLE_APP_PAIRS
Change-Id: I5d37190cd994628886f77e089c71fc5e5dddc03e
2023-10-24 00:37:52 +00:00
Federico Baron 0bd2c4ea75 Merge "Add smartspace removal option as a toggle" into main 2023-10-06 20:35:14 +00:00
fbaron c0e687bad8 Add smartspace removal option as a toggle
Bug: 303471576
Test: try removing smartspace by going to home settings and turning it off
Flag: ENABLE_SMARTSPACE_REMOVAL
Change-Id: Idd95da1b302927885a8c469e38db6d3c5130f8c1
2023-10-05 17:26:03 +00:00
Stefan Andonian 54495f3018 Permanently provide functionality for LauncherPref items that don't need
to be migrated, but are boot aware.

Bug: 251502424
Test: Tested that Migration works as expected, as well as shared
preference information that doesn't need to be migrated. Also sanity
tested phone in general.

Change-Id: Ie8460e360856cbe20a7770b1747f75c7154759ab
2023-10-04 23:32:58 +00:00
fbaron 22a9c3cb7f Add flag check for SMARTSPACE_AS_A_WIDGET to loadertask.java
Missing a flag check that is necessary in LoaderTask.java to prevent the code from running when the flag is off.

Bug: 300140279
Flag: SMARTSPACE_AS_A_WIDGET
Test: no test
Change-Id: Iaa89e8542475eb01f679f70734a61c13a3cde89f
2023-10-04 10:19:46 -07:00
fbaron e58aaf1802 Add smartspace as a widget to first page (implementation 2)
Flag: SMARTSPACE_AS_A_WIDGET
Test: verify that the smartspace gets replaced with a smartspace widget
Bug: 300140279
Change-Id: I42c170de5e2a9fd3d24d99bb8b09cf412c55e3a5
2023-09-29 18:16:09 +00:00
fbaron 30d9e3fb06 Add smartspace custom widget
Flag: SMARTSPACE_AS_A_WIDGET
Test: no test
Bug: 200721106
Change-Id: I4ae4ff72ff7267bab0b5a928f3f78b47f7cfbc1f
2023-09-07 20:27:59 +00:00
Charlie Anderson c9d11e8208 add logging for Launcher backup and restore events
Test: Manually verify logs
Bug: 294386159
Change-Id: Ic3a77f4a09556e0d769837129e0bd094f1e91b6b
2023-08-16 13:24:22 -04:00