Commit Graph

55 Commits

Author SHA1 Message Date
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
Becky Qiu 6183c4dd74 [Toast] Create one search tapl tests for opening qsb and calculator app.
Test design doc: https://docs.google.com/document/d/1aPtMvegzn4hdwC0CNuIkfkalqG7v0FNCfyoO7qIOfN4/edit?usp=sharing&resourcekey=0-71oNHp1KKOdDKxr7Vd4dGQ

Bug: 225935921
Bug: 225935929
Test: ran test in android studio
Change-Id: I74197a9d81fc75a44269ab3bc1bba910de5e17fe
2022-05-05 18:47:34 -07:00
Tracy Zhou c2538d748a Add originalView of the menu to SystemShortcut
Split from home animation needs to originate from the app icon instead of the menu item icon. This can be useful for other animations in the future.

Bug: 226395821
Test: N/A
Change-Id: If45d80e347ba275bd550b6acd6ad81b319e753a3
2022-04-11 17:13:35 -07:00
Stefan Andonian 510a818521 Show an 'Undo' snackbar when users dismiss a predicted hotseat item.
Bug: 200841778
Test: Hard-coded the flag to be true, and verified that the snack bar
is shown with the correct text. Also verified that talkback announces
"Item Removed" properly and that the correct log event is produced by
the AppEventProducer which AiAi needs to process the user action.

Change-Id: Ifbb9cf7aecf26cd4bcebf48d4fb07fb3d5af46bb
2022-04-06 17:22:40 +00:00
kholoud mohamed e210b47c20 RESTRICT AUTOMERGE Moved enteprise resource updatability to Launcher3
Bug: 217388602
Bug: 218875965
Test: atest EnterpriseResourcesTests
Test: manual
Change-Id: I095a1da30766e4b4eab33f42b034601b3322eb3d
2022-03-15 17:24:04 +00:00
TreeHugger Robot fb1e592020 Merge "Prediction icons in Taskbar were updating when dragging icon in the same place" 2022-02-08 19:54:08 +00:00
Sebastian Franco 5a6e08c3cd Prediction icons in Taskbar were updating when dragging icon in the same place
When dragging an icon in the Taskbar and dropping
it in the same spot it triggers new predictions when
it shouldn't. Basically, it was thinking that the icon
was moved outside of the taskbar which should trigger
new predictions. To fix it, it simply required to change
the order of the events, sending the UNPIN event before
the PIN event.

Bug: 202922907
Test: Have at least two prediction icons in the Taskbar, drag an app icon in the Taskbar, and drop it in the same place the prediction icon shouldn't change
Change-Id: I6079ff6eb69d7b1cb3c22bebc84511c0abd61cec
2022-02-07 19:10:55 +00:00
Thiru Ramasamy 441461c95c [OneSearch] Deprecate CorrectedDeviceSearchResultContainer with SearchAttributes.
Loggin query_corrected signal as field is more scalable than separate CorrectedDeviceSearchResultContainer for future usecases.

Test: Manual - http://gpaste/6343087535161344
Bug: 199495917
Change-Id: I6b3a410f4d977db2a058f337d1684f78763acbd2
2022-02-04 11:51:59 -08:00
kholoud mohamed c76b2035aa Allow overriding enterprise related strings in Launcher
Test: manual
Bug: 188414133
Bug: 211422509
Bug: 188410712
Change-Id: I75858cdcf2057e7c270da5893cd9a90c6753f182
2022-01-28 16:33:03 +00:00
Brian Isganitis f7c2adf861 Avoid race condition with hotseat predictions.
Make sure that the ArrayList cannot be cleared on the model thread while
it is being used on the UI thread to render a launcher preview.

Test: Manual
Fix: 210123588
Change-Id: I5a47cb3f28f5ac9e400f6ae535e410c345e14ee1
2021-12-22 01:08:46 +00:00
Thiru Ramasamy f7ebfb9a7f Log launcher settings whenever launcher layout is logged using pull atom.
* Whenever launcher setting is changed, only log the changed setting instead of all

Bug: 181703659
Test: wwdebug && wwlogcat AND statsd_testdrive 10108

Change-Id: I9c6b7a17d653038a91f885df455e5ebbb401b49a
2021-12-09 06:13:44 +00:00
Schneider Victor-tulias c817dac4cd Merge ag/16307859 into master without bug fix.
- Copied ag/16307859, with a modification to QuickstepModelDelegate#getContainer. This allows the crash from b/173838775 to continue occuring with additional debuging logs.

