Commit Graph

98 Commits

Author SHA1 Message Date
shamalip bb86bde284 Widget Picker: Update data layer to support shortcuts
Adds sealed class for widget info that can contain either appwidget info
or shortcut info.

Also kept the aosp config.xml empty to keep everything eligible for
 featured

Bug: 370950552
Flag: com.android.launcher3.enable_widget_picker_refactor
Test: Open picker for homescreen and lockscreen hosts
Change-Id: Iceafc2c1234063b16421f90bf00cf96114e9870c
2025-06-08 20:10:53 +00:00
Adnan Begovic 0e8be78021 launcher3: Handle case where install session could be invalid.
If the install session comes back as invalid, we can fail to add
a promise icon which leads to icons not showing up on the workspace.

Bug: 419426642
Test: None yet
Flag: EXEMPT Bug fix
Change-Id: I592948eb2b60c2249bb5b141d499d1d5ea01aebc
2025-06-03 12:48:54 -07:00
Charlie Anderson 567097eee8 Make sure profile badging matches shape
Bug: 398875512
Test: testing different shapes on work profile
Flag: com.android.launcher3.enable_launcher_icon_shapes
Change-Id: I5cb9e629f711f2fc607ca646d82a8523c0b43d1b
2025-03-07 21:31:11 +00:00
Sunny Goyal b82394758f Moving LauncherModel initialization to a separate class
Bug: 361850561
Test: Presubmit
Flag: EXEMPT dagger

Change-Id: Ie210473a9e158faa421c00f115ffcca680f84ae4
2025-02-18 13:11:50 -08:00
Adnan Begovic 1b26bb4a74 launcher3: Improve SimpleBroadcastReceiver.
Unless explicitly annotated, parameters in java are by
  default nullable. There are a few cases where a null context
  may be passed to the unregisterReceiverSafely function
  of SimpleBroadcastReceiver.

  To mitigate misuses or incorrect contexts being passed for
  register vs unregister, keep the context as a strong reference
  in the constructor.

  Also added NonNull annotations for any public callsites to
  enforce behavior.

Bug: 395019017, 395966395
Flag: NONE - bug fixed
Test: manual - presubmit
Change-Id: Ie371fa45cadceaf51cf184b446df9123ef27c337
2025-02-12 13:43:34 -08:00
Charlie Anderson e90282b317 Convert UserCache to use Dagger
Bug: 372012340
Test: Presubmit
Flag: EXEMPT Dagger Change
Change-Id: I36a0a3f56540c0515d99badc127c2ab8534e684e
2025-01-28 15:30:07 -05:00
Charlie Anderson 859c793b6b Clean up usage of FileLog, and some logging related to B&R
Bug: 378684472
Test: N/A just logs
Flag: EXEMPT just logs
Change-Id: Ie2de7b700862b1439adc0c44d684b3864469014a
2024-11-15 16:38:27 -05:00
Sunny Goyal 0bf39fdf26 Merge "Removing unnecessary SafeClosable requirement from DaggerSingletonObject" into main 2024-10-14 17:06:13 +00:00
Sunny Goyal bf9d047b53 Removing unnecessary SafeClosable requirement from DaggerSingletonObject
Test: presubmit
Bug: 361850561
Flag: EXEMPT dagger
Change-Id: I453159be83e92eee92f5a18cfe0d3ea9a3123f47
2024-10-12 01:26:50 -07: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
Anushree Ganjam 0dc88fece8 Merge "Make InstallSessionHelper injected by Dagger (7/n)" into main 2024-10-02 01:57:48 +00:00
Anushree Ganjam 29e060408f Make InstallSessionHelper injected by Dagger (7/n)
Bug: 361850561
Test: Manual
Flag: NONE Dagger Integration

Change-Id: Ib1833436bfd1079ae78f1d865831c1aa8a7a0c41
2024-10-01 12:45:53 -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 a1cebfa0c0 Updating IconProvider API to use a single API to load icons
Bug: 366237794
Test: atest IconProviderTest
Flag: EXEMPT refactor, changes in underlying API

Change-Id: If8c6a4f13de7e7d262ee0b6d0c6897981f75e639
2024-09-26 22:13:11 -07:00
Sunny Goyal 28d6bbd6b4 Moving various application into related methods to a separate class
> This avoids duplicate RPCs when trying to get multiple properties
  from AppInfo
> This would be used in a followup cl when AppInfo is added to caching
  logic in IconCache

