Add a new test (only the transition) called SplitScreenRotateTwoLaunchedAppTest. This test will open two apps in splitscreen and in the transition it will rotate the device.
Test: atest WMShellFlickerTests
Bug: b/171049799
Change-Id: I41e9b09d2621c2c44d276a2348b8f7f94dec71dc
The aidl IActivityTaskManager interface doesn't allow for method
overloading with the same name. Switching some of these calls to use
ActivityTaskManager class instead makes it easier to have overloads in
upcoming CLs.
Test: they pass!
Bug: 172776536
Change-Id: Ic4895ccf7dc1207cc6b14004cfcf6ee7b4b76cc1
The test OpenAppToSplitScreenTest was marked as flaky as it doesn't run because of b/161435597 when being on 90 degrees. So we are removing the flaky annotation and marking the test to only run on 0 degrees. Also adding the presubmit annotation. This test is similar to one of the test inside EnterSplitScreenTest that's been running with no problem.
Test: atest WMShellFlickerTests
Change-Id: I4e9496286210805e0a8d15d7905cf6fbbc28a4ed
Moving some tests to Presubmit using the annotation tag (adding the annotation lib as dependency). These tests were working on post submit:
- AppPairsTest
- PipKeybopardTest
- EnterSplitScreenTest
- ExitSplitScreenTest
Test: atest WMShellFlickerTests
Change-Id: I10603cbb869044fce9d444ab7c2a8d761eb1ee74
Test mappings are as follows:
- testPinnedStackInBoundsAfterRotation => PipRotationTest
- testEnterPipToOtherOrientation => PipOrientationTest
- testSetRequestedOrientationWhilePinned => PipOrientationTest
- testPinnedStackWithDockedStack => PipSplitScreenTest
- testDisplayMetricsPinUnpin => EnterExitPipTest
Some other accompanying changes are as follows:
- add FixedAppHelper for FixedActivity.
- add testapp.Components to provide the constants for each test app.
- extend PipActivity to accept some extras from Intent/BroadcastIntent.
Bug: 161980624
Test: atest WMShellFlickerTests
Change-Id: I64d97a51387370cc086c9dcdded846e4a8c1c0ea
Moving all tests of Pip and SplitScreen from FlickerTests lib to WMShell.
Test: atest WMShellFlickerTests FlickerTests
Change-Id: I5e915f38beb8c1fef44cf18d955caf1e3cc77b30
Test that correct UI elements are displayed for the custom actions; that
the set of custom actions can be updates (while PiP menu is shown); that
custom actions collaborate correctly with "regular" actions (Full screen
and Close), as well as with the media contol actions.
Bug: 171520419
Test: atest WMShellFlickerTests:TvPipMenuTests
Change-Id: I1f5b1e4896a60b8d2bfb118e548466e7f4036e61
Integrate forceStop() in exit() that PIP window could really
exit after each round of test
Bug: 173567664
Test: atest com.android.wm.shell.flicker
Test: atest com.android.server.wm.flicker.Flicker
Change-Id: I8aaa4f590344f8fb1e6e731ed865f21f63892bb2
1. Adds missing unit tests
2. Cleans up public API (nullability and doc)
3. Renames AnimatingBoundsState to MotionBoundsState to improve
readability of what that state actually holds, that is, the state
of the "bounds in motion" which can be the bounds used during an
animation but also the bounds used during a drag or resize
operation.
Bug: 169373982
Test: atest com.android.wm.shell.pip
Change-Id: I951fa3ea1310b69c93b53a1690c0a1cf0632dd33
This is the initial version to achieve:
1. SplitScreenActivity in test-apps
2. Create SplitScreenTestBase and add a basic test cases to
ensure SplitScreenActivity enter split screen mode
3. Assert StatusBar/NavBar/SplitScreenActivity showing when
device enter split screen mode
4. Verify docked apps ending bounds
Bug: 169271943
Bug: 172811376
Test: atest WMShellFlickerTests:EnterSplitScreenTest
Change-Id: I26461b958c578dcbcc5ca2235f9d269559fd9ec5
Introduce TvPipBasicTest that runs a basic Pip scenario:
1) enter Pip;
2) open Pip menu using the Window button;
3) close Pip menu using the Back button;
4) close Pip.
The test runs with 4 times with different Pip window aspect ratios:
defaul; square(1:1); wide(2:1); tall(1:2).
Bug: 13054136
Test: atest WMShellFlickerTests:TvPipBasicPipTest
Change-Id: I9a138ba9daaac223d451bac750e6a028def0a468
After PipKeyboardTest teardown{}, the testApp in PIP mode is alive and
introduce the NEXT flicker test case get unexpected assertion fails.
Root cause:
The flow of exit(), neither pressHome() nor pressBack() could lead
TestApp(in PIP) successfully exit PIP and back to fullscreen in teardown.
Bug: 173477410
Test: atest com.android.wm.shell.flicker, make sure all tests PASSED
Test: atest WMShellFlickerTests, make sure all tests PASSED
Change-Id: I5e7e6f0323b2e6145dc25e2b8e99b77557f4ce13
Add divider bar for app-pairs. AppPairLayout and divide policy records
and handles the layout in pair.
Bug: 172704238
Bug: 172704672
Test: manul check the behavior of the splits and divider bar.
Test: AppPairTests, AppPairsPoolTests, AppPairsControllerTests
Change-Id: I688c7001d056fe8dd9a192885e1f9fd5f004dc11
- AppPairs: Main interface used to pair and unpair tasks.
- AppPairsController: Main controller for app-pairs and implements
AppPairs interface.
- AppPair: Manages a singal instance of an app-pair consisting of a
root task and 2 other tasks that are paired together.
- AppPairPool: Helper object pool for AppPair class so we don't have to
wait for a root task creation from system_server when we need an
app-pair.
- adb shell commands for pairing and unpairing tasks
Test: adb shell commands for pair/unpair
adb shell dumpsys activity service SystemUIService WMShell \
pair taskId1 taskId2
adb shell dumpsys activity service SystemUIService WMShell \
unpair taskId
Test: AppPairTests, AppPairsPoolTests, AppPairControllerTests
Bug: 172704672
Change-Id: Ie0a70c1aa764ad83b763931501234c1960251ca4
Only call assumeTrue(isTelevision) during test setup (@Before), and do
not call it in teardown (@After), which causes tests to fail instead of
be slipped.
Bug: 171520419
Test: atest WMShellFlickerTests
Change-Id: I12f72d46a63c497686f0da7c4763ae79bbeb7dcd
Currently you can only access the overflow if you have bubbles in
the stack. There are a bunch of explorations that show accessing
the overflow without the stack (e.g. from taskbar, from people area).
- BubbleData holds onto BubbleOverflow now
- When last bubble is removed, if showing in taskbar/already expanded
& has overflow bubbs, select the overflow.
- No longer null out BubbleStackView when no more bubbles, this
allows overflow to continue to show
- Added tests for overflow behaviour in BubblesTest
Test: atest SystemUITests
Test: manua 1) - produce a bunch of bubbles
- expand the stack, dismiss each bubble
=> when you dismiss the last one, overflow selected
- collapse the stack
=> overflow goes away
2) - have taskbar cl / prototype
- have bubbles in the overflow but no active bubbles
=> observe that taskbar shows the overflow (i.e. sysui
renders the stack in that spot)
Bug: 171322463
Bug: 167413172
Change-Id: I36b9cedc492ace59105dba58c89f9ef92ff4b9e8
This will enable some stuff for taskbar & hopefully make customizations by
ARC++ easier??
- BubblePositioner now tracks the size of the bubble & bitmap within it.
Have to use a multiplier to derive the size of a couple of things now
(e.g. bitmap size)
- BubblePositioner now tracks the position of the bubble stack & allows
a way to override / set a fixed position. If something is in fixed
location, it is not draggable (however when expanded you can still
drag individual bubbles to dismiss)
- BubblePositioner tracks some taskbar related info
- Rather than checking for "isLandscape" we want "showBubblesVertically"
(e.g. device might not be landscape but should be vertical if taskbar)
- Fixes an animation issue where bubbles super-overshoot the y position
when expanding vertically.
Bug: 167413172
Test: a lot of manual testing
Test: atest WMShellTest SystemUITests
Change-Id: I79948a4bd6b58fb3aa2f52e2553f3dfc31630cf1
Now that all state handling has been moved out of
PipBoundsHandler, this CL renames it to
PipBoundsAlgorithm and cleans up its public API
so that it functions more like an utility to
calculate several types of "bounds" related to PIP
such as:
- Default bounds
- Normal bounds
- Movemement bounds
- Entry bounds
- Bounds adjusted to aspect ratio
- Inset bounds
PipBoundsAlgorithm's is then only responsible for
calculating such bounds based on the current state of
PIP (owned by PipBoundsState) but it no longer owns
or manages the state, as that would be the
responsability of its users (e.g PipController).
Bug: 169373982
Test: atest com.android.wm.shell.pip
Change-Id: I67c3004b60069160f82d7c3d00d8c3995c0c5f80
- Added a new DisplayArea feature for hide display cutout
- Added a new config for enable/disable hide display cutout
- Resize and shift display areas to exclude the cutout areas.
- Force dark status bar when there is a cutout area at top
- Update bounds & offsets for different rotations.
Bug: 157388722
Test: atest HideDisplayCutoutControllerTest
atest HideDisplayCutoutOrganizerTest
atest WMShellTest
Change-Id: Iad2c8b1eff1ea4523f8a7e362c9e851d8594141c
getDestinationBounds(Rect) was only being used to calculate
the "entry" bounds (e.g. onTaskAppeared, swipeToHome) and
all its callers were passing in null.
getDestinationBounds(Rect, boolean) had only one caller,
onTaskInfoChanged, who did pass the current bounds in to
be adjusted to the aspect ratio.
Instead of having overloaded methods and complex logic to
know whether to calculate default bounds or use the provided
bounds, the method is now split into two methods that better
represent what they're calculating:
1. getEntryDestinationBounds, no arguments, calculates either
default or reentry bounds
2. getAdjustedDestinationBounds, takes in the current bounds
and the new aspect ratio, simply adjusts the bounds to the
aspect ratio.
Bug: 169373982
Test: atest com.android.wm.shell.pip
Change-Id: Ie8adda458fc5a56b9d78245c663dbc54b8525378