Commit Graph

1972 Commits

Author SHA1 Message Date
Bill Yi
c8a4f437c8 Import translations. DO NOT MERGE ANYWHERE
Auto-generated-cl: translation import
Change-Id: Iaf42323ce36547d1209961307cdc93c65a64066e
2022-01-14 02:14:50 +00:00
Mariia Sandrikova
04ce06bb79 Merge changes from topic "revert-16468379-CXJTAENUWN" into sc-v2-dev
* changes:
  DO NOT MERGE Revert "[2/n] Camera Compat UI: Add interfaces for client-server..."
  DO NOT MERGE Revert "[3/n] Camera Compat UI: Add a camera compat control."
  DO NOT MERGE Revert "Log the CameraCompatControlEventReported atom."
2022-01-13 22:41:22 +00:00
Mariia Sandrikova
7617679a61 DO NOT MERGE Revert "[2/n] Camera Compat UI: Add interfaces for client-server..."
Revert submission 16468379

Reason for revert: Feature development is moving to T.

Reverted Changes:
Id9b9a8930:[3/n] Camera Compat UI: Add a camera compat contro...
Id6be4a954:Enable a camera app compat control on Large screen...
I083aa6718:[2/n] Camera Compat UI: Add interfaces for client-...

Bug: 206602997

Change-Id: I9ad876043fd61f708a8f468fffd1ef371bfa0866
2022-01-13 15:21:38 +00:00
Aurimas Liutikas
aec26c4f68 DO NOT MERGE Revert "[3/n] Camera Compat UI: Add a camera compat control."
Revert submission 16468379

Reason for revert: Feature development is moving to T.

Reverted Changes:
Id9b9a8930:[3/n] Camera Compat UI: Add a camera compat contro...
Id6be4a954:Enable a camera app compat control on Large screen...
I083aa6718:[2/n] Camera Compat UI: Add interfaces for client-...

Bug: 206602997

Change-Id: I318b89b87cd3b05a3f3dcd428e3d80fe81465011
2022-01-13 15:16:51 +00:00
Winson Chung
a76e46ee03 Merge "Return non-null empty list if the controller is already invalidated" into sc-v2-dev 2022-01-13 01:42:19 +00:00
Tony Huang
fcfa227cf7 Merge "Avoid NPE while drag divider bar" into sc-v2-dev 2022-01-12 01:21:28 +00:00
Winson Chung
d0823fc830 Return non-null empty list if the controller is already invalidated
- In the off chance that the controller is already invalidated (due to
  service reconnection to launcher for example), then any calls through
  the previous binder should just return an empty task list.

