Commit Graph

98 Commits

Author SHA1 Message Date
Stefan Andonian 86d3c8814b Use ItemInfo with correct position when adding to Workspace via Accessibility.
Bug: 332651703
Flag: NA
Test: Verified that the issue isn't reproducible with the fix. The issue
was 100% reproducible before.
Change-Id: I01207396e19b4f7d14d6a147e5e5fb98bae9ea99

Change-Id: I81aad9758ee33b8acc2d6a1242e54f2a47124374
2024-04-19 16:22:39 +00:00
Willie Koomson 7d2d6ced25 Fix resize frame for widgets added with tap-to-add button
This change updates the tap-to-add code to wait for the animations
between each step (close widget sheet, snap to Workspace page)
to finish before continuing with the next step of the flow.

Bug: 331425905
Bug: 331699050
Test: manual
Flag: ACONFIG com.android.launcher3.enable_widget_tap_to_add TEAMFOOD
Change-Id: I774b86b429cd2e8a397e5605243056e6cea666b3
2024-04-05 22:03:37 +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
Vinit Nayak 5afb093a58 Merge "Add CUJ Jank interactions for App Pair saving and launching" into main 2024-03-20 20:31:01 +00:00
Willie Koomson a55f214d71 Set initial bind options for widgets added with tap-to-add
Calls PendingAddWidgetInfo.getDefaultSizeOptions to set the bind options
for widgets added with tap-to-add.

Bug: 323886237
Test: manual, place Drive/Gmail widget and confirm correct initial size
Flag: ACONFIG com.android.launcher3.enable_widget_tap_to_add DEVELOPMENT
Change-Id: Ib0143e3ff49b62d6394d6ca362d89b0ea9773e5f
2024-03-20 00:24:19 +00:00
Vinit Nayak 422a634a24 Add CUJ Jank interactions for App Pair saving and launching
* Added finishCallback consumer to LauncherAccessibilityDelegate
to inform when adding an item to workspace was completed.
* The logic seemed to be dependent on the parameter
"focusForAccessibility", but all callers of that are currently
passing in true

Bug: 328646540
Test: https://paste.googleplex.com/6232597136408576
Newly added CUJs showing up when playing w/ device

Change-Id: Ia4944f8d23634bb92296938ea2d07a6babf6f77c
2024-03-18 16:27:47 -07:00
Liana Kazanova 7d5531757b Merge "Revert "Add CUJ Jank interactions for App Pair saving and launching"" into main 2024-03-18 18:39:20 +00:00
Charlie Anderson d62a9f1a6a Merge "Asynchronously call snapToPage so Talkback correctly scrolls to added widget" into main 2024-03-18 18:37:08 +00:00
Liana Kazanova d8d4fb4375 Revert "Add CUJ Jank interactions for App Pair saving and launching"
Revert submission 26567492-appPairsCUJ

Reason for revert: http://b/330185095

Reverted changes: /q/submissionid:26567492-appPairsCUJ

Change-Id: I73d29fe3618a55622e0daa22c9960e3c5783c275
2024-03-18 18:35:02 +00:00
Charlie Anderson fbf41783fc Asynchronously call snapToPage so Talkback correctly scrolls to added widget
Bug: 326269165
Test: locally tested via Talkback
Flag: N/A

Change-Id: I2be6e9758617e4eca18b3ea1ebed8189145c4108
2024-03-18 16:41:53 +00:00
Vinit Nayak 7ce42078da Add CUJ Jank interactions for App Pair saving and launching
* Added finishCallback consumer to LauncherAccessibilityDelegate
to inform when adding an item to workspace was completed.
* The logic seemed to be dependent on the parameter
"focusForAccessibility", but all callers of that are currently
passing in true

Bug: 328646540
Test: https://paste.googleplex.com/6232597136408576
Newly added CUJs showing up when playing w/ device