Bug: 173838775
Test: manual
Change-Id: Ic96a25665457c80f5c9ab45a896fada34a3a68ff
2021-11-30 12:08:23 -08:00
Schneider Victor-tulias 8664cb1261 Revert "Fix ClassCastException in QuickstepModelDelegate"
This reverts commit 380f8fd890.

Reason for revert: remove bug fix on master

Bug: 173838775
Change-Id: I3cbb3e383c52095a10b3e22ea4c586c0c3c8d7a9
2021-11-29 22:34:04 +00:00
Schneider Victor-tulias 380f8fd890 Fix ClassCastException in QuickstepModelDelegate
- Added a casting check as an immediate fix to b/173838775
- Added logging to help debug the corrupt state where an item of type other than FolderInfo is used as an other item's container.
- Added LoaderMemoryLogger for adding large logs that are only conditionally printed.

Bug: 173838775
Test: manually checked logs
Change-Id: I9491cb421b9fb807d5fb110b04ad069481de768f
2021-11-24 14:26:45 -08:00
Hyunyoung Song 1e5b621a50 Address AppEventProducer to correctly send search-result location on AppTargetEvent
Bug: 191362091
Test: logcat printout

11-10 20:27:02.290 32215 32237 D QuickstepModelDelegate: notifyAppTargetEvent action=1launchLocation=search-results

Change-Id: I16ef7679116e397a8a108cc291f5741febf2e453
2021-11-11 21:27:01 -08:00
bquezada e12b321d5f Change AppTargetId for launcher events to align with other AppTargetId's.
Bug: 202535375
Test: Manual
Change-Id: I0c28f7f64935fdaf08edb7781e4e7378a068e8e6
2021-10-28 17:52:02 +00:00
Alina Zaidi 29c3f23be5 Merge "Send widget added and removed events to AiAi." into sc-v2-dev 2021-10-28 16:45:22 +00:00
TreeHugger Robot 3bd6b8bf81 Merge "Make sure distinct widgets items are used when mapping widget component names to widget items." into sc-v2-dev 2021-10-26 18:01:48 +00:00
Alina Zaidi 987221a1cc Send widget added and removed events to AiAi.
-Pass the widgets on workspace as an extra List<AppTargetEvents> while
 creating prediction session.
-Notify the session about widget added/removed events after creation.

Bug: 186648032
Test: Manually checked events are received
Change-Id: I4de6c011a1e24c129a3e995ddba16bfc55074939
2021-10-26 12:29:48 +01:00
Alina Zaidi fa37c6742e Make sure distinct widgets items are used when mapping widget component
names to widget items.

This is to prevent a crash on duplicate key when creating map.

Bug: 204065759
Test: Enabled flag and got no crash
Change-Id: Ice9f93af76c02eeba53c934687358ed806c60b60
2021-10-25 16:10:45 +01:00
Schneider Victor-tulias 16e04e29d2 Generalize the icon popup menu types.
Generalized popup menu types and logic to allow wider uses outside of launcher.

Bug: 198438631
Test: long pressed launcher icons and pressed menu options
Change-Id: Iadcbb1796496c0061dcee362784e426ff55dc94a
2021-10-19 16:06:16 -07:00
Sunny Goyal 1b6d43b13e Sending Launcher resume event to app predictor
Bug: 202535375
Test: Manual
Change-Id: I1618a5ed973b9d4f898442647e3e197ed4935aa4
2021-10-08 16:21:56 -07:00
Thiru Ramasamy d495e8c8b4 Implement LauncherLayoutSnapshot pulled atom callback.
This change will pull only the workspace items but not the launcher settings such as grid layout etc. Future CLs will address it.

Bug: 181703659
Test: Manual-`statsd_testdrive 10108` http://gpaste/4894958784872448
Change-Id: I0e7d7da62034c411edb26ff9205a81b0e2e891a0
2021-09-10 13:29:27 -07:00
Sunny Goyal 6e6f79933e Do not reload launcher when changing active display
> Updating IDP to use fixed bitmap sizes, so that the cache
  stays valid
> Caching last known windowMetrices for non-active displays and
  using estimation only when the cache is not available
> Only reloading model if IDP change could have affected the model
> Remove unnecessary listeners from IDP which are already controlled by
  model lifecycle