Bug: 366237794
Test: atest ApplicationInfoWrapperTest
Flag: EXEMPT refactor
Change-Id: I55b964d4f8cfa1ff1770e310ac278719495e285d
2024-09-23 22:09:24 -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 e745aa87fc Add logging around InstallSessionTracker to verify PackageInstaller is communicating with Launcher.
Bug: 350144057
Flag: NONE just logs
Test: Locally
Change-Id: I600cac50d7202458abf968fc0707eba58ffc0e65
2024-08-26 19:15:58 -04:00
Charlie Anderson e17788e9b8 Merge "[Test Week] add unit tests for InstallSessionTracker" into main 2024-07-23 18:55:55 +00:00
Charlie Anderson 528c716182 [Test Week] add unit tests for InstallSessionTracker
6 public methods tested, 8 unit tests total
no previous test class

Bug: 353303621
Test: unit tests
Flag: TEST_ONLY
Change-Id: Ie2b5c88566c1a512e534654ccc7db1ec6b277a83
2024-07-23 13:05:28 -04:00
Charlie Anderson 5cb2e93e7b [Test Week] Add unit tests for UserCache
6 new methods tested.
added 1 method to help with testing.
no previous test class.

Bug: 353303621
Test: unit test
Flag: TEST_ONLY
Change-Id: I27e607df91bacc1a5dc5adc3b76a2f1758404e6a
2024-07-19 20:02:40 -04:00
Fengjiang Li b87ad6f945 [Launcher Jank] Improve SimpleBroadcastReceiver.java
Bug: 348649441
Flag: NONE - jank fix
Test: manual - presubmit
Change-Id: I17bd7e4d7f0640522476e94edae691f983835f62
2024-07-11 11:12:29 -07:00
Fengjiang Li 1f87d94e59 [Launcher Jank] Avoid SimpleBroadcastReceiver making binder calls on main thread
Fix: 348649441
Flag: NONE - jank fix
Test: manual - presubmit
Change-Id: Ie97713f3f0b1f117662d49c6d6a65651c593d424
2024-06-21 14:37:51 -07:00
Oli Thompson 3ea1acb8ca Show edu card when managed profile removed
Reset the work edu card bit so the edu card shows if the managed profile is removed

Also remove padding from the close button so it doesn't clip. screenshot https://screenshot.googleplex.com/96Yc6yExZ57btxG

Bug: 315449027
Bug: 293642345
Test: manual
Flag: NONE
Change-Id: I60cfc0c258d28a6674aec41862c1770550a14955
2024-05-15 14:19:03 +00:00
Anushree Ganjam c9eda41c31 Hardcode the className instead of class.getSimpleName().
class.getSimpleName() causes issues with obfuscation.

Bug: 332171918
Test: Manual
Flag: NA
Change-Id: I5119a7ba0e4e27d8745c94df67881934fed282a4
2024-05-08 12:31:24 -07:00
Treehugger Robot 62a1a8a336 Merge "Move PreInstalled App List to UserCache." into main 2024-04-23 18:24:01 +00:00
Winson Chung a9ccb34d1c Merge "Migrate PackageManagerHelper to MainThreadInitializedObject" into main 2024-04-23 18:10:56 +00:00
Himanshu Gupta ae4631e6a3 Move PreInstalled App List to UserCache.
Bug: 333543006
Test: atest PrivateSpaceHeaderViewTest, AlphabeticalAppsListTest
Flag: NA
Change-Id: I84233c5a6406325d9e641b72ea8455911b46f65f
2024-04-23 15:28:01 +01:00
Sunny Goyal 10fa016352 Fixing MainThreadInitializedObject
> Making SafeCloseable implementation mandatory, to prevent leaks during test and preview
> Removing getNoCreate method and defining executeIfCreated to avoid null pointer exceptions
> Fixing sandbox value leaking into main, by Checking sandbox against App context
> Converting sanbox to an interface instead a class

Bug: 335280439
Test: Presubmit
Flag: None
Change-Id: I951dcde871898e745ff6490a1c4f8fd1512888f5
2024-04-22 17:04:33 -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
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
Rohit Goyal f8302c388f Bugfix: In case of unarchival, do not add an installer task to add workspace item.
* In case install queue is cleared (which happens when launcher comes back to foregorund from background) when app has successfully unarchived, since app is not archived anymore, `AddWorkspaceItemTask` successfully manages to add item to the workspace.
* We should avoid adding pending task for adding workspace item in the queue at all for unarchival to prevent this.

Test: verified bugfixes locally.
Bug: 326495267
Flag: ACONFIG com.android.launcher3.enable_support_for_archiving DEVELOPMENT
Change-Id: Iae6d6390d8e2d9b270f7aef0dce1fa32d9899f28
2024-03-20 11:12:38 +00:00
Himanshu Gupta 4499fa60f9 Preventing installed PS apps from moving to home screen
During app install in PS, promise app icons and the
installed app icons are added automatically on home screen.
In this change we restrict the same.
Also, checked that enabling `PROMISE_APP_IN_ALL_APPS` still
works for PS apps after this change.

