summaryrefslogtreecommitdiff
path: root/core/java/android/view/RemoteAnimationTarget.java
Commit message (Collapse)AuthorAgeFilesLines
* Provide startBounds for closing container with legacy transitionChris Li2022-12-021-10/+19
| | | | | | | | | | | | | | | | Before, we only provide startBounds when the animation target is MODE_CHANGING, with which we won't know the start bounds for target that is closing while resizing. Now, we provide startBounds for all targets, so that we can use it to provide seamless animation when the target is closing while resizing. Also make sure the closing container's surface is in the start bounds before the animation starts to avoid any flicker. Bug: 241043533 Test: Verify with switching between split and stack. Change-Id: I4d8e1ee44d418249dcb434425c7ab3d63a429bad
* Adding missing rotationChange in RemoteAnimationTargetSunny Goyal2022-09-131-0/+12
| | | | | | Bug: 221961069 Test: Presubmit Change-Id: Ibea2ba0694c5afe77dc809e8ad890f620bb92fda
* Add willShowImeOnTarget in RemoteAnimationTarget(Compat)Ming-Shin Lu2022-07-281-0/+18
| | | | | | | | | | | | | | | | | | | | ..used for signaling the launcher to crop the remote animation target bounds when task animating on the taskbar. If the task will show IME on the top means the animation taget would not need to be cropped according to the taskBar insets, since visually the taskbar is hidden when IME is visible. Bug: 219981732 Test: manual as steps 0) enable taskbar with Settings > Developer options > Smallest width as 600dp. 1) launch an app from all apps and show the IME by tapping the editor. 2) swipe out to home and launch it again by pressing the shortcut. 3) Verify the animating task preview with IME shown without being cropped. Change-Id: Iab526e78614c68626bd5424e0e3219044f671f4d
* Setup T style clear top transition animation for ActivityEmbedding.An An Yu2022-06-141-0/+13
| | | | | | | | | This registers system default clear-top xmls and propagate the showBackdrop flag. Test: atest RemoteAnimationsControllerTest Bug: 221048002 Change-Id: I664f7edd181fd7d625b7010a77cd1f7b58fc3113
* Pass background color from transition info to remote animationRiddle Hsu2022-03-301-0/+10
| | | | | | | | | | | | | With shell transition, there won't be task info if the transition is launching activity in the same task. ActivityLaunchAnimator assumed the task info is non-null, which causes NPE. Bug: 223397404 Test: adb shell setprop persist.wm.debug.shell_transit 1; reboot Long press quick settings tile from notification multiple time. Especially launch the same tile twice, systemui should not crash. Change-Id: I0ad1fef17653d72162d430339ac7e8a716aa9bfe
* Do not use prefixOrderIndex for animation layerChris Li2021-12-031-0/+4
| | | | | | | | | | We may set a z-order different from the prefix order, for example TaskDisplayArea#adjustRootTaskLayer. As a result, we should no longer set animation leash layer based on the prefix order. Fix: 208793409 Test: manually test launching activity over another Change-Id: If8d545ca7a9ac42162262ad3a8f95b4ac9f65585
* Flag whether a RemoteAnimationTarget has parent in animationChris Li2021-09-211-0/+12
| | | | | | | | | | | There is case when a TaskFragment is resizing while one of its children is open/close. In such case, both the TaskFragment and its child will be included in the transition, but we don't want to animate both of them. Use the new flag to determine if the child need to be animated. Bug: 196173550 Test: test with demo app Change-Id: Ib5ad32501e046e5b612f6d5ae2faed6266d99f3d
* Fix some NPEs in shell transitionsEvan Rosky2021-08-301-1/+1
| | | | | | | | | Missed some null checks which resulted in crashes during some tests. Bug: 183993924 Test: atest WindowInsetsPolicyTest Change-Id: Iaa84b2d9e824223cead9ba78247129b77b1f217e
* Pass AppOps result for PiP in RemoteAnimationTargetHongwei Wang2021-07-301-3/+14
| | | | | | | | | | This result will be used by Launcher when deciding if we should start the auto-enter-pip transition. Video: http://recall/-/aaaaaabFQoRHlzixHdtY/c9raN4jiaNqbiV7DF4YTJ6 Bug: 194272108 Test: try auto-enter-pip with permission disabled Change-Id: Iea3a45fd68b54d74e7d5da91b63684c206a0132e
* Expose the full task info with the remote animation targetWinson Chung2021-03-311-12/+11
| | | | | | | | | | - Allows launcher to get the associated launch cookies for the task Bug: 129067201 Test: Manual, check the task info for the animation targets Change-Id: I4b9d974af1732d0ec7b19681f4772b692f614e5e
* [Reland] Add nav bar case to RemoteAnimationTarget of non-app windowshawnlin2021-03-171-0/+23
| | | | | | | | | | | | | | | | 1. Only send navigation bar target when: - It is the transition of launching an app - In gesture navigation bar mode - The navigation bar is not controlled by fixed rotation or recents 2. Add a windowType field to RemoteAnimationTarget so that the remote clients could use this to find the non-app window they want. 3. Handle the onAnimationFinish() callback for non-app adapters. Bug: 139273001 Test: atest RemoteAnimationControllerTest Change-Id: I0612163502bdda01c4bdbae3b0ecda47efedad51
* Revert "Add nav bar case to RemoteAnimationTarget of non-app window"Shawn Lin2021-03-051-23/+0
| | | | | | | | This reverts commit f17300e70640a95d255f634bc73afa6c039e0569. Reason for revert: <Caused test failures> Change-Id: Id199e36e189c586c92f994023f60f64be9f5f443
* Add nav bar case to RemoteAnimationTarget of non-app windowshawnlin2021-03-041-0/+23
| | | | | | | | | | | | | | 1. Only send navigation bar target when: - The transitition is app launch - In gesture navigation bar mode - The navigation bar is not controlled by fixed rotation or recents 2. Add a windowType field to RemoteAnimationTarget so that the remote clients could use this to find the non-app window they want. Bug: 139273001 Test: atest RemoteAnimationControllerTest Change-Id: I7003011351913b040b47e6fb567eedb4baf34a55
* Optimize the Parcel read/write of remote animationRiddle Hsu2021-02-261-22/+22
| | | | | | | | | Eliminate the overhead of class name. A read/write pair of RemoteAnimationTarget can be reduced from 30us to 7us. Bug: 181025587 Test: CtsWindowManagerDeviceTestCases Change-Id: I58bd69012fcc3e6cb72c1fcfbb1db697e6c70e87
* Remove Point#dumpAlec Mouri2021-01-111-1/+5
| | | | | | | | | | | | | | | | | This is in response to API feedback - dump() methods for most of the public classes describe complex internal state, which does not fit for the Point class. Point#dump does not need to exist anyways, because 1. Point#toString exists, and 2. Point#dump only printed out the x,y coordinates, which are already part of the public api, so printing out a more concise string representation is trivial. So, this patch removes Point#dump and just has RemoteAnimationTarget implement its own print method for Point, since it was the only caller. Bug: 159683987 Test: builds Change-Id: I5c947330768b3e4e450eba3971de939a904d30d4
* Add maxTargetSdk restriction to unused APIs.Mathew Inwood2020-10-291-2/+3
| | | | | | | | | | | | | | | | | | | These are APIs that have @UnsupportedAppUsage but for which we don't have any evidence of them currently being used, so should be safe to remove from the unsupported list. This is a resubmit of ag/12929664 with some APIs excluded that caused test failures; see bugs 171886397, 171888296, 171864568. APIs excluded: Landroid/bluetooth/le/ScanRecord;->parseFromBytes([B)Landroid/bluetooth/le/ScanRecord; Landroid/os/Process;->myPpid()I Landroid/os/SharedMemory;->getFd()I Landroid/hardware/input/InputManager;->INJECT_INPUT_EVENT_MODE_WAIT_FOR_FINISH:I Bug: 170729553 Test: Treehugger Change-Id: I8285daa8530260251ecad6f3f38f98e263629ca7
* Revert "Add maxTargetSdk restriction to unused APIs."Hongwei Wang2020-10-281-3/+2
| | | | | | | | | This reverts commit 72f07d6a8a32db4a0dedd7682a0b3385be2b9cd6. Reason for revert: Droidcop-triggered revert due to breakage https://android-build.googleplex.com/builds/quarterdeck?testMethod=testAppZygotePreload&testClass=android.app.cts.ServiceTest&atpConfigName=suite%2Ftest-mapping-presubmit-retry_cloud-tf&testModule=CtsAppTestCases&fkbb=6936597&lkbb=6936969&lkgb=6936551&testResults=true&branch=git_master&target=cf_x86_phone-userdebug>, bug b/171886397 Bug: 171886397 Change-Id: Ibe0f0430a3451477c1ee8ef56a596e91ea1e7672
* Add maxTargetSdk restriction to unused APIs.Mathew Inwood2020-10-271-2/+3
| | | | | | | | | | These are APIs that have @UnsupportedAppUsage but for which we don't have any evidence of them currently being used, so should be safe to remove from the unsupported list. Bug: 170729553 Test: Treehugger Change-Id: I4c8fd0006f950de9955242e93968fb0996ceb372
* Improve PIP enter transition w/ gesture nav (1/N)Hongwei Wang2020-09-301-1/+15
| | | | | | | | | Add PictureInPictureParams to RemoteAnimationTarget, which would allow Launcher to determine whether the current app can auto enter PiP. Bug: 143965596 Test: N/A Change-Id: I5bc8dd29e9e4e7f3acfe9b841e64344211f57758
* Remove exposed hidden apis in Point.javaAlec Mouri2020-04-071-2/+3
| | | | | | | | | | | | | | | | | | | | Point is moving into the UI/graphics module, so hidden apis need to be cleaned up: * printShortString is now publicly exposed and renamed to Point#dump, to mirror already public APIs such as TokenWatcher#dump * The two convert methods have very few users and their implementations are both trivial and only rely on the existing public API, so they are in-lined directly in the callers. * Introduce a GraphicsProtos utility class living outside of the module that just converts Graphics parcelables into protobuf objects. Currently WindowManager and the view system dump protobuf representations for debugging. Accordingly GraphicsProtos is a hidden public class, as the protobuf representation of the graphics classes are not publicly exposed and should be considered an implementation detail of the system. Bug: 152804266 Test: boots, builds Change-Id: I5e25dbbe47b3c690d7d763a0082beb8d8a9c86d3
* Add localBounds in RemoteAnimationTargetlumark2020-03-091-2/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | With Hierarchical animation, the animation layer will no longer be a fixed fullscreen layer but animate on the parent container's surface. In order to run a remote animation, the animation controller needs to know bounds of the target relative to both its parent and the screen. The CL includes: 1) RemoteAnimationTarget changes: - Add localBounds field for indicating the target bounds which the coodiates relatives to its parent. - Add screenScreenBounds field to replace souceContainerBounds to reflect the target bounds relatives to the screen. - Mark position & sourceContainerBounds as deprecated. 2) Modified related places to set correct localBounds information. Test: build / run, make sure installing the old version of launcher on the this new platform change still compatible without crash. Test: manual as follow steps: - Launching app from launcher to split-screen secondary stack - Swipe up to overview screen and drag TaskView to see if the TaskView surface is shfted, expected is not. Bug: 148780840 Change-Id: Id9dbf6de193ab73fe94bc24ef6a27edc93380a14
* Use new UnsupportedAppUsage annotation.Artur Satayev2019-12-181-1/+1
| | | | | | | | Existing annotations in libcore/ and frameworks/ will deleted after the migration. This also means that any java library that compiles @UnsupportedAppUsage requires a direct dependency on "unsupportedappusage" java_library. Bug: 145132366 Test: m && diff unsupportedappusage_index.csv Change-Id: I5be7335b23a92b8ac80d2fd890198273b66ad644
* Rename writeToProto to be dumpDebugJeffrey Huang2019-12-051-9/+9
| | | | | | | | | We want to eventually migrate some of these APIs to be @SystemApi for mainline modules. The #dumpDebug name is more appropriate than #writeToProto. Bug: 142279786 Test: Manual Change-Id: I60793e91cedf6b720d4ecef6a8484f4fed4ff30f
* All Parcelable CREATOR fields are @NonNull.Jeff Sharkey2019-02-281-1/+1
| | | | | | | | | If they were null, then the Parcelable would fail to work. Bug: 126726802 Test: manual Change-Id: I7929ffa2f20e5de1c8e68e8263cca99496e9d014 Exempt-From-Owner-Approval: Trivial API annotations
* Null check before writing RemoteAnimationTarget protoEvan Rosky2019-01-291-2/+6
| | | | | | | | | | | Change-related variables are null when not changing, thus we need to check for that before trying to write them to proto Bug: 123538318 Test: ActivityLifecycleTopResumedStateTests#testTopPositionLostOnFinish passes Change-Id: I643c48621602b5203f7f64a9af0578273f115dbe
* Change TransitionEvan Rosky2019-01-231-2/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This adds a new transition classification for apps which are switching between 2 visible states. The primary example of this is windowing-mode change. This new classification is mChangingApps in DisplayContent and there is a transition type for TASK_CHANGE_WINDOWING_MODE. The mode-change transition is scheduled when AppWindowToken detects a windowing-mode change. It immediately creates a snapshot and temporary leash to "freeze" the visuals of the app until the animation starts (all transitioning apps are ready). The transition itself is a blend of fading, scaling, and cropping based on whether the end-state is bigger than the start state. The RemoteAnimationTarget now includes a startBounds and an extra "snapshot" leash for controlling the snapshot overlay relative to the AppWindowToken. If either of those is populated, the client of the RemoteAnimation can assume it is animating a change and is responsible for transforming the leash from the startBounds to its final state. Bug: 113253723 Bug: 111762928 Test: go/wm-smoke + RemoteAnimationControllerTests Change-Id: I8654656124b888950e55e31d88ce7a4101e935f8
* Add @UnsupportedAppUsage annotationsMathew Inwood2018-08-201-0/+12
| | | | | | | | | | | | | | | | | | | | | | For packages: android.view.textservice android.view.textclassifier.logging android.view.textclassifier android.view.inputmethod android.view.autofill android.view.accessibility android.view This is an automatically generated CL. See go/UnsupportedAppUsage for more details. Exempted-From-Owner-Approval: Mechanical changes to the codebase which have been approved by Android API council and announced on android-eng@ Bug: 110868826 Test: m Change-Id: I4147b038ed7adf0311ee9918b44766f82a057eaf
* Updating incident protos.Kweku Adams2018-08-131-10/+10
| | | | | | | Adding more comments and fixing some style issues. Test: Android builds Change-Id: I70f74c029cf0aed99aaf55b484729a2f3d289e94
* Improve animation dump/loggingJorim Jaggi2018-03-131-0/+42
| | | | | | | Bug: 74220420 Test: go/wm-smoke Test: adb shell dumpsys window during animation Change-Id: Ib8bddb4f38ad4fe7a80315d3bfdac0a80aea4cc8
* Adding isNotInRecents to RemoteAnimationTargetVadim Tryshev2018-03-091-1/+9
| | | | | | | | | | | For animations required by Recents, we calculate whether the task is going to be presented in Recents UI. Bug: 70789568 Test: Manual: swipe a normal app to Recents; swipe an app with a half-screen assistant on top of it to Recents. Change-Id: I1ec9c36865dd4f57e843ae58811f90f3096365a5
* Revert "Revert "Exposing content insets and minimized home bounds for ↵Winson Chung2018-02-071-2/+10
| | | | | | | | | | | | recents transition"" This reverts commit bb5d97f00fd5ee64eaac110aa700cec2abf56a20. Reason for revert: Launcher APK is landing shortly. Test: Manual, swipe up to home in multi-window Change-Id: I5d9050e51265bd4ca5ea2c28b7533571d03990f7
* Revert "Exposing content insets and minimized home bounds for recents ↵Winson Chung2018-02-071-10/+2
| | | | | | | | | | transition" This reverts commit 67f31199fb65c4bd89838f826afc00205d2241e2. Reason for revert: Need to wait for the Launcher drop at EOD today Change-Id: I039cd3092d786c62a88f599eb79c0704c6257981
* Exposing content insets and minimized home bounds for recents transitionWinson Chung2018-02-061-2/+10
| | | | | | | | | | | | | | | - In order to calculate the final target rect and window clip for the app currently transitioning into the task view in launcher (similar to how we did in SysUI), we need to provide the content insets and bounds for both the app and launcher (whose activity may not yet have been shown). For the existing recents transition, this was calculated internally in the AppTransition aspect-scaled transition, but now that we are implementing this via remote animations, the same information is needed in the implementation of the recents animation runner. Bug: 70294936 Test: Swipe up from launcher with window transitions when in multi window Change-Id: I2afc6bdfe112cc7bb1b07ba65213653f6f0634f9
* Revert "Revert "2/ Add support for remote Recents animation""Winson Chung2018-01-251-1/+11
| | | | | | | | This reverts commit 9f8518e532e41ba57916afc49bba72bc23ad3eda. Reason for revert: Testing relanding changes with ag/3515280 Change-Id: I410bd752c815a5b998a719453def01e00a9d47c8
* Revert "2/ Add support for remote Recents animation"Jorim Jaggi2018-01-251-11/+1
| | | | | | This reverts commit 0026a5152c427f9cf2c04da2b23a5ece2fcdb36d. Breaks presubmits
* 2/ Add support for remote Recents animationWinson Chung2018-01-241-1/+11
| | | | | | | | | | | | | | | | | - Allow the recents component to drive the animation from an app into Recents using the remote animation framework. When initialized, the animation repositions the recents activity behind the currently visible tasks and provides the set of surface controls for the visible tasks. Once complete, the recents component notifies the system whether it has completed the animation into the recents activity, or whether it should restore the previous state. In addition, there is a prescribed delay after which the system automatically cancels the recents animation. Bug: 70180552 Test: go/wm-smoke Test: Manual, swipe up with suitable launcher build Change-Id: Id32f03c7ad2288dce06231cfaa4b21916da511d7
* Remote animations (app-controlled animations)Jorim Jaggi2018-01-171-0/+151
Adds the ability for another app to control an entire app transition. It does so by creating an ActivityOptions object that contains a RemoteAnimationAdapter object that describes how the animation should be run: Along of some meta-data, this object contains a callback that gets invoked from WM when the transition is ready to be started. Window manager supplies a list of RemoteAnimationApps into the callback. Each app contains information about the app as well as the animation leash. The controlling app can modify the leash like any other surface, including the possibility to synchronize updating the leash's surface properties with a frame to be drawn using the Transaction.deferUntil API. When the animation is done, the app can invoke the finished callback to get WM out of the animating state, which will also clean up any closing apps. We use a timeout of 2000ms such that a buggy controlling app can not break window manager forever (duration subject to change). Test: go/wm-smoke Test: RemoteAnimationControllerTest Bug: 64674361 Change-Id: I34e0c9a91b28badebac74896f95c6390f1b947ab