Change-Id: I5dce4b7e83fb17cc3a70565bfd5ce100a4cf72bb
2024-03-15 14:10:36 -07:00
Sunny Goyal 72a74669e7 Adding support for async view inflation
Bug: 318539160
Test: atest AsyncBindingTest; atest ItemInflaterTest
Flag: aconfig enable_workspace_inflation DEVELOPMENT
Change-Id: I77a373db7a5805f68f4b8cbfa9b586b5674252de
2024-02-22 10:58:48 -08:00
Jeremy Sim c8ab1c7081 Snap to saved app pair
This CL makes it so that LauncherAccessibilityDelegate properly calls snapToPage() when saving a new app pair.

Fixes: 322758994
Test: Manual
Flag: ACONFIG com.android.wm.shell.enable_app_pairs TEAMFOOD
Change-Id: I9b571989761c36ce1c1de1e1eec6a4f559cb6428
2024-02-04 02:22:50 -08:00
Sunny Goyal eb5684ce1e Splitting bindItems method to also accept already inflated views
which will eventually allow us to inflate icons on the background thread

Bug: 318539160
Test: Presubmit
Flag: None
Change-Id: I61e4981c1c3201e92102153d9558a0885637da3a
2024-01-30 00:44:26 -08: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
Sunny Goyal e0c1649d87 Cleaning up some unused notifications functionality
Bug: 321154530
Test: Presubmit
Flag: N/A
Change-Id: I1ff2a4f19595659d89e7d72ee1b29036bbd54d8f
2024-01-19 00:21:02 -08:00
Holly Sun 40df2fc8d8 [a11y] Add FLAG_NOT_PINNABLE and modify supportAddToWorkSpace.
// play uninstalled app
Bug: 286998395
Bug: 287156208
Bug: 287157282
// contact
Bug: 287362865
Bug: 287370843
Bug: 287372663
// clock
Bug: 287166186
Bug: 287166771
Bug: 287167527
Test: manual
Flag: N/A

Change-Id: I859deba6218e232a232f009793044ca4be2cab19
2023-06-22 16:39:05 -07:00
Jeremy Sim 7cf0dd9e03 App Pairs (behind flag): Add new ItemInfo types and DB save functionality
This is the second of several patches implementing the App Pairs feature behind a flag.

This patch includes:
- AppPairsController, a new controller that will handle creation, launching, and deletion of app pairs
- ITEM_TYPE_APP_PAIR is a new type of FolderInfo (FolderInfo now can be either a folder or an app pair, and should probably be renamed to CollectionInfo or something more generic in future)
- Necessary plumbing for these new types
- Database code that handles saving a new app pair to the database with the correct schema

Flag: ENABLE_APP_PAIRS (set to false)
Bug: 274189428
Test: Not included in this CL, but will follow
Change-Id: Ie3aefd4eb9171f471789f54876de742849d3013b
2023-04-21 14:23:54 -07:00
Jeremy Sim 8eed87ac89 Fix bug where Taskbar was not auto-hiding after splitscreen launch from icon menu
This patch fixes a bug where the transient Taskbar was not hiding properly after splitscreen was initiated. When the user is inside an app and launches splitscreen by longpressing on a Taskbar icon and selecting the split button, the transient Taskbar should hide right away. This is an equivalent action to dragging the Taskbar icon up to create a split, and should hide the Taskbar so that other UI elements (like system-level toasts and error messages) can be seen.

The bug occurred because updateAndAnimateTransientTaskbar() is not being called in this specific code path to stash the Taskbar.

Fixed by adding a new call to updateAndAnimateTransientTaskbar upon clicking the splitscreen menu button.