Bug: 206648922
Test: Manual (haven't been able to repro)
Change-Id: Iff6193fa89c2baecc527e589f17ae41b82575a48
2022-01-11 19:57:26 +00:00
Mady Mellor
d76f9c199c Merge "Fix possible NPE" into sc-v2-dev 2022-01-11 17:36:43 +00:00
Tony Huang
f0d69e7d47 Avoid NPE while drag divider bar
Task topActivityInfo is nullable, we should check it is null or
not before access it.

Bug: 213894166
Test: pass existing tests
Change-Id: Iedda57145586b6d5c2e151308ddca1e2e36035c0
2022-01-11 14:58:17 +08:00
Winson Chung
f92999a5e1 Merge "Ensure only single pip dismiss magnetized target exists" into sc-v2-dev 2022-01-11 06:08:29 +00:00
Winson Chung
b5e0878776 Ensure only single pip dismiss magnetized target exists
- If init() is called multiple times, the previous magnetized targets
  can cause the wrong target position to be calculated when trying (or
  not trying) to dismiss

Bug: 213348722
Test: Manual
Change-Id: Ic1f972cc60eafca2302ad168065c974c8a0ee924
2022-01-11 00:22:42 +00:00
Mady Mellor
0be1b45d64 Fix possible NPE
Test: manual - make sure dot works normally / no regression
Bug: 213027822
Change-Id: I819f73cb8c7d613796c3d3bb4b55b80b337c6126
2022-01-10 21:07:31 +00:00
TreeHugger Robot
581ad142f9 Merge "Import translations. DO NOT MERGE ANYWHERE" into sc-v2-dev 2022-01-09 05:21:03 +00:00
TreeHugger Robot
34171e053d Merge "Import translations. DO NOT MERGE ANYWHERE" into sc-v2-dev 2022-01-09 05:20:12 +00:00
Bill Yi
9f612755b6 Import translations. DO NOT MERGE ANYWHERE
Auto-generated-cl: translation import
Change-Id: Ifab08e6f5047b918b9d9eb318085f9e281b7fb4a
2022-01-08 05:06:10 +00:00
Bill Yi
301d5c5963 Import translations. DO NOT MERGE ANYWHERE
Auto-generated-cl: translation import
Change-Id: I97d5ca669c13fda5f3c25b97f42ee359953fe172
2022-01-08 05:00:53 +00:00
Mariia Sandrikova
b6c52ec273 Merge "[5/n] Camera Compat UI: Unify margins logic for camera and size compat controls." into sc-v2-dev 2022-01-07 10:49:20 +00:00
Tony Huang
588771a9de Merge "Fix updateRecentTasksSplitPair unexpectly" into sc-v2-dev 2022-01-05 03:58:53 +00:00
Tony Huang
b5fe809adf Fix updateRecentTasksSplitPair unexpectly
While split pair switching, split remain as active so it might
record new bounds with old top task pair unexpectly.
Fix this by set flag to false on startTasksWithLegacyTransition
and reset to true after remote animation finished.

Fix: 213128767
Test: manual
Test: pass existing tests
Change-Id: I42b4c79558467dec23b789a3b5cc2f8f38cd1c36
Merged-In: I42b4c79558467dec23b789a3b5cc2f8f38cd1c36
2022-01-04 10:26:51 +00:00
Tony Huang
adae4870fb Fix toucn unresponsive after half fold in split
After fold animation finished, it will always set null bounds crop
to surface and cause root task surface bounds abnormal.
Fix by ignoring root task surface in StageTaskUnfoldController
because it would not effect animation.

Fix: 211132158
Test: manual
Test: pass existing tests
Change-Id: Iece8f7e7d437bdff1cf9e738df3acc075729b993
2022-01-03 19:03:02 +08:00
TreeHugger Robot
a9831fcd24 Merge "Adding additional log to track down crash" into sc-v2-dev 2021-12-30 22:47:08 +00:00
Winson Chung
b86d3723c9 Adding additional log to track down crash
Bug: 206648922
Test: Manual
Change-Id: If34dfc40183729a942e3c8433f3b5ee00ad8e079
2021-12-30 05:50:42 +00:00
Tony Huang
5289f17a80 Fix launcher crash and correct split behavior
Fix laucher crash while swipe up in split screen. This issue caused
by launcher will request 3 runningTaskInfos to do some action,
however, it cannot ensure 3 info actually include both splits because
only one got focused. Fix this by WA on RunningTasks, update the
adjacent task of the focus one too to make sure both split task
will be top two while calling getTasks.

Correct some split behavior while startTasksWithLegacyTransition
too.

Bug: 211716649
Test: pass existing tests.
Test: Make many split pair then swipe up
Change-Id: I2e6deb2ac607b454ca8fc760f0399135a1e8e901
Merged-In: I2e6deb2ac607b454ca8fc760f0399135a1e8e901
2021-12-29 11:57:37 +00:00
Mariia Sandrikova
d8cbcc46be [5/n] Camera Compat UI: Unify margins logic for camera and size compat controls.
Before this change, margin between a hint and a camera compat control was smaller than required 8 dp while for a size compat control it was bigger than 8dp (since ag/16420818). This change makes them consistent and also simplifies layout definition for the size compat button by declaring margings explicitly rather than including them in width and height implicitly.

Test: manual
Bug: 206602997
Change-Id: I09839e764d2c8904954a594433888bfdc21d56ba
2021-12-23 18:37:59 +00:00
TreeHugger Robot
e11f54565e Merge "Import translations. DO NOT MERGE ANYWHERE" into sc-v2-dev 2021-12-23 18:24:14 +00:00
Tony Huang
e1f575dee2 Merge "Make sure launcher side can animate divider" into sc-v2-dev 2021-12-22 02:47:05 +00:00
Bill Yi
6eefdeebae Import translations. DO NOT MERGE ANYWHERE
Auto-generated-cl: translation import
Change-Id: I2e74699a2c1affb6982cf1142cfaa1b199fc93c0
2021-12-22 01:02:17 +00:00
Winson Chung
cb1f78f054 Merge "Add debug logging for null task list" into sc-v2-dev 2021-12-21 17:35:08 +00:00
Winson Chung
f4cc0faac1 Add debug logging for null task list
Bug: 206648922
Test: Adding logs
Change-Id: If2eec374eafd1287253404ba9d6af00612d9be5c
2021-12-21 06:09:57 +00:00
Tony Huang
f3741120c1 Make sure launcher side can animate divider
Fix divider target should pass to remote animation runner and add
mIsDividerRemoteAnimating flag to eusure launcher side controlling
the divider surface and shell side do not controll until remote
animation finished.

Bug: 202914644
Test: manual
Test: pass existing tests
Merged-In: I6411a609268274355a38c72fcb5d628b76b2340c
Change-Id: I6411a609268274355a38c72fcb5d628b76b2340c
2021-12-21 04:18:02 +00:00
Mariia Sandrikova
3486eacda3 Merge changes from topic "camera-compat" into sc-v2-dev
* changes:
  [3/n] Camera Compat UI: Add a camera compat control.
  [2/n] Camera Compat UI: Add interfaces for client-server communication.
2021-12-18 21:39:13 +00:00
Mariia Sandrikova
13e80fd997 [3/n] Camera Compat UI: Add a camera compat control.
Test: atest WMShellUnitTests
Bug: 206602997
Change-Id: Id9b9a89303387c4ac797fc1382967151a13d38ef
2021-12-17 00:20:19 +00:00
Mariia Sandrikova
24f4d8a952 [2/n] Camera Compat UI: Add interfaces for client-server communication.
Changes:
- Listens to changes from the client coming through IActivityClientController#requestCompatCameraControl to ActivityRecord#updateCameraCompatState
- ActivityRecord#updateCameraCompatState sends updated state via TaskInfo to WM Shell
- ITaskOrganizerController#updateCameraCompatControlState to dispatch the user interactions with the control from WM Shell triggers callback to ActivityRecord#updateCameraCompatStateFromUser
- ActivityRecord#updateCameraCompatStateFromUser remembers the user's choice and asks client to apply treatment through ICompatCameraControlCallback

Feature is guarded with config_isCameraCompatControlForStretchedIssuesEnabled

Test: atest WMShellUnitTests:ShellTaskOrganizerTests, atest WmTests:ActivityRecordTests
Bug: 206602997
Change-Id: I083aa6718bd67456bedd9444e9b78740c041f870
2021-12-17 00:18:57 +00:00
Mady Mellor
4b3ea38f9b Merge "Fix a potential NPE" into sc-v2-dev 2021-12-15 18:09:31 +00:00
Mady Mellor
447e4f16e2 Fix a potential NPE
I've never been able to reproduce this and the stack traces I have
of it don't match existing code, but looking at the code paths I think
this could still happen, there are a couple of places where the
mMagnetizedBubbleDraggingOut gets nulled out (e.g. on child removed)
I've tried to repro by:
 - canceling the bubbles in the middle of dragging to dismiss
 - trying to snap the bubble back and then drag it again to dismiss
   (snap back also nulls it)

I see a recent stack of it in pitot so I think it's worth adding the
null check.

Test: atest ExpandedAnimationControllerTest
Bug: 201866808
Change-Id: Ib9425a2b63410c95fddaaea59761dfd18557ed54
2021-12-14 15:21:41 -08:00
Ben Lin
c34133ad93 Merge "Update PiP exclusion bounds in TaskBarDelegate." into sc-v2-dev 2021-12-14 20:49:06 +00:00
Ben Lin
82865fe924 Update PiP exclusion bounds in TaskBarDelegate.
Navigation bar is only created and used when taskbar is not available.
When taskbar is available, we will use TaskbarDelegate to be the one
responsible to update pip exclusion bounds as PiP moves.

Bug: 210038947
Test: Unfold, enter PiP, stash - PiP can be yanked out
Change-Id: I8f789d3b603e41c3d15494afdadce2cddc4d4b9c
2021-12-14 10:35:50 -08:00
Mady Mellor
90db2335da Merge changes I3c7a2886,Ib959f44b into sc-v2-dev
* changes:
  Update dropzones to match the size of the existing split
  Fix how task info is retrieved for split screen
2021-12-14 15:18:52 +00:00
Mady Mellor
6b1abd9b68 Merge "Mark bubbles as updated when they're added to the stack" into sc-v2-dev 2021-12-14 01:16:23 +00:00
Mady Mellor
c57aa4a84e Update dropzones to match the size of the existing split
The dropzones were always split exactly in half on the screen
which looks weird if you adjust the split to a different size
and then drag new apps into split.

This adjusts the dropzones to match the size of the existing
split.

It also fixes a bug where the existing split bounds weren't
being properly calculated in the policy so the drag and drop
highlight wouldn't switch to the correct side until you
passed through the middle instead of where the divider
actually is.

Bug: 209504662
Test: manual - 1) have apps in split
               2) adjust the divider
               3) start dragging a new app into split, pass
                  across the divider
               => the highlight should immediately switch
               => the highlight should match the size of the
                  existing split
               4) test in landscape & portrait
