Commit Graph
113 Commits
Author SHA1 Message Date
Sunny Goyal f7fa4cef5b Using single pass to update both widgets and shortcuts in BgDataModel
Bug: 390572144
Test: Presubmit
Flag: EXEMPT refactor
Change-Id: I9ead8f7acb9fc3b550f7368474f0402c032dfd12
2025-05-06 15:20:13 -07:00
Sunny Goyal aef6c7932e Moving predicted items to ItemIdMap instead of extraItems
> This allows the whole workspace model to be contained in itemIdMap instead of spread across multiple data containers
> Deprecating extraItems, all non-workspace data should use separate repositories
> Design: http://go/launchermodel-re-arch?#heading=h.5y8n4r164d5s

Bug: 390572144
Test: atest PredictionUpdateTaskTest
Flag: EXEMPT refactor
Change-Id: I886d0a8d5bbbf9f5c2054d4a2442bf03f9c4eab5
2025-05-05 15:52:37 -07:00
Sunny Goyal 42975c39db Making various model objects injectable
Bug: 361850561
Test: Updated tests
Flag: EXEMPT dagger
Change-Id: Ibb45b72c186e6aeeed7a37b0ae3f8083472019d7
2025-03-10 14:37:43 -07:00
Charlie Anderson 9e50a01e92 Simplify some package update logic around restoring archived/unarchived shortcuts
- also avoids race condition where unarchived shortcut is not pinned in shortcut service after restore, and then marked as broken

Bug: 375414891
Test: Launcher B&R w/ archiving
Flag: com.android.launcher3.restore_archived_shortcuts
Change-Id: I2b5331117be93d66e4acbded49b65cd5ce9f8f83
2025-02-21 17:04:12 -05:00
Charlie Anderson ceb401c3e7 Revert^2 "Restore Archived Pinned Shortcuts instead of removing them."
This reverts commit f5cb1b664b.

Reason for revert: adding test fix and reverting

Change-Id: I2fc8dc83259b2ee7992ac2291df6ee4246a2e9d5
2025-02-07 12:14:55 -08:00
Liana Kazanova (xWF) f5cb1b664b Revert "Restore Archived Pinned Shortcuts instead of removing them."
This reverts commit abbb991d8f.

Reason for revert: DroidMonitor: Potential culprit for Bug X - verifying through ABTD before revert submission. This is part of the standard investigation process, and does not mean your CL will be reverted.

Change-Id: Ifa241a631a1a4361623cfe0e81e31ca6b44e9d73
2025-02-04 15:37:46 -08:00
Charlie Anderson abbb991d8f Restore Archived Pinned Shortcuts instead of removing them.
Bug: 375414891
Test: ShortcutsChangedTaskTest, WorkspaceItemProcessor test and manually backing up + restoring.
Flag: com.android.launcher3.restore_archived_shortcuts

Change-Id: I798d56bc1ffef9a454e3899e4155d63f7edf39f2
2025-02-04 11:29:29 -08:00
Sunny Goyal dfbbebc9e3 Revert^2 "Unifying various model update callbacks into one"
72f9943f64

Change-Id: I38901714947a2b7926723ea25df4a2b8216303e4
2025-01-30 13:19:32 -08:00
Pechetty Sravani (xWF) 72f9943f64 Revert "Unifying various model update callbacks into one"
Revert submission 31445615-model-callbacks

Reason for revert: <Droidmonitor crested revert due to b/393222548. Will be verified through ABTD for stanadard investigation.>

Reverted changes: /q/submissionid:31445615-model-callbacks

Change-Id: If6893a125756e5abfbb215af377576429bb1c91b
2025-01-29 22:46:55 -08:00
Sunny Goyal 36c3112abf Unifying various model update callbacks into one
Making the BubbleTextView.applyItem stateless so that it does not depend on the order of events

Bug: 390572144
Flag: EXEMPT refactor
Test: atest LauncherBindableItemsContainerTest
      atest BubbleTextViewTest
Change-Id: Ib9c0ac6c330d6f4e08c3db5772d35787fa056b65
2025-01-28 16:03:01 -08:00
Sunny Goyal 777324ed15 Removing redudntant objects from BgDataModel
Bug: 390572144
Flag: EXEMPT refactor
Test: Updated model tests
Change-Id: Ied8a0bfdbfd324b9fb05724f1fcf67238aa37d16
2025-01-23 12:55:37 -08:00
Sunny Goyal 18e480838a Replacing all int lookup flags and boolean overrides with an object to make it easier to extend options
Bug: 381897614
Bug: 366237794
Flag: EXEMPT refactor
Test: atest CacheLookupFlagTest
Change-Id: Ic89d48dd1c5dc8b0a89b1898cd7b00d9c61d6513
2024-12-12 18:32:55 -08:00
Charlie Anderson 0c44432d06 Add additonal logging around PackageUpdatedTask to detect app updates for User
Bug: 350144057
Flag: EXEMPT just logging
Test: local debugging
Change-Id: I317bee94342ad5022025ec52c992c5eeb906efa5
2024-09-06 15:24:51 -04:00
Charlie Anderson 98c3cafcaf [Test Week] Add tests for each operation in PackageUpdatedTask
Bug:353303621
Test: unit test
Flag: TEST_ONLY