Fixes: 272292897
Test: Manual
Change-Id: I64a9acfc41ddcaba4d9f43eb216458de44b4c9a4
2023-03-21 14:35:36 -07:00
Sebastian Franco 877088e6c3 Change the access of cellX/Y of CellLayoutLayoutParams to private
Bug: 188081026
Test: no op change, should compile
Test: ReorderWidgets
Change-Id: I20367974e5a4cead406e18eb66dafd4d59651b2a
Merged-In: I20367974e5a4cead406e18eb66dafd4d59651b2a
2023-01-13 18:25:10 +00:00
Sihua Ma 7a382f139d Making talkback focus on the widget after the resize
Fix: 216386890
Test: Manual
Change-Id: I79b0280c0f24a81be44e1578755ed90cf3343f88
2022-11-14 13:12:44 -08:00
Sebastian Franco d468299c0f Moving the class LayoutParams to a file outside CellLayout
I'm moving the LayoutParams to another file to start the decoupling
of the Reorder outside of the CellLayout.

Also, I change the name from LayoutParams to LauncherLayoutParams to prevent confusion with ViewGroup.LayoutParams making it explicit that this are different LayoutParams.

Bug: 188081026
Test: atest ReorderWidget
Change-Id: I92251c5540ffcf5ece7b933e6f6c836eb825c997
2022-10-12 16:14:42 +00:00
Alex Chau 158caf466c Only setup SecondaryDropTarget in onDragStart
- In LauncherAccessibilityDelegate.getsupportedActions, it calls supportsAccessibilityDrop on each button regardless if DropTargetBar is visible or not. SecondaryDropTarget.supportsAccessibilityDrop attempts to setupUi which causes measure/layout of DropTargetBar (as well as DragLayer) each time LauncherAccessibilityDelegate.getsupportedActions is called
- To avoid this, only setupUi in onDragStart. In other cases don't call setUi.
- Also fixed a bug that when accessibility is on, upon dragging a suggested app, the secondary action suddenly changed to Uninstall

Fix: 233383721
Test: Enable accessibility, observe no excessive amount of onLayout is called on DropTargetBar
Change-Id: I4d1a00d320cceed81fa1312b5fc5f1081637bea8
2022-05-25 11:04:42 +00: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
Shikha Malhotra fefafe5aa9 Putting back generics for Workspace
This got over-written in merging files

Bug: b/218186705
Test: Manually tested Launcher3 works.
Change-Id: I55287e110d067a338204924337091ead044b34ec
2022-04-14 15:35:33 +00:00
Shikha Malhotra f78da1bae3 Review comments followup
These are review comments followup from ag/17399997

Bug: b/218187058
Test: manually test thet Launcher3 features work correctly
Change-Id: I9865a37c1ed663370dc28e7678994f3d961e3cd1
2022-04-12 14:33:07 +00:00
Schneider Victor-tulias bdb0dd8cfb Refactor LauncherAccessibilityDelegate so it can be used outside of Launcher
Bug: 198438631
Test: used talkback on launcher
Change-Id: I991320184ad93816c4ba21fb8fcfe12202bfae25
2021-11-23 12:48:14 -08:00
sfufa@google.com 6a12ec34fb Support Accessibility workspace addition for WorkspaceItemInfo
Bug: 192678946
Test: Manual using TalkBack
Change-Id: I1d0d06ccac934eb80dba7670e93ec631c12e5074
2021-09-20 01:15:08 -07:00
Andras Kloczl 408a54f2e7 Add two extra empty pages on two panel launcher home
Add a new screen ID for the second extra empty page
and add that new screen as well when the existing
extra empty page is added so that users can put items
on both sides of Workspace.

Test: manual
Bug: 196376162
Change-Id: I0b4f2e818407a10d8a7c032788a7bd7a61267779
2021-09-05 22:03:07 +01:00
Alex Chau 1e4484669d Remove widget panel
- Remove all usage of LEFT_PANEL_ID and fixed left panel code
- For preview renderer, load screen 0 + screen 1 instead
- Added a split display specific default workspace layout, with a placeholder app to pass test before we implement page pairing(b/196376162)
- Known issue: If screenId 1 is deleted, right panel will disappear from Wallpaepr & Style because there is no screenId 1. Will be resovled after page pairing(b/196376162)