Change-Id: I3c7a288625ad766d0c467d713a451fe8bfc1d669
2021-12-13 12:37:51 -08:00
Mady Mellor
75bacc46d0 Fix how task info is retrieved for split screen
Previously this was grabbing the top two tasks from the
task list, but this isn't guaranteed to be what's on the
screen. Instead, when already in split, use the taskInfo
from the split controller.

Test: manual - 1) have stuff in split
               2) keep dragging different apps into split
               => verify the app icon shown in the non
                  highlighted side matches the app on that
                  side
Bug: 209504662
Change-Id: Ib959f44bc9eaebfb5e3f640d69cb6f3ddccedfcf
2021-12-13 12:37:45 -08:00
Mariia Sandrikova
aa7a8cdda5 Merge "[1/n] Camera Compat UI: Refactor size compat mode UI controller." into sc-v2-dev 2021-12-12 16:37:59 +00:00
Mariia Sandrikova
6dd79270b0 [1/n] Camera Compat UI: Refactor size compat mode UI controller.
First CL in the chain that will add a camera compat UI control which will be used to correct stretched issues in TextureView and SurfaceView cause by apps not handling mismatch between camera buffers and view size correctly.

This change is necessary because right now there are 2 instances of WindowlessWindowManager (SizeCompatUIWindowManager) in SizeCompatUILayout: for a hint and for a restart button. They are also positioned relatively by computing offsets in java code rather than by specifying layout with XML. This code structure will cause issues since with upcoming camera changes there will be a need to coordinate relative position of 4 UI elements (2 buttons and 2 hints).