Change-Id: Ic2194fd1506c4ff5a542eac62a492f395d12886e
2024-07-17 11:06:38 -04:00
Charlie Anderson 1e96d751d2 Adding additional logging around updated shortcuts
Bug: 338218961
Test: locally
Flag: N/A
Change-Id: Ic72ec2686de20036928c1e98b52677bd82368282
2024-05-15 14:18:21 -04:00
Charlie Anderson 0171058c0f Merge "add more logging around package updates and widget click handling in Launcher" into main 2024-05-10 17:19:06 +00:00
Charlie Anderson 5fa4f02c70 add more logging around package updates and widget click handling in Launcher
Bug: 336976070
Test: locally verified
Flag: N/A

Change-Id: I8a1204fb6d96eccbc20b0ddd3c1e6fb1ae75fc6c
2024-05-10 10:00:51 -04: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
Sunny Goyal 993893895c Converting ModelTask to an interface instead of an abstract class
This allows extensibility and better use of lambdas

Bug: 338282246
Test: Presubmit
Flag: None

Change-Id: Ia41067f0068b3b631eeb4faf877dc77f8587e1f6
2024-05-01 15:43:26 -07: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
Song Chun Fan ab21ddb2da Merge "[Launcher/Archive] remove all checks for the archiving system property" into main 2024-04-09 22:05:08 +00:00
Sunny Goyal 11117d9b2a Using resource override instead of code-swap for ApiWrapper
Bug: 330920490
Flag: None
Test: Presubmit
Change-Id: Iac19f32e64d2c76ed5b4f8592943ee4ae7af51b5
2024-04-09 11:14:44 -07: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 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
Jeremy Sim 3c1ee0dad4 Improve app pairs disabled state
This CL fixes 2 issues with app pairs:
- When an app pair is incompatible with the screen size due to a non-resizeable app (e.g. Camera), the app pair will now be properly disabled and display an error message. If the user is on a foldable, it will prompt the user to unfold their phone.
- The app pair icon will now properly redraw with lower opacity when it is disabled.

Fixes: 323088270
Test: Manually paused and unpaused apps, created Camera app pairs and tested with foldable
Flag: ACONFIG com.android.wm.shell.enable_app_pairs TEAMFOOD
Change-Id: I66514c96bc19f480c9788661e4dffaa5b1cdc2ca
2024-02-26 14:29:57 -08:00
Rohit Goyal b6b27a497e Bugfix: Ensure archived app icons persist when app main activity name changes post unarchival.
* In case app main activity changes, archived app icon should not disappear.
* We need to make sure the corresponding new intent is applied correctly to the app icon on activity name change.

Test: verified bugfix locally.
Bug: 324545643
Bug: 325458020
Flag: ACONFIG com.android.launcher3.enable_support_for_archiving DEVELOPMENT
Change-Id: I0134e57e3536d05fc96c8cfcf5f57fd8f4df5f1f
2024-02-21 13:12:02 +00: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
Jeremy Sim 48467438da Remove app pairs when their member apps are uninstalled
This patch modifies PackageUpdatedTask.execute() to also remove app pairs when their member apps are uninstalled.

Fixes: 316050282
Test: Install App A, create an app pair containing App A, uninstall App A.
Flag: ACONFIG com.android.wm.shell.enable_app_pairs TEAMFOOD
Change-Id: I8487a2dfcfc6d29bd55e88003d1950078c6e2e31
2024-01-22 17:50:12 +08: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
Sunny Goyal eb29313595 Updating WidgetSheets so that it can be displayed in any
activity and not just Launcher

Bug: 307306823
Test: atest Launcher3Tests
Flag: NA
Change-Id: I0e33323805c6e895e3a1639ecf5933e698212c65
2023-11-27 11:17:04 -08: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
Kevin Lim 07546b88e7 [AppInfo] Enable logs for debugging unexpected AppInfo changes.
Here's a sample log run through of AllAppsStore and PackageUpdatedTask
logs: http://gpaste/5250747917664256

Bug: b/290090023
Flag: None. Adding logging.
Test: None. Adding logging.
Change-Id: Ia1d620a50267d6a65fe719936d7e87e6dad13afa
2023-10-02 19:40:58 +00:00
Cameron Brown 089094ab40 launcher3: add missing whitespace to log
Change-Id: Ia3f4ec3bd46647eb3e0ee5a3a5e38d748a8ae02b
2023-07-19 15:08:48 +00:00
Vinit Nayak f6f192853d Cleanup WorkProfileTest logs
Fixes: 243688989
Change-Id: Ic3f143062c1a1383d1e79959dae59c45743547e9
2023-07-05 16:27:11 -07:00
Vinit Nayak 88a91bbd16 Add logs to check which userId is used for workProfile matcher
Flag: none
Test: compiles
Bug: 243688989
Change-Id: I0a579203cc0c51f7707180b323ed4828f1dea297
2023-05-11 14:55:00 -07:00
Vinit Nayak 6106ae9ac7 Add logs for PackageUpdatedTask
* That's the bit that updates new packages for work profile,
at least from command line.
* There is variability in how long it could take work profile
apps to show up, from 2-8 seconds.

