Commit Graph

663 Commits

Author SHA1 Message Date
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
Stefan Andonian e82476ad3b Rename LoaderResults to LauncherBinder.
LoaderResults implies a data object, not binding code specific to
Launcher UX containers. This CL merely renames this class and its
usages. It also adds a comment that explains why the functionality is
split into a base class and an implementing class.

Bug: 251502424
Test: Compilation worked correctly.
Change-Id: I01b5ac2f717e9b20612538d5c1e0ca947beb593f
2023-01-11 20:32:25 +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
Sunny Goyal 9ce4382b34 Removing some unused container IDs
Bug: 260012466
Test: Presubmit
Change-Id: I3d6cff0e5b31928ba8e27ac02c0d1f63156d1bfb
2022-12-16 13:02:48 -08:00
TreeHugger Robot 33c348f573 Merge "Make grid size migration less confusing for users." into tm-qpr-dev 2022-12-05 18:19:59 +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
Sunny Goyal 9a616213e1 Removing SearchActionItemInfo
> Instead introducing an interface for handling click events
> Linking this interface to other UI which handle clicks

Bug: 259733681
Test: Presubmit and verified manually
Change-Id: I9cbf2d009d64254f513deb909a151e46e860d039
2022-11-30 10:59:07 -08: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
TreeHugger Robot 3a801de233 Merge "Fix ConcurrentModificationExceptions during binding." into tm-qpr-dev 2022-11-18 01:44:01 +00:00
Stefan Andonian a04de842d1 Fix ConcurrentModificationExceptions during binding.
The same lists of extra items stored in BgModelData are also stored in
UI components. This is causing ConcurrentModificationExceptions. The
solution is to clone these lists or mark them as immutable before storing
them in their respective components.

Bug: 206918543
Test: Verified that crash no longer occurs after fix.
Change-Id: I571a2c451af58137aa7513b372b6a8ecf9bd3ff6
2022-11-17 20:46:51 +00:00
Stefan Andonian 146701ca3e Move SharedPreferences code to its own class.
Bug: 251502424
Test: Code compiled correctly.
Change-Id: Iea0d6ab2999504117546ee0f7adc0c7b8b45c065
2022-11-17 17:22:47 +00:00
TreeHugger Robot 698239e16a Merge "Revert "Introducing new variable to enable/disable shortcuts."" into tm-qpr-dev 2022-11-17 11:28:05 +00:00
TreeHugger Robot 3ea398ecb7 Merge "Cleaning Utilities.java" into tm-qpr-dev 2022-11-17 02:39:38 +00:00
Sunny Goyal 47d4d81b4f Cleaning Utilities.java
> Removing some unused methods
> Moving some specialized methods to corresponding classes
> Removing GridProvider check as it is released

Bug: 257555083
Test: Presubmit
Change-Id: Ib0f8c673d018071d3f4b7d9247e0a35718ab009c
Merged-In: Ib0f8c673d018071d3f4b7d9247e0a35718ab009c
2022-11-17 01:06:16 +00:00
Sihua Ma 8bbfcb6581 Move LauncherWidgetHolder to widget package
Making LauncherAppWidgetHost package-private as well

Bug: 235358918
Test: N/A
Change-Id: If022ec8d429579a972991872b2dc11db76719341
2022-11-16 14:31:14 -08:00
Sihua Ma 0593a0d3ec Created LauncherWidgetHolder as a wrapper for LauncherAppWidgetHost
The wrapper class is created for further changes that will run the wrapped host in the background.

Test: N/A
Bug: 235358918
Change-Id: I9bd6fc2749c5d4a4d3391fb75d0c3ff1e13d17bf
2022-10-26 10:57:13 -07:00
Pat Manning 5889bc3729 Add launcher metrics for tracking kids nav mode change events.
Fix: 241762670
Test: wwdebug && wwlogcat
Change-Id: I24432f2cd0dddbcc5991645b60a1a8e91dc431e5
2022-10-17 14:06:38 +01:00
Ats Jenk 3c59d9b345 Desktop tile that is a snapshot of desktop
Create a desktop recents tile that shows a snapshot of the freeform
tasks running on desktop.
Scales them down and positions them in the same location as they would
be on the desktop.

Bug: 244348395
Test: manual
Change-Id: Ieb5830a331691844769003189f557c4b7e4cd35c
2022-10-10 15:50:31 -07:00
Raj Garg 4b90dbe967 Revert "Introducing new variable to enable/disable shortcuts."
Revert "Introducing new variable to enable/disable shortcuts."

Revert submission 19632697-cherrypick-GO-DISABLE-SHORTCUTS-tyyzrpy9oe