Bug: 175939730
Test: manual and TaplTestsLauncher3#testWorkSpace
Change-Id: Icac1c94165c14a49c17897c45355b6cdc4d87e91
2021-08-13 21:48:35 +01:00
Andras Kloczl e32e8641d6 Fix Workspace item move issues when using Talkback
- fix the crash when an item was moved onto the right panel
- fix the issue that prevented the user from moving an item from the left panel

Test: manual
Bug: 194903736
Change-Id: Ib41f5d6d08e8815a52631ef952d32dcf899455e2
2021-08-04 11:04:19 +02:00
Steven Ng 22b6039270 Exact widget sizes functionalities into an utility class
Test: resize widget, move widget, add widget.
Bug: 189975670
Change-Id: Ia0bc2297891e1cfa33697e985064db5d1dcdfc8b
2021-06-08 11:42:48 +01:00
Sunny Goyal 01b32466c3 Revert "Revert "Exposing AnimatorListeners in StateManager to receive both success and failure callback""
This reverts commit d7f11d5fb9.

Reason for revert: Fixed initial error
Bug: 185554764

Change-Id: I32cc49f9b3820166736ceb347f33577939aa6efa
2021-05-13 10:23:35 -07:00
Winson Chung d7f11d5fb9 Revert "Exposing AnimatorListeners in StateManager to receive both success and failure callback"
This reverts commit a75f576890.

Reason for revert: b/187887269
Bug: 187887269

Change-Id: I8a56ff7054e71cf30b113fdaa213397dae0c53cb
2021-05-12 21:25:22 +00:00
Sunny Goyal a75f576890 Exposing AnimatorListeners in StateManager to receive both success and failure callback
Updating various callers to use onSuccess or onEnd appropriately

Test: Manual
Bug: 185554764
Change-Id: I357dd1fdbe111e7a30d4c8dee520fbd7d9956b7d
2021-05-11 13:53:14 -07:00
Schneider Victor-tulias 68706ebe5a Focus on newly-added workspace items for accessibility.
Fixes: 177972980
Test: manual
Change-Id: Ic31a940aba7bd08eb9d4236d9c963006a18c9f4d
2021-05-10 20:39:22 +00:00
Steven Ng ac05cb1343 Fix class cast exception in a11y service for widget resize action
Test: Enable talkback. Then navigate to a widget. Trigger talkback
      menu > actions > move. Able to move a widget without crash.
Bug: 186999201
Change-Id: Ic6a66fefd643443e3d5a8839e6f2fe10c946dab2
2021-05-05 15:38:28 +01:00
Andy Wickham 7d821d98f1 Updates OptionsPopupView to allow non-resource strings/icons.
This will be needed for Smartspace which gets its menu options
from AiAi.

Test: Hard-coded strings passed to Smartspace from the fake
data Launcher plugin. Also verified could access the menu
using TalkBack.
Bug: 184179894

Change-Id: I724c09db18085585c7a5224e32c0d8973acdab7c
2021-04-01 18:27:20 -07:00
Pierre Barbier de Reuille b2526feb24 Launcher changes for go/widget-size-specification
Makes sure the launcher:

1 - Send the list of actual sizes the widget in all situations.
2 - Gives the current size to the framework on inflation.

Also needed to guard the new border changes introduced in
http://ag/13532637 with the corresponding flag.

Change-Id: I2a33e9501b921f2fc393684e8ce91ee077626bf7
Test: By hand using a local widget.
Bug: 179025145
2021-02-24 20:40:41 +00:00
Sunny Goyal 384b578ab2 Removing menu and dialog for custom actions hanlding.
These do not work well with gesture-nav and can potentially
block the Launcher UI.

Instead exposing on custom actions with keyboard accelerator and
using thee internal arrowPopup for resize options
Fixing SecondoryDropTarget not sending appropriate stats log

