summaryrefslogtreecommitdiff
path: root/core/java/android/app/ActivityClient.java
Commit message (Collapse)AuthorAgeFilesLines
* [3/n] Camera Compat: Refresh activityMariia Sandrikova2022-12-211-0/+9
| | | | | | | | | | Introduce RefreshCallbackItem that allows to "refresh" activity by going through "stopped -> resumed" or "paused -> resumed" cycle. This allows to clear cached values in apps (e.g. display or camera rotation) that influence camera preview and can lead to sideways or stretching issues persisting even after force rotation in DisplayRotationCompatPolicy. Using "stop -> resumed" cycle by default due to higher success rate confirmed with app compatibility testing. But introduce ADB commands that allow trying both. Bug: 218352945 Test: atest WmTests:DisplayRotationCompatPolicyTests Change-Id: Iaca54b197937147f93d52297543b106fd5b97322
* Consolidate mTaskBounds logic to mConfigurationCharles Chen2022-11-241-4/+5
| | | | | | | | | | | | | | | | After the horizontal layout feature, the split layout is not just determined by task bounds, but the whole task Configuration should be take account. This CL removes the mTaskBounds logic and consolidate to use TaskContainer#mConfiguration instead. This CL also introduces ActivityClient#getTaskConfiguration to obtain task config at TaskContainer initialization. Bug: 240219484 Test: atest WMJetpackUnitTests Change-Id: I5725ac92d841c53675c78b9e50e0d3fee3973f37
* Move the task to back while pressing back on the last activityLouis Chang2022-11-161-2/+2
| | | | | | | | | | | | | | | | | | | | ... of the secondary (or the primary) container. The primary container was removed along with the secondary container while the last Activity in the secondary container was finished by back event. Therefore, starting window will be shown if starting the app again from Launcher. However, the last Activity in the secondary container should be considered as a relative task root if the Activity is displayed adjacently or being a companion with the task root activity. The task should be moved to back vs. finishes the Activities to speed up the launch next time, like commit 2dec42fa does. Bug: 240669850 Test: launch Settings Test: atest WindowOrganizerTests Change-Id: I13b33afb8602f63062f6b33742453c3e93fdfc20
* Do not resolve ActivityInfo in navigateUpToJohn Wu2022-10-041-3/+3
| | | | | | | | | | | | During navigateUpTo, it will first resolve the activity before creating the ActivityStarter. This bypasses the explicit intent filter enforcement introduced in T, exposing a security flaw that allows non-matching intents to be delivered to components. Bug: 238602879 Test: atest CtsWindowManagerDeviceTestCases Change-Id: I9aa3e27f753f2f809e74a8f421f8b68e4d610702 Merged-In: I9aa3e27f753f2f809e74a8f421f8b68e4d610702
* Add a dedicated method to check task windowing modeAndrii Kulian2022-07-151-0/+12
| | | | | | | | | | | | | | | | Trying to get a task information via ActivityManager#getAppTasks() will not report tasks that aren't associated with calling package by the root activity package name. For activities that are from a different package the task wasn't found, so the windowing mode couldn't be checked and WM Extensions didn't report any display features. This CL adds a dedicated method to check the task windowing mode for a given activity token. Bug: 236295340 Test: ActivityEmbeddingIntegrationTests#testDisplayFeaturesWithEmbedding_differentPackage Change-Id: If2dbc337c4b8cb909914cc28ae4db28a82ff9de3
* [Partial Screenshare] introduce a hidden, permission-protected Activity APINaomi Musgrave2022-06-071-0/+10
| | | | | | | | | | | | | | | Hidden Activity API allows a component holding permission MANAGE_MEDIA_PROJECTION to declare that the result of setting up the MediaProjection session should be returned immediately to the host VC app. The host VC app will cycle through the resumed state when the activity result is delivered to it, and return to its original state. Manually tested with test MediaProjection app. Test: atest WmTests:ActivityRecordTests Bug: 230607871 Change-Id: Ic85fe8657b9e7f526bbc37a52011d16afa8aef2c
* Send client relaunch event to WMCore.wilsonshih2022-05-131-0/+9
| | | | | | | | | | | | | By sending the local relaunch event to server side, WMCore can keep the starting window when client remove the original window, and because client won't preserve the original window, the result of redrawed view will match the new configuration. Bug: 230998394 Test: launch chrome => swipe to go home => change toggle to either light or dark theme => launch chrome again. Verify the app won't become transparent and the starting window remains on screen until client report finish draw. Change-Id: Ic8f1ebaf0bbaf2b060338ca08a11069481c09b9a
* Invalidate home task snapshot onWakeAndUnlock.Josh Tsuji2022-04-181-1/+7
| | | | | | | | | | | Also, add ability to pass in null to invalidateHomeTaskSnapshot if the correct permissions are held, so that System UI does not need to IPC to Launcher to ask it to invalidate itself. Fixes: 229191103 Test: atest SystemUITests Test: wake and unlock, note no double launcher Change-Id: I0c547639979460b3a85b0ef0a8bbf760d60054cb
* Add shouldDockBigOverlays APIGalia Peycheva2022-03-091-2/+2
| | | | | | | | | | This CLs provides the getter API for DockBigOverlays. To better follow API guidelines, it changes the naming from "*preferDockBigOverlays" to "*shouldDockBigOverlays" Bug: 220739302 Test: atest PinnedStackTests#testShouldDockBigOverlaysWithExpandedPip Change-Id: I25c18531bc1f386b208ab7dde81a8b11a22d03a1
* Add API to prefer docking big overlaysGalia Peycheva2022-02-151-0/+8
| | | | | | | Bug: 216749913 Bug: 203647003 Test: atest PinnedStackTests#testPreferDockBigOverlaysWithExpandedPip Change-Id: I6add690d54b8fb1061a1b5c9e5fe2f856f8019d0
* Make setRecentsScreenshotEnabled publicchaviw2022-02-041-2/+2
| | | | | | | | | | | | Enable setRecentsScreenshotEnabled as a public API to allow apps to disable the screenshot that is shown in recents. There's no need for a getter method because it's only set by the app so it will not be changed by system Test: SnapshotTaskTests Fixes: 166729178 Change-Id: I06f1e4fa62ad50c050b6259e04a4af27cd25be67
* Add option to override background color for animation through ↵Pablo Gamito2022-01-271-3/+3
| | | | | | | overridePendingTransition Test: atest CtsWindowManagerDeviceTestCases:AnimationBackgroundTests Change-Id: I3debc8c1f4646cfd7c20c3f8e57abd465aec23ad
* [2/n] Camera Compat UI: Add interfaces for client-server communication.Mariia Sandrikova2021-12-171-0/+23
| | | | | | | | | | | | | | 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
* getActivityTokenBelow should exclude finishing activityChris Li2021-08-211-1/+2
| | | | | | | | | | | | | This method was introduced in ag/15302841 to check the new launch activity and the activity below. However, when launching an activity into split, the organizer may also call to finish existing activity in split. We don't want to check the split rule with a finishing activity. Bug: 190433398 Test: test with demo app Change-Id: I7f604ddea7c2f68adc3cee52b8872e653d5dad98
* Add hidden ATM method to use in TaskFragmentOrganizerAndrii Kulian2021-07-201-0/+13
| | | | | | | | | | | | | | | | | | | | | getActivityBelow() is necessary to check if a split rule should be applied for two activities on top of each other. This will only report an activity that belongs to the same process. When an application starts an activity B on top of an existing activity A normally, there might be a split rule to put them side-by-side. Organizer needs to know that activities A and B are on top of each other to check, so it can either intercept new activity launch or observe it after it happens and check the rules then. The second approach results in a cleaner implementation, but it also means that the organizer needs a reliable way to check which activity is directly below the launched one. There is no reliable source of info for that on the client side yet. Bug: 190433398 Bug: 190433500 Test: Manual, using the reference implementation of the organizer. Change-Id: I0e0116b1b0144e0ba4d19039d78c34495fbe4457
* Remove TaskInfo#topActivityToken usage in size compat for securityChris Li2021-07-071-13/+0
| | | | | | | | | | | Security report shows that this can cause leak token of different app. Replace the functionality with a callback to the TaskOrganizerController to restart activity when size compat restart button is clicked. Bug: 186776724 Test: manually verify the restart button still works Change-Id: I097b9f02e8435e6765695b9d5a531a4e165bac66
* Do the same size-configuration bucketing on both server and clientEvan Rosky2021-03-151-5/+3
| | | | | | | | | | | Otherwise they get out-of-sync and sometimes AR will not relaunch the app, but the app client will think it needs to be relaunched Bug: 181697795 Test: app configuration tests pass. With 3-button nav, open app in split and observe launcher reconfigure properly. Change-Id: Idc8d71d92d9ae107e3adb949a2137de6c08908e9
* Move launcher activities to the back when back pressed on root taskPrabir Pradhan2021-02-181-2/+2
| | | | | | | | | | | | | | | | | | | | This change partially reverts the back button behavior change introduced in: I48ec35f841ab3b306fe80845150000c390908f5e Instead of always moving the task to the back when the back button is pressed on the root task, we only do it when the activity that is open is a "launcher activity". These are activities that act as the main entry points into an application, indicated with an intent filter with ACTION_MAIN and CATEGORY_LAUNCHER. Bug: 176235889 Test: atest WmTests Test: atest CtsWindowManagerDeviceTestCases Test: manual: flash crosshatch, press back button on a launcher activity, observe task is moved to back; press back on non-launcher activity, observe task is finished. Change-Id: I1cbf85f1a007aeedcb66b9343d182188bacc78e7
* Customizable exit splash screen animation.(2/N)wilsonshih2021-02-151-2/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Introduce new APIs to customize exit splash screen animation. - SplashScreen This can be used for Activity to handle the exit splash screen animation. - SplashScreen#OnExitAnimationListener When receive onSplashScreenExit, the splash screen view will be on top of the activity. - SplashScreenView The view object which represents the view of current starting window. There are two APIs for developer to control it: - getIconView: get the icon view object. - remove: remove the view and release resources. If an Activity create a OnExitAnimationListener and set on SplashScreen, the core will request a copy of SplashScreenView from Shell, then send the parcelable information to client to reconstruct the view on top of the DecorView, then call onSplashScreenExit to let the listener able to operating this view. Bug: 73289295 Test: build/flash, check splash screen starting window. Test: atest StartingSurfaceDrawerTests ActivityRecordTests WindowOrganizerTests Test: atest CtsWindowManagerDeviceTestCases:SplashscreenTests Change-Id: I9f77fb4471bcf37a7f74d6c18a345ca56c05b716
* Move activity related operations to ActivityClientControllerRiddle Hsu2021-01-271-0/+33
| | | | | | | | | | | Including dismissKeyguard, restartActivityProcessIfVisible and invalidateHomeTaskSnapshot. Bug: 174041144 Test: ActivityTaskManagerServiceTests Change-Id: I29b4f626baa2f3d6436e84e5364284fe42e5e7d1 (cherry picked from commit 5408d9af70db95ce3cb854f213c6635dc8ffce35)
* Send ActivityOptions to clientRiddle Hsu2021-01-051-8/+0
| | | | | | | | | | | | | | | | | | | | This removes getActivityOptions from server side. So 2 binder transactions from Activity#performCreate and performStart can be eliminated. The remote animation in ActivityOptions is also separated to another field of ActivityRecord, so when consuming the options, the remote animation won't be affected. Bug: 65202329 Bug: 132432864 Bug: 175409544 Test: WmTests:ActivityRecordTests#testTakeOptions ObjectPoolTests#testRecycleStartActivityItem CtsTransitionTestCases:ActivityTransitionTest CtsUsageStatsTestCases:ActivityTransitionTest Change-Id: I600a9a478a3e596e58b0a8120cfa8b9f32598b47
* Merge "Move launched activity info getter to ActivityClientController"Riddle Hsu2020-12-101-0/+16
|\
| * Move launched activity info getter to ActivityClientControllerRiddle Hsu2020-12-081-0/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | - Add getLaunchedFromUid and getLaunchedFromPackage into Activity because they are used in several places. - Move getActivityClassForToken to ActivityTaskManagerInternal# getActivityName because it is only used in system server. - Remove getPackageForToken because it is no longer used. Bug: 174041144 Bug: 174040691 Test: CtsWindowManagerDeviceTestCases Change-Id: Iac1581ac2271baf1ab1625ced6cc1f42bf05eaf5
* | Send IActivityClientController to client when launching activityRiddle Hsu2020-12-081-4/+25
|/ | | | | | | | | | | | | | | This reduces 2 binder transactions when launching activity: - Get IActivityTaskManager from ServiceManager - Get IActivityClientController from IActivityTaskManager Bug: 174800802 Bug: 174041144 Test: "am start -n ${activity_name} -W -S -P /data/local/tmp/test.trace" There should not have ActivityTaskManager#getService and IActivityTaskManager#getActivityClientController from any methods of ActivityClient. Change-Id: I5ebf8d0764205f338ef53bbb8dfd8b5d0b7f9811
* Move activity client operations to a separate interfaceRiddle Hsu2020-12-021-0/+476
This CL focuses on the methods used by Activity and ActivityThread. Also remove getUriPermissionOwnerForActivity, notifyActivityDrawn notifyLaunchTaskBehindComplete notifyEnterAnimationComplete because they are only used between ATMS and WMS. Bug: 174041144 Bug: 174040691 Test: CtsWindowManagerDeviceTestCases Change-Id: I5a30ec30cf6acd9ae4c908e524141fd17a4e54ff