History log of /frameworks/base/services/core/java/com/android/server/am/TaskChangeNotificationController.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
f1b2ec91903374e5f3835c151ed4fc49b18736f7 05-Jun-2017 Wale Ogunwale <ogunwale@google.com> Added mising sendToTarget message for dismissing docked stack

Toast that an app doesn't support split screen wasn't displaying because
of missing line to actually send the
NOTIFY_ACTIVITY_DISMISSING_DOCKED_STACK_MSG message.

Test: Dock an app and the launch an other app that doesn't support
split-screen and make sure the "doesn't support split-screen" toast
shows up.
Test: go/wm-smoke
Fixes: 62281412

Change-Id: Ia2cb3085b6c6bfd27cf9e825315b8ddc89cf5bcd
/frameworks/base/services/core/java/com/android/server/am/TaskChangeNotificationController.java
b502690e2d0a120993279a6fe800ad07dccc8872 03-May-2017 Winson Chung <winsonc@google.com> Updating Overview to work with PiP

- Ensure that an activity that is auto-entering PiP when hitting Overview
does not show up in Overview. This is done by listening for the
onActivityPinned() callback from the system, and remove the pinned task.
- Ensure that we show the PiP task in Overview after it is dismissed, while
Overview is open. This is done by listening for the onActivityUnpinned()
callback from the system and refreshing the task list similar to when
the multi-window mode changes.
- When launching from a PiP activity, or launching back into Overview where
the next task should be PiP, then ensure that we scroll the stack to the
front so that the first task is fully visible.
- Fix two lingering Overview issues, when there are no handlers (ie. with
dynamically registered handlers), ensure that we call pre/post dispatch
callbacks (otherwise it could cause animated events not to work correctly).
Also, ensure that we don't update the dummy stack view TaskStack without
clearing the stack first, since we may be modifying the same stack
that the activity consumed when starting.

Bug: 34185886
Bug: 38207296
Test: Launch PIP activity from hitting Overview in the various ways
described above
Change-Id: I699e655106e6ed7206e163f9d3c15477bbfd52ef
/frameworks/base/services/core/java/com/android/server/am/TaskChangeNotificationController.java
e6385a23d7d7e0628544c9751c59507d1df7885c 03-May-2017 Winson Chung <winsonc@google.com> Workaround launching PiP task with CLEAR_TASK & NEW_TASK flag.

- When launching an activity with CLEAR_TASK and NEW_TASK, the result code
of the start is START_SUCCESS, but we still need to notify SystemUI to
expand the PiP. However, because the PiP transition now waits for the
first draw, this can cause severe jank and delay if the original activity
is a trampoline activity. As a workaround, we immediately move the task
to the fullscreen stack when clearing and restarting the task to ensure
that the new task shows without delay.

Bug: 37501224
Test: Open YT in PIP, launch sub-shortcut from Home

Change-Id: I16bebf19b082f30695e99da1d93bc4adf5e9df0c
/frameworks/base/services/core/java/com/android/server/am/TaskChangeNotificationController.java
036e3adce72b39ac5baefcf059891d6951206d81 19-Apr-2017 Andrii Kulian <akulian@google.com> Don't put non-resizeable activities on secondary displays

There is a contract that a non-resizeable activity cannot get
a configuration different from the global config (or fullscreen
config on primary display). This CL ensures that for launching on
secondary displays and checks if target display's config matches
the global config.
If a forced-resizeable activity is launched to a secondary display
or there was an attempt to launch a non-resizeable activity that
failed, corresponding toast message will be displayed.

Bug: 36777179
Test: android.server.cts.ActivityManagerDisplayTests
Test: #testLaunchNonResizeableActivityOnSecondaryDisplay
Test: #testLaunchNonResizeableActivityWithSplitScreen
Test: #testMoveNonResizeableActivityToSecondaryDisplay
Change-Id: I5346afe740e78e4e5ba9a9694e97ac60b92663e9
/frameworks/base/services/core/java/com/android/server/am/TaskChangeNotificationController.java
c81c0ce2e903ae469a532e0537b2f882fd81ec6c 17-Mar-2017 Winson Chung <winsonc@google.com> Showing notification when activity is in PiP.

- Adding callback to SystemUI to be notified which package entered PiP,
and when it leaves PiP.
- Showing a BTW notification on a new PiP-specific channel.

Bug: 36070720
Test: Launch PiP, observe notification, leave PiP, observe no notification
Change-Id: Ibe10298288fe0464d7d136f2571e855f3f5c70ea
/frameworks/base/services/core/java/com/android/server/am/TaskChangeNotificationController.java
d95687c3efd84f34d32e3e1637bb7bd7d1a74021 03-Mar-2017 Winson Chung <winsonc@google.com> Removing check for launched-from package to expand PiP.

Bug: 35946309
Bug: 35927986
Test: android.server.cts.ActivityManagerPinnedStackTests
Change-Id: I71ed03dc664a080e93427c6e18a4c1e7ff99d726
/frameworks/base/services/core/java/com/android/server/am/TaskChangeNotificationController.java
85d3998aa39f412f269806114b3e6154ccbee73f 25-Feb-2017 Winson Chung <winsonc@google.com> Prevent PiP movement while the resize animation is running.

- This was causing numerous artifacts when the user starts touching while
transitioning into PiP where the move rects clobber the animating rect.