Reason for revert: Reverting changes for the recent feature built by me. This CL was a part of the feature. Please take a call if we should revert it or not.
Reverted Changes:
Ib373b042f:Introducing new variable to enable/disable shortcu...
I4274cb468:Introducing new variable to enable/disable shortcu...

Change-Id: I81f338be71185cb008e81b020c5b3a7b01b64c58
2022-09-23 17:04:29 +00:00
Sihua Ma 8e66905618 Merge "Showing Toast message when the target package is null for the disabled shortcut" into tm-qpr-dev 2022-09-19 23:20:12 +00: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
Sebastián Franco b64894b095 Merge "Adding specific case for applications in getEntryMigrationId" into tm-qpr-dev 2022-09-09 21:50:52 +00:00
Raj Garg 2e106277d7 Merge "Introducing new variable to enable/disable shortcuts." into tm-qpr-dev 2022-09-09 03:41:47 +00:00
Sebastian Franco b0ac461e06 Adding specific case for applications in getEntryMigrationId
A string like this are sued as id when migrating the grid:

The problem is that sourceBounds can chagne for the same app
and then return the same app as different. To fix it I added
a new case for Aplications and remove the variable sourceBounds
for the default case if there is anotherr Favorites item that
has the same problem but we don't know.

Test: Manually migrated between different grids.
Fix: 232004084
Change-Id: Ida015c971c70c8de2915fca1ebc38f446c21a310
2022-09-08 17:10:53 -07:00
Pinyao Ting 96d3c589ef Explicit Nullbility in Launcher (Part 3)
This CL updates the nullabality on ItemInfo related classes.

Bug: 242895652
Test: manual
Change-Id: I5fa17a17ff876486431f48d750abdc31afbc56a0
2022-09-08 09:36:00 -07: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
Sunny Goyal 211496e3d8 Merge "Removing some obsolete features" into tm-qpr-dev 2022-08-22 20:27:45 +00:00
Raj Garg 63ee5d0908 Introducing new variable to enable/disable shortcuts.
Widgets and shortcuts are two different entities but they are controlled
by same variable GO_DISABLE_WIDGETS. In this CL I have introduced a new
variable GO_DISABLE_SHORTCUTS to enable/disable widgets.

Test: Tested manually on device.
Bug: 236268654
Change-Id: Ib373b042fbfd0493e6345ef10e5631dbfd96b8c3
2022-08-16 09:18:23 +00:00
Sunny Goyal c5c7da9a8b Removing some obsolete features
PROMISE_APPS_NEW_INSTALLS = true
ENABLE_QUICKSTEP_WIDGET_APP_START = true
FOLDER_NAME_SUGGEST = true
ENABLE_PREDICTION_DISMISS = true
HOTSEAT_MIGRATE_TO_FOLDER = false
ENABLE_DEEP_SHORTCUT_ICON_CACHE = true
ENABLE_THEMED_ICONS = true
ENABLE_ALL_APPS_EDU = true
EXPANDED_SMARTSPACE = false

Bug: 241141733
Test: Presubmit
Change-Id: I72c0c20ab7e214994dc3c3665c90e85d45991a7a
2022-08-02 13:38:38 -07:00
Sihua Ma 1d8b7cba31 Showing Toast message when the target package is null for the disabled shortcut
The shortcut for a certain set of apps could have their component names set to null. In this case, if we still need the package name for the shortcut, we should use the package name from the intent, which is accomplished in getTargetPackage. Additionally, if the target package is still null, we are falling back to showing the Toast messages only.

Fix: 239685630
Test: Verified that the crash no longer happens after clicking on grayed out shortcuts
Change-Id: I4de68ea1a227032e16e5c00407f75159a7aba30f
2022-08-02 11:17:29 -07: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
vadimt f6ef879cf4 Moving all sources that are shared between Launcher and TAPL in one directory
This will help SysUI test team (who uses TAPL) to set up Gradle build for their tests.

Bug: 202567877, 234414088
Test: presubmit
Change-Id: I3d923ea4b54d1a4c3d2b345be09692727d30433e
2022-07-27 20:18:46 +00:00
Sunny Goyal 412f0d26fa Fixing icon label not updated during bulk load
The label was being updated to default in Loader cursor
which prevented eventual final update of the label

Bug: 220645719
Test: Verified on device
Change-Id: I2559804eb885663387bd1f5afe9e3337130a9fe3
2022-07-25 17:24:34 +00: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
Alex Chau 0adc36623d Clean up DisplayController logs
- Moved debug logs under DEBUG flag which defaults to false
- Moved info+ logs to permanent log tags