Bug: 243688989
Change-Id: I710befc5f17b4a16bff523eb03f1e88975cafd43
2023-04-26 13:21:57 -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
Pinyao Ting 777c13eb00 Explicit Nullbility in Launcher (Part 5)
This CL addresses the nullbility in LauncherModel and update tasks.

Bug: 242895652
Test: manual
Change-Id: Ied635c944c3656f0d493b295f772aa0329b354b9
2022-09-16 17:17:16 -07:00
Pinyao Ting 415740978b Include additional logs for widget removal
It isn't clear what causes widgets to be removed when restoring on a new
device. This CL included additional error message, which hopefully would
reveal the root cause.

Bug: 235923862
Test: manual
Change-Id: I8601d8fe598072dc9def0549796d1e527e167e23
2022-07-19 14:43:32 -07:00
Pinyao Ting 6a41d56b50 Log the reason why a WorkspaceItemInfo was removed
In the past we've seen a WorkspaceItem disappeared from the workspace
but wasn't able to determine why it was removed. This CL includes the
reason why it was removed in the error log, which hopefully would help
us debugging similar issues in the future.

Bug: 231239260
Test: make
Change-Id: Iba3d57568c9b3e011a6b65b26f0d4170d42fe1a5
2022-05-16 20:17:47 +00:00
Sunny Goyal 32084d49d3 Replacing ItemInfoMatcher with predicate
This removed unnecessary componentName lookups when it
is not required. Many checks just rely on IDs and
userHandle

Bug: 231153610
Test: Presubmit
Change-Id: Ief93954abc5861062a9f55dc2ef181d3de106c62
2022-05-03 10:07:22 -07:00
Sunny Goyal 7dece749a3 Updating logic to check if icon needs badging
Bug: 209503720
Test: Manual
Change-Id: I66f0dbaf81be3190a106323fe3ce87717626d8e7
2022-01-19 17:22:46 +05:30
Sunny Goyal ed2a55f413 Removing widget preview caching
> All previews are generated on demand when the corresponding
  header expands
> Using ItemAnimator to animate layout changes when preview loads

Bug: 196238313
Test: Manual
Change-Id: I0cb859c8443c2c536399e4063f58baecfc7416ad
2021-08-17 17:50:30 -07:00
Stevie Kideckel 10d4edade1 Merge "Refresh widgets in the model when packages change" into sc-dev 2021-06-17 15:04:01 +00:00
Stevie Kideckel 69af278f8a Refresh widgets in the model when packages change
Fix: 191163748
Test: local sample app
Change-Id: Ic09ad11cabf6efa471fb6e685cb255c4a17493ee
2021-06-17 13:08:53 +00:00
Schneider Victor-tulias bcd72a7b32 Fix broken app icon on restart during install.
Fixes: 186610233
Test: manual with backup/restart and restart during install
Change-Id: Ic64bd98758bc2e1a2a1562579cb25de02faa624c
2021-06-16 16:47:45 -07:00
Sunny Goyal 4c23ca768f Fixing shortcut intent getting cleared during backup/restore
Bug: 174570283
Bug: 156871815
Test: Verified on device
Change-Id: Ie286ee783bfe96c5b2be28f0db5298caf3801e6d
2021-02-12 18:04:23 +00:00
Schneider Victor-tulias 1b4d5034fb Fix icon flicker on transition from installing, to installed, to downloading incrementally.
When an app finished downloading, we assumed that its progress level was 100%. This caused flicker in apps that supported incremental downloads. Added a check for the total download progress on app installation.

demo: https://drive.google.com/file/d/11NwwhHj_4rmDFwpsb8gTX-uA5YSinjSj/view?usp=sharing

Fixes: 178745816

Test: manual

Change-Id: I08328296db2ce2c2242fc4fe87158ff4b911c659
2021-02-03 16:39:16 -08:00
Schneider Victor-tulias 9918e94c03 Revert "Revert "Add UI updates for incremental app installs.""
This reverts commit 6e60380abb.

Reason for revert: revert was unnecesary

Change-Id: I021769e929d3026b23c5f644e2ee629cec21a301
2021-01-20 00:42:03 +00:00
Schneider Victor-tulias 6e60380abb Revert "Add UI updates for incremental app installs."
This reverts commit b803f7e2cb.

Reason for revert: causes b/177642572

Change-Id: I48b85e8495734a2d3a7b477dfb20929879465b6a
2021-01-19 19:50:18 +00:00