Bug: 325057835
Test: Launcher3 tests
Flag: ACONFIG com.android.launcher3.Flags.private_space_restrict_item_drag TEAMFOOD
Change-Id: Iecff850bcc1cd17a123553a4258943da1ee61fcc
2024-02-16 19:28:58 +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
Brandon Dayauon 72542b6058 Add Utility method in userCache to get badgeDrawables
- In userCache, create a utility method to get badgeDrawables via userHandle. As of this moment, this is used in Toast.

Bug: 312898415
Test: Manual photos:
before 0-state: https://drive.google.com/file/d/15OUcd8i1IoUU0BgMlZj-8e0YWsmtzY4E/view?usp=sharing
after 0-state: https://drive.google.com/file/d/15SH19xvdLzQt1QbHY2oAxPAFVXPZDchF/view?usp=sharing
before textHeader: https://drive.google.com/file/d/15OLpN2SNF9QNWMrs0Aos5fS-l39Op-wo/view?usp=sharing
after textHeader: https://drive.google.com/file/d/15PIi-K6FfdCtPwWg2GEP9SUE5ow2YXJ5/view?usp=sharing
Flags: None

Change-Id: Ia6f89e634cc0af47cae91add6ea62d3af452c441
2024-01-31 15:54:30 -08:00
Andy Wickham b922dccbf5 Cleanup API checks for P, Q, and R.
Test: Build with gradle
Flag: NA
Change-Id: I3ef17090741d14bebd76cf09cf3dc5ac4f11e686
2024-01-24 14:58:08 -08:00
Brandon Dayauon 6ea6ffa94a Merge "Revert "Revert "Fix the badge in badge (triple badging), by simp..."" into main 2024-01-12 15:47:38 +00: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
Brandon Dayauon 8fe6bd2572 Revert "Revert "Fix the badge in badge (triple badging), by simp..."
Revert submission 25263180-revert-24721954-cherrypick-removeBadgeInBadge-dia2ji7r7td-RZRSBRGYSA

Reason for revert: Fix the test that uses the work USERHANDLE that may cause this security exception https://paste.googleplex.com/5530091189698560

Reverted changes: /q/submissionid:25263180-revert-24721954-cherrypick-removeBadgeInBadge-dia2ji7r7td-RZRSBRGYSA

Change-Id: I82dbf155b7bc41a496d50884193f5f168cb46f31
2023-12-19 09:34:53 -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
Sunny Goyal c173c04422 Generalize userproperties to support for more user types in iconCache
Bug: 305062259
Flag: None
Test: Presubmit
Change-Id: I35cd20a03520ada233809930fcc56cdea1dabec6
2023-10-12 21:25:59 +00:00
Vinit Nayak f6f192853d Cleanup WorkProfileTest logs
Fixes: 243688989
Change-Id: Ic3f143062c1a1383d1e79959dae59c45743547e9
2023-07-05 16:27:11 -07:00
Sunny Goyal b02dafc1d4 Removing explicit target SDK for launcher
> It will automatically target the latest SDK it was compiled with

Bug: 284349887
Test: Presubmit and manual
Flag: N/A
Change-Id: I32629b0dd710c3c04d8f70f988b7279e7cae6731
2023-06-26 10:15:14 -07:00
Sunny Goyal c80e60dc7a Making UserCache the source of truth for all user events
Bug: 243688989
Test: Presubmit
Flag: N/A
Change-Id: I0e6b853d965eff1abaeb3b26dd6b94424e5212df
2023-06-07 20:43:36 -07:00
Treehugger Robot fbc0328fec Merge "Log UserManager users and cached users each time users accessed" into udc-dev am: ffdcac46b6 am: 9b0164c832
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/23604024

Change-Id: Ib562a0157e0e1914814d83fd56b767d4cd48f2da
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-06-07 23:27:30 +00:00
Vinit Nayak 9377e56f47 Log UserManager users and cached users each time users accessed
Bug: 243688989
Change-Id: Ifa6eec39f9fc90a4871ac2ff010588c3a5cac531
2023-06-07 11:32:01 -07:00
Vinit Nayak c2545b82cc Merge "Add logs for launcher user cache" into udc-dev am: 43c79d23b3 am: d7037d07e4
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/23523872

Change-Id: I5a512981f5776174f079dca8b81fc3e3fe069a83
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-06-02 04:24:56 +00:00
Vinit Nayak 134e429189 Add logs for launcher user cache
Bug: 243688989
Flag: None
Change-Id: I6f6ea3f3326c1814c2a50863e9bfbcb7e4323ae8
2023-06-01 17:11:42 -07:00
Sunny Goyal e274d97fe5 Removing support for lagacy shortcuts
> Addition/removal of  shortcus is already removed. This just
  cleans up the unused code path

Bug: 275875209
Test: Updated tests
Flag: N/A
Change-Id: I8ab7f57b693f996920e50e8beecafcffab5167e9
2023-05-17 09:20:45 -07:00