Fix: 198965093
Test: manual
Change-Id: Iea99f053da08e921542a8f532a9837997e10de5e
2022-07-04 13:13:44 +01:00
Alex Chau 49dcd16b26 Only check dbFile to decide if grid migration is needed
Fix: 234847755
Test: With a modified local build, when changing display config to swap between same grid:
- When dbFile is same but device type is different, no migration is performed
- When both dbFile and device type are different, migration is performed properly
Test: Grid migration through Wallpaper & Styles still works properly

Change-Id: Ie7429a7d59c135ba47061cae21c40b8d8af7188a
2022-06-21 12:36:50 +00:00
TreeHugger Robot 03b821a8f2 Merge "Fixing ConcurrentModificationException in FirstScreenBroadcast" into tm-dev am: 69149d07ff am: 0210441e55
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/18580078

Change-Id: Ia134caf82253fa4d00e5dba1d7a6ff4488c5f467
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2022-05-24 20:56:35 +00:00
Sunny Goyal 425bfa320f Fixing ConcurrentModificationException in FirstScreenBroadcast
Bug: 232333237
Test: Not sure, unable to reproduce
Change-Id: I3eeabf76c14651d2fb64c82955851efa883760ce
2022-05-24 09:17:39 -07:00
Sebastián Franco ce213d3306 Merge "Widget migration now supports widgets and repeated elements in the worskpace." into tm-qpr-dev 2022-05-18 23:27:24 +00:00
Sebastian Franco 08788a939b Widget migration now supports widgets and repeated elements in the worskpace.
The widget migration was using the variable DbEntry.mIntent as an
id for calculating the difference between two workspaces but widgets
don't have that variable, it's always null. So that had created some
bugs.

Also, the function GridSizeMigrationTaskV2.calcDiff didn't accounted for
repeated icons or repeated widgets. It's not a big deal not account
for repeated icons, but repeated widgets can be usefull for the user,
so now calcDiff keeps repeated icons and widgets.

Fix: 229701468
Test: Add multiple icons and widgets in the workspace and change the
grid size, this code only runs after the first time you change the
grid size, so try a couple of times. It should keep the widgets and
icons, even if they are repeated.

Change-Id: I5812445cec8364d8cc57cbcc3f1ae04ba9099932
2022-05-18 17:10:11 +00: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 3c354421c8 Extra checks to find the source of flaky tests
Bug: 200572078
Test: Presubmit
Change-Id: Ie927f476e3a2c1b5aee84e33bf510bb635e59071
2022-05-13 09:02:02 -07:00
Sunny Goyal f0ff70a2a5 Adding support for easily extending Launcher DragAndDrop support
Bug: 232165524
Test: Verified locally
Change-Id: I3b4f37bc9914de55330662edd678e6fdd0eafece
2022-05-11 21:34:08 +00:00
Kholoud Mohamed 0e2b622014 Merge "update enterprise strings on ACTION_DEVICE_POLICY_RESOURCE_UPDATED" into tm-dev 2022-05-09 14:57:40 +00:00
kholoud mohamed d5a4d60483 update enterprise strings on ACTION_DEVICE_POLICY_RESOURCE_UPDATED
Also updated work folder name provider to retrieve it from dpm

Bug: 218322904
Test: manual
Change-Id: Id80a9e90806f3a07f132b5cc1e9871bb35df42b0
2022-05-09 10:01:10 +01:00
Alex Chau 664c1c18e7 Sort hotseat items in migration to preserve position
Fix: 231601760
Test: manual with local backup/restore
Change-Id: Ie89f0134485296c3cd252cf6b86bb3f88a0f90de
2022-05-06 15:47:11 +01: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
Shikha Malhotra 2e255ed0ac Merge "Refactor code to be used in LauncherLily features" into tm-dev 2022-04-21 07:50:32 +00:00
Shikha Malhotra e957b600d3 Refactor code to be used in LauncherLily features
Refactor add to workspace code to be used in Lily Launcher.
Also utilising code swap feature to swap out functionality of sorting
items on workspaces and finding next vacant space.

Bug: b/218186705
Test: Manually tested Launcher3 works.
Change-Id: I42a44eabeb307e1d23ef333e0a169437f9062bb6
2022-04-20 07:22:20 +00:00
Sunny Goyal 645af0a6b3 Revert "fix broken build on erorrprone"
Revert submission 17730702-fixErrorProneBuild

Reason for revert: Breaks Launcher3 unbundled build by using hidden library in main Launcher code
Reverted Changes:
Id0ce4d308:Change version checks to use SdkLevel.isAtLeast*
I8fc801b00:fix broken build on erorrprone

Change-Id: Ib1cd50a746bad3b6fb9fbd455a7cdce30f341d8b
2022-04-14 16:54:07 -07:00