Bug: 191657065
Test: Manual
Change-Id: Ia8e6dfafd0977e62aa3fcf367ad79f7a49b2df51
2021-08-26 15:55:21 -07:00
Yogisha Dixit 658c5dafd4 Log widgets source.
Test: manual
(1) Upgrading to new DB version is successful (no errors thrown in logcat)
(2) Widgets that were added with the old DB version have CONTAINER_UNKNOWN as their source container
(3) Widgets that are added with the new DB version still log source container after reboot
Bug: 185778648
Change-Id: Iaa38f0be6bc4cb0d29842f9a2ea0d08de000c930
2021-06-30 17:48:14 +00:00
vadimt 6fad078a31 Adding more diags for WellbeingModel
Test: presubmit
Bug: 189139513
Change-Id: Ic52ef42d2cd0a3f19f55aee048911526dd8c732f
2021-05-24 16:42:07 -07:00
Sunny Goyal b47172bc4e Linking various settings that control icon cache to icon state
Also separating icon provider for recents from Launcher as it used a fixed size

Bug: 183641907
Test: Verified on device
Change-Id: I6ea3caa0066d1483bfb8a81f0e8aaa472c813afe
2021-05-05 23:05:38 -07:00
Sunny Goyal c52c0782a7 Merge "Adding support for determining split layout for launcher." into sc-dev 2021-05-04 22:33:38 +00:00
Sunny Goyal 19ff728b92 Adding support for determining split layout for launcher.
> Simulating the windo wmanager API to get available device
  profiles until final API
> When a device has multiple internal displays, and with both
  tablet and phone possibilities, it uses a split workspace layout

Bug: 186160341
Bug: 175782275
Test: Manual
Change-Id: Ieff2329acac7cdd6b9abe6f96cd459cd45bd0efe
2021-05-03 14:48:28 -07:00
Steven Ng 84298b3998 Add a flag to enable custom local filter for recommended widgets
Test: Run WidgetsPredictionUpdateTaskTest
Bug: 186648032
Change-Id: I2bd5e2c81f971e0a40a4b05c8cab2a7adb171f96
2021-04-28 18:47:33 +01:00
Tony Wickham b87f3cdc1c Add support for having more hotseat icons in the DB than we show
Split InvariantDeviceProfile#numHotseatIcons into two variables:
numDatabaseHotseatIcons and numShownHotseatIcons. These are generally
the same, but different DisplayOptions within the same GridOption
can choose to show different numbers of hotseat icons while sharing
the same database.

numDatabaseHotseatIcons is used for all reading/writing/migrating
purposes, while numShownHotseatIcons determines how many Hotseat
icons to show in the UI.

Test: Existing tests pass, added two new migration tests
Bug: 184789479
Bug: 171917176

Change-Id: I54583504f61a47a4444b6a637ebb7e3ab31528b7
2021-04-12 16:08:15 -07:00
Steven Ng 05df2843ee Increase the number of prediction for widgets model
Test: launch all widgets tray and observes widgets predicted.

Bug: 179797520
Change-Id: Id231cde5015a2a79b7532a39343b3340c27e09c9
2021-03-22 20:22:42 +00:00
Samuel Fufa 45c16f7392 [Hotseat] Fix badging for shortcut predictions in hotseat
This change also sends shortcutInfo corresponding to AppTargetEvent

Screenshot: https://screenshot.googleplex.com/7nN7mNEuMCLkKbY
Bug: 159500320
Test: Manual
Change-Id: I9c31d7208510c5362039868ae41d098c9eb1e2dd
2021-03-16 15:49:16 -05:00
Steven Ng 3a8353256a Widgets recommendation backend
Add a widgets recommendation mechanism based on AiAI app predication
ranking with the following changes:

1. Only one widget is picked from one app.
2. Widgets that are already added to the workspace are excluded from
   the recommendation.

Test: run PredicationUpdateTaskTest

Bug: 179797520
Change-Id: Ia697bc6df0bae75969e68b7b3de32d57901f7461
2021-03-08 23:37:51 +00:00
thiruram 97710ffbb2 [AA+] Log additional UI events with Launcher snapshot logging.
Bug: 180418845
Test: Manual
Change-Id: I74ab1faafe6c21a8fbf6992a8aebe918cc31d85e
2021-02-23 02:59:43 +00:00
Andy Wickham 19ab177d1b Adds CONTAINER_QSB to be used for QSB data.
Also updates some related generics definitions for
better/simpler compile-time checks.