Bug: 35764922
Test: Try touching the PiP while it is entering or exiting PiP
Change-Id: I5a72b5bea694b01aab401d2bb78a493688a9c655
/frameworks/base/services/core/java/com/android/server/am/TaskChangeNotificationController.java
49affea25bcb669d845672f04b1352871c8aa8f6 17-Feb-2017 Winson Chung <winsonc@google.com> Fix trampoline activities when relaunching PiP

- We should be checking the actual launched-from package since that stores
the source package across trampoline activities

Bug: 35458117
Test: Enter PiP from a trampoline activity, launch again from Launcher
and ensure that it is expanded

Change-Id: Ia0e586e8b21dee63b513bd61a41a24e7da4325e1
/frameworks/base/services/core/java/com/android/server/am/TaskChangeNotificationController.java
a0ad738594476bad17440a0a16ce73de24ca1edf 19-Jan-2017 Winson Chung <winsonc@google.com> Merge changes Iabb33606,I3c364ebe

* changes:
Falling back to media session controls.
Move activity to fullscreen stack when it is relaunched in PIP.
3535df26e36df067b8704443e4a660526fe11e22 18-Jan-2017 Winson Chung <winsonc@google.com> Move activity to fullscreen stack when it is relaunched in PIP.

- Only happens when the caller is not from the same package.

Bug: 33754261
Test: Open a PIP activity, try to launch it again from launcher
Change-Id: I3c364ebe31a7626b9133d9c4c1fafc718c2eecf9
/frameworks/base/services/core/java/com/android/server/am/TaskChangeNotificationController.java
fb9d78afb77b1d304b24f470a637244d52a7e1df 05-Jan-2017 Jorim Jaggi <jjaggi@google.com> Add a listener when task snapshots change

Since we start recents before we take the snapshot, we need to add
a mechanism to inform recents about task snapshots changes.

We add a new method to TaskStackChangedListener,
onTaskSnapshotChanged, which gets called whenever a task snapshot
changes. Then, SystemUI registers such a listener and updates the
task thumbnail view for the specific task.

Test: Open app, press recents, make sure thumbnail is up-to-date
Bug: 31339431
Change-Id: I01e81b9cd11886da734da671c68d5732aa51009f
/frameworks/base/services/core/java/com/android/server/am/TaskChangeNotificationController.java
1329407c624f63eea0509abe01a3ac2da98327d6 06-Jan-2017 Yorke Lee <yorkelee@google.com> Dispatch task change notifications to local callbacks in same thread

Currently, task change notifications are dispatched to the
listeners on a separate thread even if the callback lives in
the system process. As a result, they happen too late to
respond to certain key events in a task's state change.

This CL fixes this issue by tracking local and remote listeners
separately, and notifying local listeners directly instead of
on the handler thread.

Test: Manual - verify that local callbacks delivered to the
TaskWindowPlacer are called in the same thread as the main
ActivityManager thread.
Test: run TaskStackChangedListenerTest
Bug: 33664258

Change-Id: I92f20d539558054368acfa836bd2476e9ae81b33
/frameworks/base/services/core/java/com/android/server/am/TaskChangeNotificationController.java
c41f6ec877309d9c73168ef8cdc277f82eb0d42e 10-Jan-2017 Robin Lee <rgl@google.com> Lock work tasks from SystemUI instead of ActivityStarter

By adding an onTaskProfileLocked(taskId, userId) RPC to
TaskStackListener and routing that through to a new WorkLockController.

Bug: 31001762
Test: //tests/PoApi/src/com/google/android/afwtest/poapi/WorkChallengeTest
Change-Id: I3fd28e6926c3f928e78b3c6ce0fe27413617695f
/frameworks/base/services/core/java/com/android/server/am/TaskChangeNotificationController.java
64fd1ce2568bed344e372ebf36b4861218729c09 06-Jan-2017 Yorke Lee <yorkelee@google.com> Fix for onTaskRemovalStarted callback being sent incorrectly

Bug: 34114125
Test: Manual - onTaskRemovalStarted is not sent when
activity requests different orientation.

Change-Id: I76e907b299ebf95de73e1f4ba142bb9857d6eda4
/frameworks/base/services/core/java/com/android/server/am/TaskChangeNotificationController.java
bd54c2aab6acc50ac415dfc4a7462d12826e8223 25-Oct-2016 Yorke Lee <yorkelee@google.com> Add new methods to ITaskStackListener

Refactor task change notification logic into a separate class
TaskChangeNotificationController.

Add ActivityManagerService.unregisterTaskStackChangedListener

Add a no-op implementation that clients can subclass to avoid
having to reimplement all new methods when they are added.

Add new methods:
onTaskAdded
onTaskRemoved
onTaskMovedToFront
onTaskDescriptionChanged
onActivityRequestedOrientationChanged
onTaskFinishing

Design doc:
https://docs.google.com/document/d/1IgWZ44rKe9k1CzkjP2Mohv12OgRD1FxH8oLAyzhvCY4/edit#heading=h.yhzl6os0dbo5

Cherry-picked from I8302d6d3baf1ac1ca928765fe203091b9fab4070

Bug: 32277482
Test: Verify that callbacks are called in dummy implementations

Change-Id: I2ac2b870147ef049f3ee05fc5916c99332334526
/frameworks/base/services/core/java/com/android/server/am/TaskChangeNotificationController.java