Bug: 179854703
Test: Verified on device
Change-Id: I268690f8a937896e4350496128a38959003f8939
2021-02-16 10:45:06 -08:00
Sunny Goyal a4647b681f Adding support for keyboard based drag and drop
For keyboard DnD, we use Accessible DnD implementation.
A placeholder FloatingView draws the focus indicator
for the virtual views

Test: Visible
Bug: 178781566
Change-Id: I632fc7377dffa1e05e3f0a9c3ad18641deb5a1a4
2021-02-05 13:05:24 -08:00
Sunny Goyal e396abf502 Moving model data structures to a separate file
Change-Id: I77ad7a5219e72d2e0d6c1803de2ac3ed6a65a8f7
2020-04-09 13:20:39 -07:00
TreeHugger Robot 402e7be703 Merge "Hybrid Hotseat a11y" into ub-launcher3-master 2020-04-02 22:27:32 +00:00
Samuel Fufa 6eaf989d98 Hybrid Hotseat a11y
- speak meaningful accessibility label for predicted items
- disable accessibility focus for on-boarding preview items
- add PIN as an accessibility action
- remove move and remove actions for prediction icons

Bug:152376193
Bug:152359303
Bug:152374583
Bug:152357657
Bug:152268303
Bug:152379490

Change-Id: I40fe0ef6329cd5b1d9215ac5fa1716f15db89ac8
2020-04-02 14:16:07 -07:00
Jon Miranda ff65674a10 Remove accessibility long click option if no long click action occurs.
Bug: 149370403
Change-Id: Ifdbd673a53229c76a99f7b8ef9569db7195481a2
2020-04-01 12:02:07 -07:00
Jon Miranda cafe918ff3 Remove accessibility long click option if no long click action occurs.
Bug: https://b.corp.google.com/issues/149370403
Change-Id: I265b60ed0f8f816c842d167520657e0bff442a04
2020-03-26 11:22:02 -07:00
Sunny Goyal 9b18010990 Decoupling some drag and drop code handling
> Removing some special checks around accessibility drag
> Unifying folder alarm code path for accessible and normal DnD
> Maintaining mDragStartTime inside the dragDriver instead of the callers
> Simplifying some accessibility callbacks

Future cl will create a Accessibility DragDriver and unify it with
other DnD flow

Change-Id: I1919ef218de0174678110f271b450bcb9aaf4a5c
2020-03-18 12:41:42 -07:00
Samuel Fufa 5cf3e86f80 Move 'dismiss prediction' to droptarget
This is done to avoid shortcuts being crowded when a predicted app is
long pressed.

Bug: 148707493
Test: Manual
Change-Id: I356a2cebfcc329478d96ee815fd641179359a572
2020-02-04 12:24:16 -08:00
Adam Cohen 732b1d46c5 Fix a couple issues related to drag and drop in Touch Exploration mode
=> The framework no longer sends touch events after double-click and hold, and instead only triggers a single long-press event
=> As a result of the above, there is some additional state that must be set for accessible drag and drop, and further, we no longer initiate a drag in response to long press when Touch Exploration is on.

Test: manual

issue b/148308758

Change-Id: I26ab90b807965f31c8de93d451130410169f2fb0
2020-01-30 23:38:59 +00:00
Pinyao Ting c90742775b [a11y] fix the issue where launcher announces item added to homescreen before
it does

Test:
1. long press on home screen -> widgets
2. enable talkback
3. add a custom shortcut to home screen (i.e. 1x1 widgets, e.g. drive
scan in Google Drive, Driving Mode in Google Maps ... e.t.c )
4. verify talkback announces "item addded to homescreen" after it does
get added to the homescreen
5. repeat the same test for widgets (e.g. calendar)

Bug: 141527338
Change-Id: I232e6e796c9edb81128f816c71a33310c3700e73
2019-11-14 22:37:24 +00:00