Bug: 178536734
Test: Manual
Change-Id: If439b64ad968f62674f856fd3ff465bf21cc9204
2021-02-11 22:16:24 -08:00
Sunny Goyal b694a69f53 Integrating snapshot logging in Launcher
> Workspace snapshot is logged when the workspace loads (at most once a day)
> Removing unnecessary thread jumping when logging folders
> Preference snapshot is logged on process start and whenever something changes

Change-Id: I93767de89b11522d843c0e8300d1f108c78f6d90
2020-10-27 11:25:43 -07:00
Samuel Fufa d5bbe6809d Rename shrotcut container to deep-shrotcuts
Change-Id: If94f0dfa447235f3b1a652f7b6c749695b42d97c
2020-10-14 15:39:38 -07:00
TreeHugger Robot 057f2d0d7d Merge "Introduce shortcut container for hotseat event reporting" into ub-launcher3-master 2020-10-13 01:57:47 +00:00
Samuel Fufa 9a6145efb8 Introduce shortcut container for hotseat event reporting
Bug: 170636685
Test: Manual
Change-Id: I5abeb17976bbafdc8cc74fb8b9a586d544c682fc
2020-10-12 09:33:00 -07:00
Yogisha Dixit 2de606fe73 Delete the minimal database to force refresh.
Bug: 169771796
Test: manual
Change-Id: Ic2188bb162f295c208346861fddc137ace19ddcb
2020-10-12 15:36:07 +01:00
Sunny Goyal 733e3c609b Moving some initializations to the background thread
HandlerThread.getLooper blocks until the thread is ready. Instead
moving all looper dependency to the new thread itself.

Change-Id: I240e8c56b855a991433a7fe93875059e6dab146b
2020-10-02 10:58:27 -07:00
Pinyao Ting 28633e9985 Fix the issue Launcher is calling minimal device endpoint on UI thread
Test: manual
Change-Id: I72b12da43520d775bfd652a3b10406440f7cf64f
2020-09-20 05:27:21 +00:00
TreeHugger Robot 3cc22175e9 Merge "Moving hotseat predictions to ModelDelegate" into ub-launcher3-master 2020-08-24 18:42:01 +00:00
Pinyao Ting 840ad8e8bb Minimal Phone Mode (part-3) am: 96186aff87
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/12219772

Change-Id: I27cb81fdb6cc1a5535aec3b259acda16106e084f
2020-08-20 02:03:17 +00:00
Pinyao Ting 96186aff87 Minimal Phone Mode (part-3)
Introduces a separate database for minimal device mode.

When minimal device mode is enabled/disabled:
1. WellbeingModel receives onChange event from ContentObserver
2. WellbeingModel called DWB's ContentProvider for latest state in
minimal device mode
3. Based on the state, WellbeingModel calls LauncherProvider to put
launcher into normal/minimal mode.
4. When going from normal -> minimal, Launcher switches to a different
database, namely minimal.db, then proceed to database initialization.
5. If the database hasn't been initialized yet, Launcher will call
ContentResolver#openInputStream with following uri:
content://com.google.android.apps.wellbeing.api/launcher_layout
to get the default layout xml.
6. The default layout is then saved in database, and the database is
considered initialized and doesn't need to go through step 5 again in
the future.
7. In case of minimal -> normal, Launcher switches back to its original
database (e.g. launcher.db if the grid size is 5x5), then reload launcher.

Bug: 161462256
Change-Id: I6bafa66440da23281f63454b698ea56b15960022
2020-08-19 14:58:20 -07:00
Sunny Goyal 0fc3d1275a Moving hotseat predictions to ModelDelegate
Bug: 160748731

Change-Id: I8db7856a17e0b6ca45b4d5ec3513f788f22db11a
2020-08-17 08:43:07 -07:00
Sunny Goyal 5fb83a47f2 Removing icon recents version
Change-Id: Ibdc88715e38590cedf8a7b5174061bb2c6ef9533
2020-08-14 10:49:19 -07:00
Pinyao Ting 553d4dfe7d Minimal Phone Mode (part-2)
Integrate with ContentProvider from Digital Wellbeing

Change-Id: Ie1fbb706e767ac5d760d686af88a9a0adf162418
2020-07-30 22:07:20 +00:00
vadimt bd7ee7366d Checking for success of interactions with Wellbeing
Bug: 157589968
Change-Id: I9a5cc6341c0133ae5e31c47b6bd89f80e15c9099
2020-06-01 14:03:43 -07:00