What is changing in this CL:
- Majority of changes are simple renaming from "size compat UI" to "compat UI" since, starting from the next change, two different compat controls will be supported.
- Merging 2 instances of SizeCompatUIWindowManager into one (CompatUIWindowManager) and for that create a joint layout in compat_ui_layout.xml
- Merge SizeCompatLayout logic into CompatUIWindowManager since in absence of 2 instances of WindowlessWindowManager there is no good reason to keep them separate.
- Merging and renaming tests to follow refactoring of the implementation.

Test: atest WMShellUnitTests (the same set of tests should be sufficient since this refactoring just reorganized the structure of the implementation)
Bug: 206602997
Change-Id: I7141c69b7ba4742c5b7b2018329b91a1b37b45bc
2021-12-11 13:00:23 +00:00
Hongwei Wang
11a6929c42 Fix A11y on PipMenuView
Ensure the shell root accessibility window is set to null when PiP menu
state is NONE (invisible).

Bug: 208880253
Test: manual, ensure SwitchAccess and TalkBack can access PiP menu
Change-Id: I404ea74069ca9052f165198a8d7f9abdd55dbdb2
2021-12-10 10:48:35 -08:00
Hongwei Wang
54fed092f8 Merge "Fix the transition from Split to PiP" into sc-v2-dev 2021-12-10 08:25:28 +00:00
Hongwei Wang
d4848611d2 Fix the transition from Split to PiP
- Do not bring split to top on entering PiP
  When swiping up to home (or other cases) triggers one of the
  split-screen children enters PiP, do not try to bring the other task
  to top since the pair should be considered invisible.
- When entering PiP from split screen or non-auto PiP case, use the
  alpha information in PictureInPictureSurfaceTransaction to hide the
  task which would later be turned back on to avoid flicker.

Bug: 190855091
Bug: 205894095
Video: http://recall/-/aaaaaabFQoRHlzixHdtY/42RWtayanp2qG0mHSf4Q5
Test: manual, enter PiP from split-screen, see Video
Change-Id: I1559748cd583c20d79ee458822d66e7801733d3a
2021-12-09 21:07:45 -08:00
Mady Mellor
fecc199440 Mark bubbles as updated when they're added to the stack
If you add a bubble via the button on the notification but
if the notif for it is older than the notifs for the bubbles
in the stack, then that added bubble is removed immediately.

This isn't expected and can result in the view state being
out of sync with bubble data, i.e. BubbleStackView contains
the view but BubbleData doesn't have the bubble so it can
get added again (but the view is already in BSV causing the
crash).

This fixes the issue by marking newly added bubbles as
"updated" which will ensure the newly added bubble won't
be immediately removed.

Had to adjust the tests to be setting a current time since
that's what's used to mark the update time.

Test: atest BubbleDataTest
Bug: 207083906
Change-Id: I425de9c1ca514066340f9123b6004820e98674fd
2021-12-09 13:36:32 -08:00
Hongwei Wang
092b4a0f92 Remove mTargetViewContainer safely
Per bugreport there is chance that
PipDismissTargetHandler#mTargetViewContainer is not attached to window
manager when we try to remove it in PipDismissTargetHandler#init on
overlay changes (such as changing wallpaper)

Bug: 209796452
Test: N/A not able to reproduce on raven
Change-Id: Ic2fbe2d59145afa2c994bc75446d60f8c4415e58
2021-12-08 09:23:53 -08:00
Ben Lin
229448b89e Merge "PiP: Disable enter-split button when not visible." into sc-v2-dev 2021-12-08 02:33:22 +00:00
Ben Lin
3cb94e0d6a PiP: Disable enter-split button when not visible.
Bug: 209360831
Test: Enter PiP, press on where split-button should be - doesn't do
anything

Change-Id: I456cf7f3aa2aecdf3dae10d968c28d92e985e7dd
2021-12-07 14:42:50 -08:00