History log of /frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
325e096855e8c6a2eee2c64e1989c08ebfa43f36 06-Oct-2017 Bryce Lee <brycelee@google.com> Restrict sending new intent to one invocation.

A special condition, where the new intent is delivered outside
the normal logic flow, was extended to included documents as well.
This can lead to any intent marked with the document launch flag
sending the intent in this block as well as the normal flow.

This changelist restricts the number of times the intent can be
sent to once during each activity start.

Change-Id: If1e62527d260cbe5ff170680695b03d9de532c09
Fixes: 67367621
Test: open Photos link in gmail twice
Test: cts/hostsidetests/services/activityandwindowmanager/util/run-test CtsAppTestCases android.app.cts.NewDocumentTest
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
d0084f75837c145466fe26016b09c59b7b270c02 28-Jul-2017 Todd Kennedy <toddke@google.com> Allow applications to define failure handlers

Fixes: 37956764
Test: Manual
Test: Create a test app with no handler, see it's not passed to the installer
Test: Create a test app with a handler, see it's passed to the installer
Test: Create a test app with multiple handlers, see one is passed to the installer
Test: Create a test app with a handler defined in a split, see it's not passed to the installer
Change-Id: Idfc3648154afca7ec300019d9695417274118d6f
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
e676ec7cc3441ec44c1f44c8580fd1031e301f4f 25-Jul-2017 Dianne Hackborn <hackbod@google.com> Always report a uid's initial cached state.

Also fix some activity manager dumpsys output formatting
and respect the -p option for activity starter.

Test: bit CtsAppTestCases:ActivityManagerProcessStateTest

Change-Id: I579fa1120be1481d9675dfcdf0ae9621f0d65893
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
e41a7c80edae40f637725a17c15a01782fd9f27e 25-Jul-2017 Bryce Lee <brycelee@google.com> Merge "Determine power hint behavior based on target activity." into oc-dr1-dev
am: b845700dee

Change-Id: Ic2430d0fd6f9a08d2f5aad612c79611adfa7d6b6
b845700dee4e604751b26a4268377646ee1eb899 25-Jul-2017 Bryce Lee <brycelee@google.com> Merge "Determine power hint behavior based on target activity." into oc-dr1-dev
bfa0ed51105dc3b1a65e25201ffba90a3aabf9dc 24-Jul-2017 Andrii Kulian <akulian@google.com> Merge "DO NOT MERGE Add permission to launch activities on VD" into oc-mr1-dev
28d8042bcd0dcbae1c2ef3d39840477fabe1bfd7 21-Jul-2017 Bryce Lee <brycelee@google.com> Determine power hint behavior based on target activity.

Previously, logic was added surrounding whether to trigger a power
hint based on the start activity. However, this activity is not
always relevant in the calling context.

This change adjusts the logic by passing the target activity into
the method.

Fixes: 63913311
Test: press home button while on home and ensure power hint not
triggered.

Change-Id: I71ffcae7adbc2c55ef5b2994f4c55688d0aa0ca5
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
94e82d9b0e7ee2e657564e5904b556eeefc1d423 14-Jul-2017 Andrii Kulian <akulian@google.com> DO NOT MERGE ActivityView be gone!

This hidden functionality is no longer support/needed since
we now have multi-window/display. A new view group class
will be added later that uses multi-window to support remaining
functionality of this class.

Test: go/wm-smoke
Change-Id: Ie2fa2de92841d33199da9988741905060dd1ddf4
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
02689a78847fa4f8b6077e23b35a2f9b30322036 06-Jul-2017 Andrii Kulian <akulian@google.com> DO NOT MERGE Add permission to launch activities on VD

1. Added permission ACTIVITY_EMBEDDING which allows apps to launch
activities on virtual displays.
2. Allow owner of display to launch activities from same app without
permission check to owned display.
3. Added permission checks for launching on secondary displays to
more target task/stack resolution paths in ActivityStarter.

Bug: 63117330
Test: android.server.cts.ActivityManagerDisplayTests
Test: go/wm-smoke
Change-Id: If169a77fb56241e06f7de20168dc38c4b0a217f5
(cherry picked from commit 71587649836d8e97c2ca00d968fc95293b59b0d3)
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
4ff7da964737331b65419f6f91cad7693f3265fc 17-Jul-2017 Bryce Lee <brycelee@google.com> Ensure home activity always is on home stack.

It is possible to start a home activity on a non-home stack. For
example, an activity that handles the home intent may be started with
via a different intent, landing it on the fullscreen stack. This
becomes problematic later on due to our assumptions about the home
stack state and handling of tasks within it.

To ensure proper behavior, this changelist moves the activity
handling the home intent to the home stack if it is not already
present there.

Fixes: 36606833
Test: Move home activity to fullscreen stack, launch another
activity, press home button.
Test: go/wm-smoke

Change-Id: If88550a24dca3eabc0c60940937e6a1e6f133cae
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
8796c20daeb2d6fbc5b7ffd3fefc8a122ba0e23b 27-Jun-2017 Bryce Lee <brycelee@google.com> Merge "Add aborted start result." into oc-dev
f9d4954f30697c7edfee4c56e1ee641a168d4727 27-Jun-2017 Bryce Lee <brycelee@google.com> Add aborted start result.

Previously, we were returning START_SUCCESS when ActivityStarter
aborted launching the activity. This hides this activity and makes it
harder to debug.

This CL adds a new start result type to capture this internally.

Bug: 38121026
Test: manual
Test: go/wm-smoke
Change-Id: I97699b22b1eff476724c48db0c29daa0566ad280
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
ef49568f0d5db6c76546a81a17c9e90ed7d98136 26-Jun-2017 Bryce Lee <brycelee@google.com> Revert "Add ActivityInfo logging."

This reverts commit 7e84086387cba189bb0c20f9ed17784840a2904a.

Reason for revert: No Longer needed.

Change-Id: Id6a3c66908a0b7b2e6a666f86f30ce05d3964b4b
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
7e84086387cba189bb0c20f9ed17784840a2904a 23-Jun-2017 Bryce Lee <brycelee@google.com> Add ActivityInfo logging.

This changelist adds additional logging around the ActivityInfo used
during startActivity to trace down when the userid changes.

Bug: 38121026
Test: manual
Change-Id: I162f4772845bc2cae585b7e4b027f3cce33439f4
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
454117fe071e262328c72e73ef432a33da7e1a12 23-Jun-2017 Wale Ogunwale <ogunwale@google.com> Dump user id in dumpsys activity starter

To help with ANR debugging.

Test: adb shell dumpsys activity starter
Bug: 38121026
Change-Id: I96d530662e6a362b817df3ca8410cb173a2c0dd4
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
ea0de895bb7e529e66427e106c05309281a4cead 21-Jun-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Added dumsys activity starter" into oc-dev
692dcd64146786ce15c96cf054fb7808dd625667 20-Jun-2017 Wale Ogunwale <ogunwale@google.com> Added dumsys activity starter

Dumps the last state of ActivityStarter to help debug ANR issue.
Also log reason for starting an activity.

Bug: 38121026
Test: adb shell dumpsys activity starter
Change-Id: Ib77ff974b1122946fac96f8835ab3fdfc732cf7b
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
a8fe3dfdfdaed3c7eb31c48f63cfe6f3961e4d40 17-Jun-2017 Andrii Kulian <akulian@google.com> Look on all displays if can't launch on a source secondary one

If an activity is launched from a secondary display but is not
allowed to land on it, then look for a topmost valid launch stack
across all displays.

Bug: 62544886
Test: go/wm-smoke
Test: android.server.cts.ActivityManagerDisplayTests
Test: #testLaunchNonResizeableActivityFromSecondaryDisplaySameTask
Test: #testLaunchNonResizeableActivityFromSecondaryDisplayNewTask
Change-Id: I57470e9ede317f7d492e2b7641a5cb02db13f1b0
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
59bcba6b172b5fafe2d34614bf911fa797818bca 16-Jun-2017 Wale Ogunwale <ogunwale@google.com> Log last home activity and result we tried to start

To help debug ANR.

Bug: 38121026
Test: manual
Change-Id: I484301810d07dcf7330dfdbab7310eac14638b90
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
a19b5ad748ec8d495ee958e7ac48b9e6cba8e5b4 08-Jun-2017 Bryce Lee <brycelee@google.com> Prioritize reused activity's stack over computed stack.

It is possible that an activity in one stack may be reused in
another. For example, if an activity is started from a launcher
intent, but then is started from a home intent (from a
ResolverActivity). We currently do not move the activity, leading
to a inconsistency as the window manager proceeds to position the
task in the focus stack.

This changelist addresses the issue by using the reused activity's
stack rather than the computed stack.

Change-Id: Ie8a099e57e05a20b247bd0c97df8cda69e17c1bb
Fixes: 62402289
Test: go/wm-smoke
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
d9ed45d07af362365a6341babc2ac9822f3e992d 23-May-2017 Bryce Lee <brycelee@google.com> Check for source activity's task presence before referencing.

ActivityStarter guards in all other spots for a null task in the
source activity, which can be the case if said activity is finishing.

This changelist adds the same check to the code when processing a
finishing source.

Change-Id: I78c284f45d96348767d06bb6ce0d78d6b77cb0ad
Fixes: 37428712
Test: manual testing & code inspection
Test: go/wm-smoke
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
1a08d200fbad2959c844c32cc83ebf4da681370b 23-May-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Remove all activities that do not successfully launch." into oc-dev
1ba237d237830bf97b97b1cf1d7bd205b2c4fc90 22-May-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Wait on activity brought to front for trampoline activities." into oc-dev
a3b0e3f0d8319cc0afe5c023ee1578cc8f146486 18-May-2017 Bryce Lee <brycelee@google.com> Remove all activities that do not successfully launch.

We previously were only removing activities that launched with
a fatal result code. Activities that do not start due to a
non-fatal error should also be removed.

Change-Id: I0b38eaaab7e38ed314c6022705170def38e10436
Fixes: 38021882
Test: cts-tradefed run cts-dev --module DevicePolicyManager --test com.android.cts.devicepolicy.DeviceOwnerTest#testLockTask_deviceOwnerUser
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
dfc27c61f46af5e28b4c72c51029c78869134151 18-May-2017 Todd Kennedy <toddke@google.com> Add action to launch intent

Change-Id: Ief861ed349b99619d0458eb7ce1b9edd6679a860
Fixes: 38350785
Test: cts-tradefed run commandAndExit cts-dev -m CtsAppSecurityHostTestCases -t android.appsecurity.cts.EphemeralTest
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
89cd19a4c4d274438ec63f79aae091c37e801f18 18-May-2017 Bryce Lee <brycelee@google.com> Wait on activity brought to front for trampoline activities.

We were previously waiting on a trampoline activity to become
visible when an existing activity (when reused via intent match) was
brought to front. This will never resolve as the trampoline activity
does not become visible.

This CL identifies this situation and properly associates the wait
with the reused activity.

Change-Id: I55f47766e8cdf92e31b4ddd97864cb0f5f3b751a
Fixes: 38030545
Test: cts-tradefed run cts -m CtsServicesHostTestCases -t android.server.cts.ActivityManagerAmStartOptionsTests#testDashW_Indirect
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
7f9368637c8d2726b87cbe184b240512055da037 10-May-2017 Bryce Lee <brycelee@google.com> Introduce result ranges for activity start return results.

The return result from starting activity actually represents two
pieces of information. First, it conveys whether the activity
started. Secondly, it conveys whether there was a fatal error if
the activity did not start. Many parts of the code assume that a
value greater than or equal to the defined success means that the
activity successfully started. This is not the case as there are a
number of results greater than success where the activity does not
start.

This change addresses the issue by introducing three distinct
result ranges. The first represents results where the activity
could not start due to a fatal error. The second represents results
where the activity did not start due to a non-fatal error. The last
range represents successful activity starts. Two convenience methods
have been added to ActivityManager to return whether the result
represents a fatal error and whether the result was successful.

Change-Id: Ifaf844c353641a28b03b3c2d7b6be053fd9b8b44
Fixes: 38021882
Test: cts-tradefed run cts-dev --module DevicePolicyManager --test com.android.cts.devicepolicy.DeviceOwnerTest#testLockTask_deviceOwnerUser
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
303c786927bd646a4ad3b8ec55683e6d6309513b 09-May-2017 Todd Kennedy <toddke@google.com> Don't require BROWSABLE

Initially we wanted to limit instant apps to VIEW/BROWSABLE
intents, but, apparently apps don't always set the BROWSABLE
category. So, allow any VIEW intent w/ a URL to resovle to
an instant app.

Change-Id: I96e25cca8abcbe89b4a227b707112184c19565c6
Fixes: 38146110
Test: Manual
Test: open go/aia-test-links
Test: click any link
Test: notice it launches the instant app directly [instead of going through the installer]
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
9fb50954e15b8e6a96b08ebbac0e92fffc5ac8fe 05-May-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Fixing regression in what is considered a restart attempt" into oc-dev
e0c3d5dd26afea46d3059d30ece80420ab6b80c6 05-May-2017 Winson Chung <winsonc@google.com> Fixing regression in what is considered a restart attempt

- CTS tests can start activities directly in the pinned stack with the
CLEAR_TASK and NEW_TASK flags, so this check should only consider it
a restart attempt if mReusedTask is set, as in
setTaskFromIntentActivity(), otherwise the newly started activity
will be triggered back into fullscreen.

Bug: 37501224
Test: android.server.cts.ActivityManagerPinnedStackTests
Change-Id: Ia37f9d77bfb85882e50271300234bfc6c2969f9a
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
d14e67656f61d35ca4982cbee7aa9692f35fe9eb 05-May-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Don't set the failure extra on split install" into oc-dev
c5e289d4799db7037ff53ae0e10c0b94e7844088 04-May-2017 Winson Chung <winsonc@google.com> Merge "Workaround launching PiP task with CLEAR_TASK & NEW_TASK flag." into oc-dev
1d01f9cf67259c7c2c6a8b882dc59b284d1ff588 04-May-2017 Karthik Ravi Shankar <karthikrs@google.com> Merge "Rename CompatibilityDisplay to Vr2dDisplay" into oc-dev
2b9aaedf6310694de31301659ce604ff195b32ee 01-May-2017 Karthik Ravi Shankar <karthikrs@google.com> Rename CompatibilityDisplay to Vr2dDisplay

CompatibilityDisplay used for displaying 2D activities in Vr world. This
is confusing in more than one way. To clarify what it really means,
rename it to Vr2dDisplay.

Changes in this CL -

- /s/CompatibilityDisplay/Vr2dDisplay
- /s/Compatibility/Vr2d - in CompatibilityDisplay context.

Bug: 37851944
Test: cts/hostsidetests/services/activityandwindowmanager/util/run-test
CtsServicesHostTestCases android.server.cts.ActivityManagerDisplayTests
passes on Marlin.

Change-Id: I0a442302fa9d0f48bbd0c01a7766b94369e04386
Signed-off-by: Karthik Ravi Shankar <karthikrs@google.com>
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
7dd99e3d463eb2354e5ddb0cbeed1333ec590235 04-May-2017 Todd Kennedy <toddke@google.com> Don't set the failure extra on split install

Change-Id: I2f836b5ebc9f377ae8fe0a0d4a60541dd1666011
Fixes: 37852108
Test: Manual
Test: Install and run pico blast
Test: Note that the failure extra is set
Test: Click "New" to install a split
Test: Note that the failure extra isn't set
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
45a5adadbd5a543458229a75241809da0a2bb389 03-May-2017 Fyodor Kupolov <fkupolov@google.com> Merge "Prevent NPE in startActivityUnchecked" into oc-dev
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/ActivityStarter.java
53bac3d9274c0d05dba28067552c44bdafdf920e 03-May-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Only remove task if activity fails to start." into oc-dev
625f4936c95657ddbd98663dc9400e0439907e2a 03-May-2017 Fyodor Kupolov <fkupolov@google.com> Prevent NPE in startActivityUnchecked

Test: manual
Bug: 37931794
Change-Id: I4a968e12cfa99d347f19a8cf2a3b9fba1bf1715b
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
27ed7d4636e8012219247de0a1f1ba979aa58066 02-May-2017 Winson Chung <winsonc@google.com> Only remove task if activity fails to start.

Bug: 37501224
Test: Start activity, go home, start activity again
Change-Id: Ic10183ad1af2e588ad342b0fd8ea4ad0b45adf1d
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
cdfc04e7b1924884fdb641a4f1adc07847e6ba36 28-Apr-2017 Jorim Jaggi <jjaggi@google.com> Fix app transition logging when switching quickly

If an app was set to invisible before the transition started,
which happens when quickly open an app and then closing again
before the animation is starting (only possible if starting
window is slightly delayed), we never receive onWindowsDrawn so we
need to cancel the transition in this case.

Also fixes an issue where the wrong activity was reported as
starting to us in case reusedActivity != null but we'll only reuse
it for the task and not the actual activity.

Test: Open Calendar, press home immediately, open another app, make
sure all logged events and times are correct.
Fixes: 37538546

Change-Id: I5819bd97964ab2dd5cb40b2f4e3bc5a9ac348152
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
0606861de50995e997d7c117e3bab1eb5db06da8 06-Apr-2017 Chad Brubaker <cbrubaker@google.com> Allow apps to provide the Instant App installer extra information

Apps may want to provide additional context information to the instant
app installer in order to allow the installer to make smarter choices
about the context of the launch. This CL adds a bundle to
ActivityOptions that is sent to the Installer (if an Instant App is
launched) but not to any other application if something else on the
device handles the Intent instead.

Bug: 35180854
Test: manual
Change-Id: Ifc69a420a9c68041b39acd8a4b83db8a789822a6
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
b216d0f09f4e16a65383e7f4a1e48ab7ea2c0ffe 22-Apr-2017 Andrii Kulian <akulian@google.com> Merge "Don't put non-resizeable activities on secondary displays" into oc-dev
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/ActivityStarter.java
55337a831aaa9920ed52d3bc41b80c40591222f8 19-Apr-2017 Sudheer Shanka <sudheersai@google.com> Revert "Add new api Activity.getStartInitiatedTime."

This reverts commit bc308988bdcb76d67c80e85183bcfa8128f73890.

Change-Id: Ieaca7c9ec8b4affbb8ce98ebbcb663a531904bf8
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
bc308988bdcb76d67c80e85183bcfa8128f73890 13-Apr-2017 Sudheer Shanka <sudheersai@google.com> Add new api Activity.getStartInitiatedTime.

This api will return the timestamp at which this activity start was last
initiated by the system. Implementation is wip.

Bug: 9058261
Test: cts-tradefed run singleCommand cts-dev -m CtsAppTestCases -t \
android.app.cts.ActivityStartTimeTest

Change-Id: I396458ecefbb09108f414b95f9c0beb6d609a4e1
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
1d8b1afeaf480d6a5c461e1fc10c3dc4b02a64b2 10-Apr-2017 Bryce Lee <brycelee@google.com> Do not set outActivity if value is null.

Recent changes passed down the nullable array to a method where it
was not being properly checked.

Change-Id: Ibf940f9225e4c9901869188aa55a04d0908015c3
Fixes: 37197666
Test: manual via bug repro steps.
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
45539511c04f464019e48a3dc494dea5ba4555d2 08-Apr-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Fix when vr app launches 2d activity" into oc-dev
f29b4c2c43e5c7936927b7ede300d25ebf081d6f 07-Apr-2017 Karthik Ravi Shankar <karthikrs@google.com> Fix when vr app launches 2d activity

When a 2D app is launched from a VR app, since the VR app was on
DEFAULT_DISPLAY, the 2D app is also moved to DEFAULT_DISPLAY. This needs
to be addressed by moving any non-VR 2D app launch in VR mode to the
virtual display.

Bug: 37111307
Test: android.server.cts.ActivityManagerDisplayTests
Test: #testVrActivityLaunch
Test: #testVrActivityReLaunch
Test: #testPostVrLaunch

Change-Id: I83bffe94bb89415a6b3c026dd7077e70fe36fee0
Signed-off-by: Karthik Ravi Shankar <karthikrs@google.com>
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
735a5e1438194ca814dd6b602f71a7b675744896 07-Apr-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Show recents at correct time when starting activity in docked stack" into oc-dev
cd501ecd91bd7016639e8e62d4a739a01971f95c 07-Apr-2017 Wale Ogunwale <ogunwale@google.com> Show recents at correct time when starting activity in docked stack

Previous logic relied on the returnTo type of the task of the activity
we are launching which can get the wrong signal at times because the
original task might have been started from home, but since we are
already in docked mode it shouldn't cause recents activity to be
launched.
We now decide if recents ability should be shown based on if the home
stack is currently visible at the time we started the new activity.
Also, renamed ActivityStack.getStackVisibilityLocked() to
ActivityStack.shouldBeVisible() since it is used to determine if the
stack should be visible and also so it isn't confused with the new
method ActivityStack.isVisible() which returns true if the stack is
currently visible.

Test: manual
Change-Id: I051e72ce93c886d25526af2afef851c95812ab3e
Fixes: 37005549
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
13acf25cfdc0397e16473ae110a980e045da3962 07-Apr-2017 Bryce Lee <brycelee@google.com> Merge "Check component before notifying activity is visible." into oc-dev
eafd9db682c56c80cea19ec24001f5b162db5f0d 06-Apr-2017 Andrii Kulian <akulian@google.com> Add system config to specify Multi-Display support

Added config_supportsMultiDisplay. Devices that have the config set
to false will not allow launching activities on secondary screens.

Bug: 36776777
Test: android.server.cts.ActivityManagerDisplayTests
Test: #testMultiDisplayDisabled
Change-Id: Iebb79044440866b1693897b0b53ccb987b5fd8e0
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
4a19438955ab123a2b0862783fd35b8700b06eef 04-Apr-2017 Bryce Lee <brycelee@google.com> Check component before notifying activity is visible.

ActivityStackSupervisor tracks WaitResults which are waiting for an
Activity to become visible. This is used exclusively by
ActivityStarter to wait for an Activity to be brought to the
foreground before returning. However, there are some cases where
other Activities will report a visible state in between. Without a
qualifier, these would cause the ActivityStarter's WaitResult to be
fulfilled and the wrong information would be returned.

This changelist specifies a component the WaitResult should be
triggered on.

Change-Id: I7c356a8d153ddc24603acc55749e9992f9000c3f
Fixes: 36860122
Test: cts-tradefed run cts -m CtsServicesHostTestCases -t android.server.cts.ActivityManagerAmStartOptionsTests#testDashW_Direct
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
af691c0be7bbfea63e880dd717c51a38a0bc874a 20-Mar-2017 Bryce Lee <brycelee@google.com> Clean up activity/stack associations.

The stack currently holds a reference to resuming and pausing
activities. These are usually cleaned up when the activity ends or
the task is reparented. However, it is possible for an activity to
lose its reference to its task in other areas (such as
ActivityStarter), which can lead to the stack not being updated
correctly.

This changelist adds a method to the ActivityStack to disassociate
the stack from an ActivityRecord. In addition to places where this is
called when an activity ends, this method is invoked on the children
of a task when the task is reparented. The task member variable of
ActivityRecord is also now surrounded by a setter/getter, with the
setter always invoking the dissociation logic on a previous stack.

Test: bit FrameworksServicesTests:com.android.server.am.ActivityRecordTests
Change-Id: Iffeccdb6f011958896271673946acfed28856f53
Fixes: 36387417
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
f04d039584b933c705c7e9d319579d4385bd6cb7 01-Apr-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge changes from topic 'launch-2d-activities-vr' into oc-dev

* changes:
Allow shell uid to access Vr APIs
Add vr persistent mode enable/disable
Launch 2D activities in VR mode
99493dbc94989d4493ca6acb0db265a02f49f62e 09-Mar-2017 Karthik Ravi Shankar <karthikrs@google.com> Launch 2D activities in VR mode

When in VR mode, launch all activities into the virtual display ID as
provided by the Compatibility display. This includes two cases -

- New activity launches
- Existing activity in the background.

Testing Done: Tested with PlanarVirtualDisplay app and Settings,
Calculator and GestureApp with different intent flags.

Bug: 36071574
Bug: 36071445
Test: android.server.cts.ActivityManagerDisplayTests
Test: #testVrActivityLaunch
Test: #testVrActivityReLaunch

Change-Id: Ic590a7cbd6f9b339dc83b22a8ffb1252219ef22e
Signed-off-by: Karthik Ravi Shankar <karthikrs@google.com>
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
0e2056057bc53d75fb48a30e0ec996e27f68f7cc 22-Mar-2017 Matthew Ng <ngmatthew@google.com> Fixes starting app in docked stack for cts tests

Running command "adb shell am start -n <package/activity name> --stack 3"
will allow the app to be docked at the top in split screen and will not
minimize and be positioned incorrectly. Passing the last stack will pass
the stack that was launched from, in this case it is home stack. Then it
will launch recents after app is launched.

Test: adb shell am start -n <package/activity name> --stack 3 and
cts/hostsidetests/services/activityandwindowmanager/util/run-test
CtsServicesHostTestCases
android.server.cts.ActivityManagerAppConfigurationTests
Fixes: 36233172
Change-Id: Ibe171be9160f9070395ac20f5369dc495f235f20
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
5c5bf240335cab81300dde3f1077d7a4c69b87c8 29-Mar-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Move activity to display on launch" into oc-dev
b21be12d9db5d0d85afa26e401813eaa360bd2e0 24-Mar-2017 Todd Kennedy <toddke@google.com> Intercept direct launch of instant app installer

The instant app installer is not designed to be launched directly
by 3p apps. Instead, intercept the launch and make it look like
a "normal" instant app launch.
cherry-picked from I89c9b8c56865e260a2b92f8c2312a305a74f9cf5

Bug: 33073524
Test: Built and notice poorly behaving apps [*cough* keep *cough*] now launch instant apps
Change-Id: I5401aa8423042f54f1478409065b0d6b25cebe89
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
fab9cd89eef609affbed72d780dc2a006d73196f 22-Mar-2017 Andrii Kulian <akulian@google.com> Move activity to display on launch

When an activity is launched with displayId specified and there
is an existing matching task on some other display - that task
should be move to the target display.

Bug: 34396961
Test: android.server.cts.ActivityManagerDisplayTests
Test: #testMoveToDisplayOnLaunch
Change-Id: I18b1f0de320039f4f1ac4e248f048a367f886d29
(cherry picked from commit ede131cce47a1d2ebafd25156e5caf26eb880136)
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
64512526a433ef11dd5a633fca977c7334ac49bb 24-Mar-2017 Yorke Lee <yorkelee@google.com> Only change bounds if new activity is being added to InTask

When going through the setTaskFromInTask code path, there are multiple
scenarios where an activity isn't actually added to the task.

This change makes it such that the task is only resized if an activity
is actually being added to the task make this more semantically similar
to setTaskFromReuseOrCreateNewTask, where the task is only resized if
it is a newly created task.

This is a cherry-pick of
I111353c76e623925af21a34e395e3d5eb9282e8f

Bug: 35945071
Test: manual - setTaskFromInTask doesn't change bounds if
no new activity is added.
Change-Id: I4b8330ce775ec46812f6095c170a690fdea77736
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
c6b91c6514024ea7e2fc475dda6fc509a3a578f0 08-Feb-2017 David Stevens <stevensd@google.com> Prefer to launch activities on the source display

If the Activity was sent by another Activity, the source display is
whatever display the original activity was running on. Otherwise,
the source display is the primary display.

- When looking for a task to launch the activity into, ignore affinity
matches on other displays so we ignore tasks on other displays (when
possible). This is effectively the inverse of LAUNCH_ADJACENT, which
ignores all affinity matches to try to launch into the adjacent stack.
- Bypass LAUNCH_ADJACENT's logic for determining the launch stack if
we're not on the primary display.
- If the focused stack is dynamic, only consider it if the source was on
the same display as that dynamic stack.
- If no particular stack matches, use the source display instead of
defaulting to the primary display.

This behavior also means we don't need to check display access
permissions unless the caller requests a specific display, since the
source is already running on the display and thus has permissions.

Bug: 34230873
Test: android.server.cts.ActivityManagerDisplayTests
Test: #testTaskMatchAcrossDisplays
Test: #testNewTaskSameDisplay
Change-Id: Ic3b4754ffb290f84c3964352105594961604891a
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
59dad4ea14f4bdd9c3b7a646230ec56dd5fb8b37 09-Mar-2017 Bryce Lee <brycelee@google.com> Persist TaskRecord before calling performClearTaskLocked.

A recent change persisted this record with a member variable that
could be cleared as a result of performClearTasklocked. This
changelist resolves this by using a local variable to store the
reference until after the method call.

Change-Id: I6d5d42e06afdbf6e8ff960fcfae71c80abd891f4
Fixes: 36001400
Test: adb shell am instrument -w -e class com.google.android.setupwizard.tests.activity.SetupWizardExitActivityTest com.google.android.setupwizard.tests.activity com.google.android.setupwizard.tests.activity/.SetupWizardTestRunner
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
a485f71fd77302f31daa0d6ae29f6802a61eddcf 06-Mar-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Refactor EphemeralResolverService"
1fb3404b2ba69a823e961bec2d9ed61622107052 01-Mar-2017 Todd Kennedy <toddke@google.com> Refactor EphemeralResolverService

* Change name to InstantAppResolverService
* Left old service in place to handle existing client
[to be removed prior to O launch]
* When resolving phase II, return a list instead of a single item

Bug: 34763730
Test: Build and verify resolution occurs w/ legacy & new resolver service
Change-Id: Ieccaf91538bd91c04f4be4e35d8264619d7cd6d7
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.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/ActivityStarter.java
a6d6e60e0058fa29e5f20e981f13f78ace3e3573 03-Mar-2017 Bryce Lee <brycelee@google.com> Merge "Save TaskRecord before calling performClearTaskLocked."
75323c1889d164fc481f87f124468bce38ed33a8 03-Mar-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Resize task to fullscreen when moving from pinned stack."
41801b43d86bbca4e7b98993d8d573cee75b0ae1 02-Mar-2017 Bryce Lee <brycelee@google.com> Save TaskRecord before calling performClearTaskLocked.

If the activity exists in a task that is in persistent storage, the
task reference will be cleared when its brought to the foreground in
this method. Alternatively, if the activity is finished immediately
as a result of clearing task, the task reference will be lost.

Therefore, we must persist the task reference before calling it.

Change-Id: Id38cf6654f5d4f5b727441048dc6b9a7568b574e
Fixes: 35868563
Test: manual (code and bugreport inspection)
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
aa5e8c3a298e0290a84776a89f85ebab37aea49c 02-Mar-2017 Bryce Lee <brycelee@google.com> Remove activity from task if not set properly.

We do not start an activity in the case of a lock task mode
violation. However, the activity is still associated with the task
and therefore participates in future interactions, such as
visibility checks.

This changelist addresses this issue by removing the assocation in
the case of failures.

Change-Id: Ibf7edd2bd4532de5e7f355311a808ffd21e542e3
Fixes: 35034729
Fixes: 35035258
Fixes: 34179495
Test: cts-tradefed run cts-dev --module DevicePolicyManager --test com.android.cts.devicepolicy.DeviceOwnerTest#testLockTask_deviceOwnerUser
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
7466610e097f310a5df24200c319306ca73e0c2d 23-Feb-2017 Winson Chung <winsonc@google.com> Resize task to fullscreen when moving from pinned stack.

- This was a regression in the original change to move the tasks to the
fullscreen stack when the pinned stack was removed. The task kept its
old bounds, which causes the next animation into the PiP to not run
since the stack bounds are taken from task bounds (which are the old
pinned stack bounds)

Bug: 35326108
Test: run-test CtsServicesHostTestCases
Change-Id: I234910107cf62cc23b2d663161d250b9d59b3934
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
98689f751d0e45797a574499b5732989dfec750b 02-Mar-2017 Bryce Lee <brycelee@google.com> Revert "Remove activity from task if not set properly."

This reverts commit 0f9bde84a1120a17dc73d107fc7bb8e5c8c6e719.

Reason for revert: causing b/35879503

Change-Id: I06402356ecdb559dcb8342f3a6cca755aea6533a
Fixes: 35879503
Bug: 35034729
Bug: 35035258
Bug: 34179495
Test: manual with repro steps
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
353112c604ad7486d253b095a68ed9da9529d384 23-Feb-2017 Bryce Lee <brycelee@google.com> Clear associated task when starting activity in a new task.

In the case that an activity is brought to the foreground with clear
top, we will start it at the top of the source record's task. The
current code sets the task to match the found activity, which will no
longer be the case.

This changelist cleans up this reference so that we do not try to
reparent and instead just add the activity to the task.

Change-Id: Ic7428548fa4972aa19bc9ba890c9edaf2ff31220
Fixes: 35318848
Test: manual by bug repo steps (consistently reproducible).
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
0f9bde84a1120a17dc73d107fc7bb8e5c8c6e719 23-Feb-2017 Bryce Lee <brycelee@google.com> Remove activity from task if not set properly.

We do not start an activity in the case of a lock task mode
violation. However, the activity is still associated with the task
and therefore participates in future interactions, such as
visibility checks.

This changelist addresses this issue by removing the assocation in
the case of failures.

Change-Id: I77692465cb1082478528771fd6fd844fab62f697
Fixes: 35034729
Fixes: 35035258
Fixes: 34179495
Test: cts-tradefed run cts-dev --module DevicePolicyManager --test com.android.cts.devicepolicy.DeviceOwnerTest#testLockTask_deviceOwnerUser
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
e991022423c2e5b4386553af7ef3b54da7c54be1 22-Feb-2017 Todd Kennedy <toddke@google.com> Load splits on-demand

A split may be declared in an application's base manifest, but,
defined in a feature split. When resolving such a component,
invoke the installer to download and install the necessary split(s)

At the moment, this only works for instant apps. However, the
implementation is generic and could be applied to any application.

Bug: 25119046
Test: cts-tradefed run commandAndExit cts-dev -m CtsAppSecurityHostTestCases -t android.appsecurity.cts.EphemeralTest
Change-Id: I6598abb34becfd049fc03199813226736e5057b1
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.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/ActivityStarter.java
8347163dbb64fb61012c0393163283106a0a351e 13-Dec-2016 Winson Chung <winsonc@google.com> Create a new stack for the assistant activity.

- Add a new stack that is not resized with multiwindow, and
appears above the fullscreen and docked stacks, but below
the pinned stack
- Add a method on VoiceInteractionSession to allow the assistant
to launch activities into this new fullscreen stack.
- Also prevent any activities in the assist stack from the
fetching of the on screen assist data.

Bug: 30999386
Test: android.server.cts.ActivityManagerAssistantStackTests

Change-Id: I22ab7629b5f758cf1e66d7d1c26648af6bc887c9
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
069bbd382898d3330d284912b3a472495045c363 03-Feb-2017 Wale Ogunwale <ogunwale@google.com> Removed android.R.attr#onTopLauncher

The product that the feature was intended for never launched, so
removing the complexity from the code base.

Test: builds
Change-Id: I75e60ee2da46f6012f03a6077f77bc6b9acecad5
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
ba7db92d16fa316da34485eb512af89be4ee0784 02-Feb-2017 Winson Chung <winsonc@google.com> Fixing crash when task is already parent of activity.

- When launching an activity into a task, it's parent is already set
which can cause the reparent call to crash. Instead, just move the
activity to the top.

Bug: 34933399
Test: Launch an app that doesn't support multiwindow, and engage split
screen, or launch a PiP activity and tap to show the menu

Change-Id: Iaa36003e88f4021f2483dedc71802023369d6558
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
a0cd15e1a035dd43a2d68d1bf3c6a2a368cb6f2b 02-Feb-2017 Wale Ogunwale <ogunwale@google.com> Addition separation of adding vs. reparenting activity

- Removed method ActivityRecord.setTask which did only half of what
is needed when adding a task and also only did half of what is needed
for reparenting. Previous callers now need to call either
ActivityRecord.reparent() to reparent and activity or
TaskRecord.addActivityAtIndex() to add an activity to a task.
- Fixed some NPE that resulted from the above change.

Test: adb shell am instrument -w -e class
com.google.android.setupwizard.tests.activity.SetupWizardExitActivityTest
com.google.android.setupwizard.tests.activity
Bug: 34179495

Change-Id: Ic69487f51d1bd139825e6a8054a49ce143065a57
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
4403f2fe17da84cac08ce071ea0900cd4e090fe3 30-Dec-2016 Robin Lee <rgl@google.com> Remove setDockedStackMinimized credentials prompt

Reverts functional parts of commit 853304c0b11921db142a3945ab66fae5f0cc7d8a

This lives in a TaskStackListener now, so we just start the prompt for
activity stacks that need it, not for the whole device at once.

Bug: 31001762
Test: make -j20 && Boot, `adb shell service call trust 6 i32 {userid} i32 1`, resize docked stack.
Change-Id: I58be5174e10779f01149de1cd5c2a4db00b98490
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
4acfd858a4fd300e39ab761838227175d8411361 27-Jan-2017 Andrii Kulian <akulian@google.com> Fix issues with launching activities on virtual displays

- Virtual displays might have hdr capabilities not initialized,
which lead to exception when checking.
- Dynamic stacks were mistakenly considered an invalid launch stack.

Test: android.server.cts.ActivityManagerDisplayTests
Change-Id: I20356d6e25cf9e5fa4a3d7bd3699a8e82a73f21a
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
132dffbc83b2dd91218a8e82a4df9e4d2da128ac 26-Jan-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Animate starting work challenge from work lock"
5d59242c2ec590c5bc57744d4a7ab62890cc76c8 18-Jan-2017 Robin Lee <rgl@google.com> Animate starting work challenge from work lock

Bug: 31001762
Test: adb shell service call trust 6 i32 10 i32 1 && adb shell am start -a com.android.systemui.recents.TOGGLE_RECENTS
Change-Id: Ic6c622c32718bd235eb71704881b853072383dba
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
1666e317dc1a17e9435246ec6c8209dbb6ee3696 16-Dec-2016 Wale Ogunwale <ogunwale@google.com> Added StackWindowContainerController

For linking ActivityStack in AMS to TaskStack window container in WMS.

Change-Id: I8b9eaef49e62854d59b22d27f80f5935a5a4d7fc
Bug: 30060889
Test: bit FrameworksServicesTests:com.android.server.wm.StackWindowContainerControllerTests
Test: bit FrameworksServicesTests:com.android.server.wm.TaskWindowContainerControllerTests
Test: Existing test pass and manual testing.
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
6d2fe9e96d821f64537fb9af4ea407bfcbc657bc 24-Jan-2017 Winson Chung <winsonc@google.com> Merge "Remove dependency on resizable activity to enter PiP."
316c2f207914da455a8d610aee6e4bc60e5c8f3a 24-Jan-2017 Todd Kennedy <toddke@google.com> Add versionCode

We need to specify the version code to use when installing
splits since the version on the device might be different
from the latest on the server.

Bug: 25119046
Test: manual
Change-Id: I4ad21f9e5924fcf76a39780e6d98e8d7a1fef5d4
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
d339538a67b7d6bb3d7ad73f31ad20ffc932f891 13-Dec-2016 Winson Chung <winsonc@google.com> Remove dependency on resizable activity to enter PiP.

- Removing the requirement for activities to have both the
resizeableActivity and supportsPictureInPicture attribute
to enter PiP. The activity may still be resized when
entering picture-in-picture.

Bug: 34256643
Test: android.server.cts.ActivityManagerPinnedStackTests
Change-Id: If6bd4721c53072e5518f554a8c7598705517c132
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
4cbec883f103b9c6bf553ef4f77df492287d30dc 21-Jan-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Set permissions for launching on private displays"
fb1bf69d5d7fc8c45e3ddbb8916e21ae57432ff1 17-Jan-2017 Andrii Kulian <akulian@google.com> Set permissions for launching on private displays

- System UIDs must be allowed to launch anything and everywhere.
- Display owner must be allowed to launch activities on it.
- Apps that are already on target display must be allowed to launch
there.
- All other apps mustn't be allowed to launch on private displays.

Bug: 34230873
Test: android.server.cts.ActivityManagerDisplayTests
Test: #testPermissionLaunchFromSystem
Test: #testPermissionLaunchFromAppOnSecondary
Test: #testPermissionLaunchFromOwner
Test: #testPermissionLaunchFromDifferentApp
Change-Id: Ic98005649a6368370c512e822cba4e9decc18ae9
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
0e989d00ed1e95be0ccb77c29846ee0b6ac33356 13-Jan-2017 Todd Kennedy <toddke@google.com> Grant access to ephemeral metadata

When an ephemeral application explicitly accesses an
installed application, it grants access to its package
metadata. The ephemeral application effectively stays
hidden if it doesn't explicitly connect to any activity,
service or provider [i.e. implicit connections using
an ACTION_VIEW/CATEGORY_BROWSABLE intent will not expose
its metadata].

Bug: 34123112
Test: cts-tradefed run commandAndExit cts-dev -m CtsAppSecurityHostTestCases -t android.appsecurity.cts.EphemeralTest
Change-Id: I7e1680902599b3ada0d4fba5998af30566017051
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
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/ActivityStarter.java
059df13f3253dceb9d38c29d708e355221faedab 17-Jan-2017 Andrii Kulian <akulian@google.com> Merge "Add unit tests for 180 degree rotation"
c5cc301689649695e03f502e7d1c1492ef5e5d1e 13-Jan-2017 Wale Ogunwale <ogunwale@google.com> Have better separation between adding, positioning, and reparenting task

Several methods in activity manager and window manager performed adding,
positioning, and reparenting a task operation and sometimes failed silently
when things don't work due the callers using the methods for a particular
operation, but getting a different operation due to programmer error.
This CL better separate the methods responsible for adding, positioning, and
reparenting a task and also fails hard when there is an error.

Test: bit FrameworksServicesTests:com.android.server.wm.TaskWindowContainerControllerTests
Test: Manual testing existing PiP doesn't leave the device in a bad state.
Bug: 34260633
Change-Id: Id64367da30fc6214eb6f95b2bd5e58ed0e953a88
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
cbcadc981b927b13ccc6e76614f5cccc0c0fe402 13-Jan-2017 Winson Chung <winsonc@google.com> Ensure that we always resume task overlay activities if requested.

- Distinguish between task overlays that need to be resumed and
those that should not.

Bug: 34240533
Test: Open PiP, tap to show menu.
Change-Id: Ibdb54d544c501a492260f02cdc2de40c5c1a66d1
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
4ede3e0d0a9e76c701db19e073d2d1ff487d2a64 12-Jan-2017 Andrii Kulian <akulian@google.com> Add unit tests for 180 degree rotation

These tests if an app window token reports resize when device is
rotated from landscape to seascape.
There is also some additional plumbing to be able to perform a
rotation in unit test. Also dynamic stacks are now allowed to
influence the orientation of the device.

Test: bit FrameworksServicesTests:com.android.server.wm.AppWindowTokenTests
Bug: 33607506
Change-Id: I7b23e2de48d56c9fe485eae6a165378dbbbd08bb
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
02886a82d876aa5e31a92444fec70208599c509c 06-Dec-2016 Jorim Jaggi <jjaggi@google.com> Initial implementation of snapshots

All this functionality is hidden behind a flag. If this flag is
active, we disable the regular screenshots.

Instead, we take a screenshot when an app transition for which a
task is disappearing is starting. The screenshot gets stored
into a gralloc buffer. SystemUI uses a new method to retrieve
a snapshot gralloc buffer and then draws it using GraphicBuffer.
createHardwareBitmap().

When starting an existing activity in an existing tasks, or when
bringing an existing tasks to front from recents, we add a new
snapshot starting window. For that, we reuse the existing
starting window, but when creating the window, we use a fake
window that draws the contents of the starting window.

Test: runtest frameworks-services -c
com.android.server.wm.TaskSnapshotControllerTest
Bug: 31339431
Change-Id: If72df07b3e56f30413db5029d0887b8c9665aaf4
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
e1fe7fa288a34ecaaab390f49ef540edc4a6c52d 16-Dec-2016 Wale Ogunwale <ogunwale@google.com> Added TaskWindowContainerController

For linking TaskRecord in AMS to Task window container in WMS.

Bug: 30060889
Test: bit FrameworksServicesTests:com.android.server.wm.AppWindowContainerControllerTests
Test: bit FrameworksServicesTests:com.android.server.wm.TaskWindowContainerControllerTests
Test: Existing test pass and manual testing.
Change-Id: I16248f3e96e5087ba24198a48a3bd10a12ae76a6
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
955da4804e7cc940e7aed93cb2ab1774e5f1cb03 10-Jan-2017 Bryce Lee <brycelee@google.com> Merge "Amend logic for sending power hint on activity start."
834abec877ab33ce189d1c7ff53edcc64fe468f0 10-Jan-2017 Bryce Lee <brycelee@google.com> Amend logic for sending power hint on activity start.

We previously used task boundaries to determine when to send the hint.
This does not properly capture the target use case. Additionally, the
implementation does not identify this condition properly.

The new check is based on comparing the process of the existing resumed
activity in the stack. We will send the hint if the process is changing
or there is no resumed activity.

Bug:32640289
Test: Manual - ran systrace capture script and verified regression
resolved (observed consistently over multiple attempts).
Change-Id: Ie3cdd17773f3466d9b3c7abb6ec5b4093ddc3631
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
bee6422d7cbffde474aaac7d94bfffcaa0c9c126 06-Jan-2017 Robin Lee <rgl@google.com> Don't move-to-front overlays for unresumed tasks

If we do move those tasks to the front, it will annoy the user of the
device because clearly that's not the activity they were using at the
time (otherwise it would have been resumed already)

This is a more generous check than the existing "if !top.visible" which
only prevented the new overlay activity from bringing the task to the
front if it was unresumed AND not visible on the screen.

Now it just has to be unresumed.

Bug: 31001762
Change-Id: I4576aaafa141ef5297f9c18935b747693a80f0fd
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
72919d2c310db04fdb860e926ccb0bfe6e3aef08 09-Dec-2016 Wale Ogunwale <ogunwale@google.com> Untangle creation of Task from addition of AppToken in WM.

Makes it easier to follow what is going on and also clean-up in
preparation of stand way for AM to interact with containers in WM.

Test: Existing tests pass and manual testing
Change-Id: I91754b6d974dce2f696453cdaed175efb0f10c73
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
b5c41b786862618b22e532849ddcca48bdc40025 08-Dec-2016 Winson Chung <winsonc@google.com> Adding ability for an app to request auto-enter picture-in-picture.

- If an activity requests that it can auto-enter PIP, then we will trigger
it to enter PIP when the task is effectively being occluded. This does
not affect the activity when the screen is locking, or if it starts new
activities within its own task, or if it finishes itself, or if there is
already a PIP activity.
- Changed setPictureInPictureAspectRatio to also specify the aspect ratio
to use when auto-entering PIP. If the activity is not PIP'ed and has
not requested auto-enter, then the call continues to fail.

Test: android.server.cts.ActivityManagerPinnedStackTests
Test: #testAutoEnterPictureInPicture
Test: #testAutoEnterPictureInPictureLaunchActivity
Test: #testAutoEnterPictureInPictureFinish
Test: #testAutoEnterPictureInPictureAspectRatio
Test: #testAutoEnterPictureInPictureOverPip

Change-Id: I6477b6d1f160cf0219d935123bbb505f57ee7a56
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
ae1ff4f85ffd12ab8a14c610b1474a012536888f 11-Nov-2016 Matthew Ng <ngmatthew@google.com> Split home stack into home and recents stack

Refactored functionality of home stack (HOME_STACK_ID) in the code
base to home stack and recents stack (RECENTS_STACK_ID). Also changed
function and variable names from homeStack to homeOrRecentsStack.

Differentiating home and recents stack will allow readablilty and
managing logic between home and recents stacks. For example, for
multi-window minimized dock state, the home and recents stacks can
be set to different rects where the home stack needs to be a fixed
large size while the recents stack is hidden and the dock stack is
animating to be minimized.

Fixes: 32839371
Test: ./run-test android.server.cts and manually tested split and
rotation
Change-Id: I7603359c2dc20e35924664178634eb761e0367a6
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
cdc0ddca916e98a74435218a4d2310d6a1931e68 17-Nov-2016 Wale Ogunwale <ogunwale@google.com> Fixed NPE in ActivityStarter.updateTaskReturnToType()

Bug: 30834977
Test: Manual testing of condition in bug.
Change-Id: I4b46a380fa0b52d983965dfb056b461c53afcd05
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
3e12f413d40e55da3d8a964740bc2aa9899c622b 17-Nov-2016 Todd Kennedy <toddke@google.com> Merge "Implement 2-phase resolution"
03c403d273e1c265b141504a44da22bae48a4493 11-Nov-2016 Andrii Kulian <akulian@google.com> Fix minor issues discovered with Multi-Display tests

- NPE when launching activity on secondary display
and there is a docked stack on primary.
- Activities not finished correctly on secondary display
when it is removed.

Change-Id: If527211e8192088790d32b9673b960535e27033f
Test: See ActivityManagerDisplayTests.
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
16802aab212b3b070d361f092d78e850b69b18af 02-Nov-2016 Andrii Kulian <akulian@google.com> Add API to launch activities on secondary displays

displayId can be specified as a part of ActivityOptions.
We will look for a valid stack on the specified display, starting
from the topmost one. If no valid stack is found, new dynamic stack
can be created on external display.
Launch stack and display id can't be set at the same time, otherwise
exception will be thrown.

Test: ActivityManagerDisplayTests
Test: #testLaunchActivityOnSecondaryDisplay
Test: #testConsequentLaunchActivity
Test: #testConsequentLaunchActivityFromSecondaryDisplay
Test: #testLaunchActivityFromAppToSecondaryDisplay
Change-Id: I8a202bc076319e23948d81b99a2c68d7b733b5e4
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
01ad0c7e403794b272494f187d91f57bdfa07c9d 12-Nov-2016 Todd Kennedy <toddke@google.com> Implement 2-phase resolution

Bug: 25119046
Test: build & install the sample resolver and run 'adb shell am start -a android.intent.action.VIEW -c android.intent.category.BROWSABLE -d "https://www.tripadvisor.com/Tourism-g33020-San_Jose_California-Vacations.html"'
Change-Id: I624b9028061aad35db80e0d51bfe0a39fb81806c
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
cd06305852b90ed077f9d0fc2c1a85c8374e937f 09-Nov-2016 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Ensure that focusable stack is focused when starting a new activity."
e5195dd17c5e1d8538049a5282c0d988988f63c8 20-Oct-2016 Todd Kennedy <toddke@google.com> Implement new API

This is the first swack at the new, 2-phase API. Adds the new methods
to the resolver service and makes the split name explicit on the
installer intent.

The 2nd phase will not yet be invoked; that's coming in a follow-on
change.

Bug: 25119046
Test: build & install the sample resolver and run 'adb shell am start -a android.intent.action.VIEW -c android.intent.category.BROWSABLE -d "https://www.tripadvisor.com/Tourism-g33020-San_Jose_California-Vacations.html"'
Change-Id: I2df6fa64d46f17a86a2e32b19417632c594fb10f
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
32066032715f5d162bfc66dcd40d8978f20d8825 04-Nov-2016 Winson Chung <winsonc@google.com> Ensure that focusable stack is focused when starting a new activity.

- When starting a new activity, if the old top activity was not
focusable the focused stack was not updated, leaving the activity
in a non-resumed state. Now, ensure that we focus the stack if
starting an activity allows the stack to be focused.

Test: Enable tap-through in the SystemUI tuner, tap on the activity and
ensure the menu shows.

Bug: 32636739
Change-Id: I8dd964baacd1e7352880ddd2b2324b947cbec556
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
fc46e9b643881b7b2ab76854f3a0ac077e9def8d 22-Oct-2016 Sudheer Shanka <sudheersai@google.com> Move IActivityManager to aidl.

Bug: 30977067
Test: Existing tests are passing, dump commands still working.
Change-Id: I9cf81c4d381ebce14a6c701e409cbb269f2ff1fb
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
fe762344f4475a3a336bb46aef2d59c1fabf32ab 13-Oct-2016 Jorim Jaggi <jjaggi@google.com> The big keyguard transition refactor (1/n)

The heart of this change are two things:
1) Instead of using the force hide mechanism to hide windows behind
Keyguard, we actually make the activities invisible in activity manager.
2) When Keyguard is going away, we change the visibilities in activity
manager and run an app transition.

At the very core we move the responsibility of hiding activities to
ActivityStack, which checks whether Keyguard is showing, and then
hides all non-show-when-locked activities. For that, we need to check
whether any window of an activity has SHOW_WHEN_LOCKED set. We
introduce a callback from WM -> AM in case these Keyguard flags have
changed.

Furthermore, we decide whether to occlude Keyguard in KeyguardController,
which just checks whether the top activity has SHOW_WHEN_LOCKED set. When
this state changes, we prepare an occlude/unocclude app transition, and
in PWM we just inform the Keyguard about the animation so SysUI can play
along this animations in a mostly synchronized manner.

Since we now use an app transition when unlocking the phone, we get
lockscreen launch animations for free - window manager automatically
waits until the activity is drawn, or directly executes the transition
if there is nothing to animate. Thus, we can remove all the infrastructure
around "waitingForActivityDrawn".

The logic to show/hide non-app windows is moved to policy, and we add the
ability to run animations on non-app windows when executing an app
transition.

Test:
1) runtest frameworks-services -c com.android.server.wm.AppTransitionTests
2) Manually test unlocking Keyguard:
2a) Without security
2b) With security
2c) With security but trusted
2d) Portrait while activity behind is in landscape
3) Test launching things from Keyguard
3a) Without security
3b) With security
3c) Launch camera without security
3d) Launch camera with security
3e) Launch camera with securtiy and trusted
3f) Launch voice affordance
4) Set no notifications on lockscreen, drag down, make sure you get
the correct animation
5) Test clicking "emergency" on bouncer
5b) Test "Emergency info" on emergency dialer
5c) Test clicking edit button on emergency info, should show pattern on
Keyguard

Bug: 32057734
Change-Id: Icada03cca74d6a612c1f988845f4d4f601087558
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.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/ActivityStarter.java
4e5278165bdb4fb73dd3040ee13b4ecc8a490a0d 24-Oct-2016 Shigeki Yokomichi <shigeki.x.yokomichi@sonymobile.com> Merge "Avoid NPE around mReusedTask of ActivityStarter" am: f741f88284 am: e79cb5c81d am: 77fc19fa8e
am: 1a1b16f300

Change-Id: Id3e9355cf77c3003b16797bcb5683908fa80d983
e79cb5c81d7e75f29e59e750e8e222d01736c169 24-Oct-2016 Shigeki Yokomichi <shigeki.x.yokomichi@sonymobile.com> Merge "Avoid NPE around mReusedTask of ActivityStarter"
am: f741f88284

Change-Id: I64701d06c2e15b0ad11018c233fce32dce1caa52
0bd28e2c5f7fd7e4448ae489b425e4e5cee57f9a 12-Oct-2016 Shigeki Yokomichi <shigeki.x.yokomichi@sonymobile.com> Avoid NPE around mReusedTask of ActivityStarter

Symptom:
System crash by NPE is observed on ActivityStarter
during phone boot-up.

Detail and sample:
ActivityStarter has possibility to be called itself recursively
by calling TaskRecord$performClearTaskLocked().
Then class variable of mReusedTask is initialized to null
after the call, because the recursive call isn't guarded by
synchronized block.
Then NPE crash occurs on next statement.

Solutions:
Avoid to use the class variable on null possibility statement.

Bug: 32361138

Change-Id: Iaea3e066a6f7134fcae4338ff864bb236241194c
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
1779e6108ab264689b7d5e5c42ba3cbca6c8189f 13-Oct-2016 Andrii Kulian <akulian@google.com> Use ConfigurationContainer for holding configs in AM hierarchy

Extract configuration holding and handling into separate class
and use it both in hierarchy in AM.

Change-Id: I19ca20152f7473af2c4a7bbedeff69422b1454eb
Test: ConfigurationContainerTests
Test: Existing and manual tests still pass.
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
e92c3f639893acbd9994ed50e592bc3109301099 12-Oct-2016 TreeHugger Robot <treehugger-gerrit@google.com> Merge "power: PowerHAL support for HIDL interfaces."
0d43404a07c1372fef71181ab9daa8fa960fdd4c 03-Oct-2016 Ruchi Kandoi <kandoiruchi@google.com> power: PowerHAL support for HIDL interfaces.

Bug: 31177288
Change-Id: I3ce5a71958f47d26855513cf7523922e80dd25d2
Signed-off-by: Ruchi Kandoi <kandoiruchi@google.com>
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
02b7a83b97593bc0c0c459272dca15d2e7ef8dd5 07-Oct-2016 Andrii Kulian <akulian@google.com> Make stack field private in TaskRecord

This is needed to enforce usage of setter - prerequisite
for ag/1499587.

Change-Id: I194008899d8320a213e82b9106f0589f499941b4
Test: Refactoring only. Manual and existing tests still pass.
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
b2d9a6f7231d7965fc30ce8dee0319fbb62ba6d9 30-Sep-2016 liulvping <liulvping@xiaomi.com> Merge "Clear pending activity launches when force stop package" am: 00b678dd2d am: 5b65b132b3
am: 8b1f60a993

Change-Id: I4ddc8198a5b786aea177303492b17f6ec119f6de
8b1f60a99382e65cef379bacefde97e8a84b4662 29-Sep-2016 liulvping <liulvping@xiaomi.com> Merge "Clear pending activity launches when force stop package" am: 00b678dd2d
am: 5b65b132b3

Change-Id: Ie5287b8e3c27ae48c513fed6111cab8914cac4dc
b55e42df971e6ab0cc2b21da14027d40cf2a754e 26-Sep-2016 liulvping <liulvping@xiaomi.com> Clear pending activity launches when force stop package

https://code.google.com/p/android/issues/detail?id=223731

It is possible that an activity in pending launches be resumed while
it's package was stopped by some other reason, like uninstall pkg.

Merged-In: I130ded89cee162aa59ac2bf330f026e49e16ef69
Change-Id: I130ded89cee162aa59ac2bf330f026e49e16ef69
Signed-off-by: liulvping <liulvping@xiaomi.com>
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
cfa825ff66d23da0741dd4ff11921474c4db297a 26-Sep-2016 liulvping <liulvping@xiaomi.com> Clear pending activity launches when force stop package

https://code.google.com/p/android/issues/detail?id=223731

It is possible that an activity in pending launches be resumed while
it's package was stopped by some other reason, like uninstall pkg.

Test: Current tests pass.
Change-Id: I130ded89cee162aa59ac2bf330f026e49e16ef69
Signed-off-by: liulvping <liulvping@xiaomi.com>
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
afada952b16bc91c09da0605e42f6b08b4036f17 23-Sep-2016 Todd Kennedy <toddke@google.com> Pass url to the AIA supervisor am: 52f179fd0e am: c2467b8c68
am: 8a3e8fe185

Change-Id: I0eb3494b91f88718f2bf07c99967441be05d3ce3
52f179fd0eebf6452b2ab2844cfe83bd3ec356b8 22-Sep-2016 Todd Kennedy <toddke@google.com> Pass url to the AIA supervisor

The supervisor needs the URL in order to start the correct AIA.

Change-Id: Ied9b50031b31f6da07196efbccbb27cacda1355f
Fixes: 31664252
Test: manually ran through ephemeral scenario
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
8072d11f6a41a68600a15623ca5316ca0def1856 16-Sep-2016 Andrii Kulian <akulian@google.com> Configuration renaming and minor cleanup in AM and WM

- Configuration members in AM and WM are renamed to
mGlobalConfiguration.
- Renamed parameters names in some methods to better represent
their meaning.
- Added and fixed some docs.

Change-Id: Ie51f687fe4c10dbce776435f29d6b853fda50eec
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
32daa7a95cd49cbedf00c006cf80929518cc5465 08-Sep-2016 Robin Lee <rgl@google.com> DO NOT MERGE Stop work challenge freeform bypass am: 0737c2b4c2
am: ec5ceae174

Change-Id: Ic4bbce08944881f0d20a08c1ebb4db5531208f23
ec5ceae1743b64822cb7ca35d5938109a8beb370 08-Sep-2016 Robin Lee <rgl@google.com> DO NOT MERGE Stop work challenge freeform bypass
am: 0737c2b4c2

Change-Id: Ia76391f710e42e9634010bd211a0370230b318e3
5d9202885b35cacedab1f121673f420c1b8c5f4d 01-Sep-2016 Jorim Jaggi <jjaggi@google.com> Fix bug that apps are not unminimizing if recent tasks are empty am: 936aaeb878 am: c037bb26cb
am: fbe9038d39

Change-Id: I9e67340012a828cb53a0ee64ad61fe6af2c5b904
c037bb26cb38901e012920858ffb393f7658a327 31-Aug-2016 Jorim Jaggi <jjaggi@google.com> Fix bug that apps are not unminimizing if recent tasks are empty
am: 936aaeb878

Change-Id: I30d83528945b04fbb39ebf1ec4b98841a551930a
c8cccdcbd3ea8511b17d58ddbdc4a15e440f7f89 31-Aug-2016 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Fix bug that apps are not unminimizing if recent tasks are empty" into nyc-mr1-dev
936aaeb8781e55e988578e7c8b19e973a37b50f1 27-Aug-2016 Jorim Jaggi <jjaggi@google.com> Fix bug that apps are not unminimizing if recent tasks are empty

If an activity was launched in the docked stack and we weren't able
to retrace the launch back to an activity launch from the homescreen
in activity manager, nothing happened.

Now we try to do a better job by also checking some conditions when
the app transition is starting. Note that this might still be racy,
but in practice all activities are usually launched from the same
process so the app is done starting/finishing any activities when
the first frame is drawn, so we are able to catch the correct state
when we figure out that the app transition is starting.

In addition to that, we also need to not hide the docked stack while
lockscreen is showing. This doesn't make any sense anymore as we are
dismissing the docked stack when we show something above the lockscreen,
and this only lead to issues that triggered app visibility events
which triggered this special unnecessarily. This also fixes some flicker/
race-condition in the normal unlocking process I noticed a long time ago
but couldn't really reproduce.

Change-Id: I42683520ba9ee9fbd0c9920501387a573ac94655
Fixes: 30439313
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
0737c2b4c2ae6415eced00926235f848d1957bae 08-Aug-2016 Robin Lee <rgl@google.com> DO NOT MERGE Stop work challenge freeform bypass

Bypassing work challenge in freeform mode was trivial by just keeping
work apps open in freeform mode and then switching focus to them from
another app.

Because the only interception point is startActivity this never
triggered work challenge.

The solution is to trigger the check on focus change events and also to
allow passing the result back into the freeform stack instead of dumping
our user out into the homescreen.

Change-Id: I141ecf90b5f0e708a21d27141b6fec6074e5d475
Fix: 30693465
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
fea1b776e96d10879769d3a3c17f297146605062 28-Jun-2016 Todd Kennedy <toddke@google.com> Implement new ephemeral resolver design

In the new design, the ephemeral installer can be returned from
queryIntentActivities which means any intent resolution could potentially
return the installer. Additionally, the new design calls for a platform
defined broadcast receiver that receives the status from the ephemeral
installer. This receiver then starts the final intent -- either to launch
the ephemeral application or to launch the fallback.

For more detail, see go/ephemeral-design

Bug: 30805203
Bug: 30273584
Change-Id: I6644bbb4f180d2d22c63af04b9857577516344a9
(cherry picked from commit 8e2d9d1d9050e93b15c54e992698325c7d4aa57c)
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
87761972ee9c07f8baf1f1b868e5ff06bb81eba9 22-Aug-2016 Chong Zhang <chz@google.com> Move okToShowLocked out of ActivityStack

This has nothing to do with stacks, it only depends on activity
flags and current user.

Also use ActivityRecord.okToShowLocked in more places as this
takes into account that the user profile is stopping.

Change-Id: Ieb9aa6b02482f10064390628798375445036489d
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
77df6f315d6fbb22622ca46ae5735a5c73cc367d 17-Aug-2016 Svet Ganov <svetoslavganov@google.com> Remove permission review build property - framework

Change-Id: Ifcfd436f2d57a6006ef804292d2875434e4669da
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
e13e96464e84fda437e416dc5c839de39489ef27 16-Jun-2016 Jiaquan He <hejq@google.com> Add return-to logic for onTopLauncher.

- When an on-top launcher is moved to back, this commit makes sure
that it's moved to the bottom of the home stack, and the home
stack is moved to back.
- This commit also sets the proper return-to type for tasks launched
from an on-top launcher.

Bug: 29393795
Change-Id: If0cfb35d95a5bdab008a6a3809319d3909a56f19
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
ac69be543f89ea6e9a27204492e0a170d9b3450e 30-Jun-2016 Svetoslav Ganov <svetoslavganov@google.com> Add Bluetooth toggle prompts - framework

If permission review is enabled toggling bluetoth on or off
results in a user prompt to collect consent. This applies
only to legacy apps, i.e. ones that don't support runtime
permissions as they target SDK 22.

Also added a configuration resource which controls whether
permission review mode is enabled. By default it is not and
an OEM can change this via an overlay. For now we also keep
the old mechanism to toggle review mode via a build property
which is still used and will be removed when clients have
transitioned.

bug:28715749

Change-Id: I94c5828ad6c8aa6b363622a26ff9da4fc2e2fac7
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
7a39181c6c7542ebfe914a3ce54052f123df9ee4 23-Jul-2016 Todd Kennedy <toddke@google.com> Merge "Implement new ephemeral resolver design"
fedeb43220d382eea48cb8d03aca017558e858b0 22-Jul-2016 Makoto Onuki <omakoto@google.com> Fix realCallingUid/Pid for startActivities() am: d67b187dcc
am: d49251b1c1

Change-Id: I7330866f88a2c24caf01765efa9013c4d66f9650
d67b187dcc5bde21ef9c137529ade4d375f13d4c 22-Jul-2016 Makoto Onuki <omakoto@google.com> Fix realCallingUid/Pid for startActivities()

They now match startActivityMayWait().

Bug 30277795

Change-Id: I883d74bf02cb79a19e2139134aa9be0296787fed
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
8e2d9d1d9050e93b15c54e992698325c7d4aa57c 28-Jun-2016 Todd Kennedy <toddke@google.com> Implement new ephemeral resolver design

In the new design, the ephemeral installer can be returned from
queryIntentActivities which means any intent resolution could potentially
return the installer. Additionally, the new design calls for a platform
defined broadcast receiver that receives the status from the ephemeral
installer. This receiver then starts the final intent -- either to launch
the ephemeral application or to launch the fallback.

For more detail, see go/ephemeral-design

Change-Id: I6644bbb4f180d2d22c63af04b9857577516344a9
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
6cda19cab2bcd6d538f98782bd315c6c7ff5a4d5 15-Jun-2016 Chong Zhang <chz@google.com> Remove mFocusedActivity in AM and only keep focused stack

- Remove mFocusedActivity and replace it with resumed activity
where applicable.

- Remove setFocusedActivityLocked and related recursions, only
keep track of focused stack.

- Update focus app with WM at resume time.

- Some clean up of startActivityUnchecked, make sure each of the
setTaskFromXXX methods set up the focused stack properly, and
remove the extra setFocusedActivityLocked before starting.

bug: 29937415

Change-Id: Ib93d3f4d9cded0aa3b480d0d423435c536b7e7b5
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
15a0299e85c17d07e0015914695ee3b6643b0db0 27-Apr-2016 Daichi Hirono <hirono@google.com> Deliver intent to activity when FLAG_ACTIIVTY_NEW_DOCUMENT is specified.

Previously the condition check to deliver intent to existing activity
misses the case that it goes back to existing activity by
FLAG_ACTIVITY_NEW_DOCUMENT. As a result it does not call
Activity#onNewIntent though API document says it does.

Fixes: 24523281
Change-Id: I7e7138a5939f30569e2b217d037bfadf5aad9b61
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
fc20505e37f9986b7ecc5eaa337d3a49a1db265e 01-Jul-2016 Andrii Kulian <akulian@google.com> Merge "Don't update task to return to type for last task over home" into nyc-mr1-dev
dc0f8933da69f7d462bf256f34f5e9d6dab653f5 29-Jun-2016 Andrii Kulian <akulian@google.com> Don't update task to return to type for last task over home

Resizing docked stack to fullscreen size results in dismissal of
docked stack and moving of tasks to fullscreen stack. When tasks,
which were originally launched from home or recents, are inserted
on top of fullscreen stack, their mTaskToReturnTo value was
overwritten.
This CL doesn't allow to overwrite this field of task if there is
no next task in stack and it was launched from home or recents.

Also this reveals issue b/29342752. When app is moved to PiP mode,
system UI shows another overlay activity in separate task in PiP
stack with hint to user. In ActivityStarter#startActivityUnchecked
some logic assumes that new activity is launched from focused stack.
But PiP stack is not focusable, so we end up thinking that overlay
activity was launched from home stack. This sets mTaskToReturnTo of
overlay task to HOME_ACTIVITY_TYPE instead of
APPLICATION_ACTIVITY_TYPE.
This CL checks if stack id is specified and checks preferred stack
if available instead of currently focused one.

Bug: 29237751
Change-Id: I3a55b84d6a57be758705db51dec60592683e4e02
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
d82efd36dc43f2136212703debc7b48814b1e55f 23-Jun-2016 Andrii Kulian <akulian@google.com> Merge \"Don\'t compare intent filters on singleTask adjacent launch\" into nyc-dev
am: 42147f0ff3

Change-Id: Ie767b54e2622a823d8e2fe2a864d788c3a81df74
039ba48973733b7ca5573ac3ee1eb36341d61ecd 23-Jun-2016 Andrii Kulian <akulian@google.com> Don't compare intent filters on singleTask adjacent launch

Bug: 29578845
Change-Id: Ic1614fc1f321e80ffdc2ab498d720657f393c239
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
6098085ababfc54455c32832fe5034838c975769 22-Jun-2016 Chong Zhang <chz@google.com> Merge \"Unblock \'am start -W\' if activity is brought to front without launching\" into nyc-dev
am: 75c7cc6ca9

Change-Id: I983331f65f03d50c26b7929866e3ce5d5ae19966
5022da313f6b2fbd16e55ebabaadbb308e96e908 22-Jun-2016 Chong Zhang <chz@google.com> Unblock 'am start -W' if activity is brought to front without launching

If -W is used to start an activity successfully, but this activity just
brings another activity to front without actual launching, the waiting
will be stuck because neither activity will report launch complete.

In this case, we have to treat it as if the -W started an activity and
received return code START_TASK_TO_FRONT. It needs to wait for the new
activity to become visible (or report launch complete if it's already
visible).

This reverts earlier commits afb776d5447e19565c9a826a554911decb9ed92a,
since it's causing problems with launch time reporting.

bug: 28333487
bug: 29451567
Change-Id: I9fd79ab5b3ed8f9de5df34ed9c7b0be3a94620b2
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
b809d1cb79b065443a1d8e19b2d5685c7c3383bd 21-Jun-2016 Andrii Kulian <akulian@google.com> Merge \"Compare intent filter when launching adjacent\" into nyc-dev
am: 9980514ee0

Change-Id: I8c2b03438fdeed6bce12489c5639245b79097577
d3bbb13fe29e8b6c931497daeb124669e050b419 17-Jun-2016 Andrii Kulian <akulian@google.com> Compare intent filter when launching adjacent

When we're looking for a task during adjacent launch, we need to
perform full intent filter comparison instead of just comparing
components.

Bug: 29424577
Change-Id: I10f271986a8dc405e28a053e4cb122c1e9aa6ee0
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
ddfeb4a6c2bc97250619175a281746344e7c40d2 16-Jun-2016 Andrii Kulian <akulian@google.com> Merge \"Bring task to front when we can\'t move to adjacent stack\" into nyc-dev
am: 320c15e1b2

Change-Id: Ia0732370e4952d5cbecfb4ed86150eba090fbb49
ad6f2e580f783d5d320d3265bd617adedf55c944 16-Jun-2016 Andrii Kulian <akulian@google.com> Bring task to front when we can't move to adjacent stack

If task was requested to move to adjacent stack with mLaunchStackId set
and FLAG_ACTIVITY_LAUNCH_ADJACENT not set - we don't move it from its
current stack. If the task was covered with other task(s) it wouldn't
be brought to front.
This CL checks if mLaunchStackId is provided and is a valid stack for this
task, then we move it to front of current stack as a safer option.

Bug: 29103549
Change-Id: I3065960f082cfbf9a5b43c6e83b5cebe3dd69df6
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
bf914699d5e24c1eeccd4f687eaa18b84ad1940d 09-Jun-2016 Andrii Kulian <akulian@google.com> Merge \"Don\'t update mTaskToReturnTo when task is cleared\" into nyc-dev
am: 1a77efe9ba

Change-Id: Idb9aad2fb3161552b699f271bed940cb47fd98ad
4b7f2d46be85700b9f1d90c9986a13cc2453156c 09-Jun-2016 Andrii Kulian <akulian@google.com> Don't update mTaskToReturnTo when task is cleared

If activity launch has moved other task that was over home while
clearing task - don't override its mTaskToReturnTo not to loose
the original value of other task.

Bug: 28986980
Change-Id: Ib1680769fbb8a8d99f2b210c8d9cd8fe6fd5a196
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
a4e2bf471221162347d6489d5422f7127860a191 08-Jun-2016 Wei Wang <wvw@google.com> Merge "Add launch power hint for activity launch end" into nyc-mr1-dev
65c7a15833b61bf2a3d193992326a68716f0aca4 03-Jun-2016 Wei Wang <wvw@google.com> Add launch power hint for activity launch end

This change will provide more accurate duration for launch power hint

Bug: 28220567
Change-Id: Ie620b6ce93c72f21b5a6ef2604892bb751b045f3
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
f4b91fe3e18b98e575cf498a5fdbcd8ad9603ce1 03-Jun-2016 Andrii Kulian <akulian@google.com> Merge "Fix task selection logic" into nyc-dev
am: 265bd89c3c

* commit '265bd89c3cb6f99d38d2f126a88c12fc6502431c':
Fix task selection logic

Change-Id: Ic80d782ca53d8cf7a565a9337a686441edbd2c72
265bd89c3cb6f99d38d2f126a88c12fc6502431c 03-Jun-2016 Andrii Kulian <akulian@google.com> Merge "Fix task selection logic" into nyc-dev
02082ad6317d1b53c35b8e6239d4c41dedd5533a 03-Jun-2016 Jorim Jaggi <jjaggi@google.com> Merge "Fix unminimizing dock stack for AppTask.moveToFront" into nyc-dev
am: 6321f42fbe

* commit '6321f42fbee425745de9636d45e4973fa6c470b9':
Fix unminimizing dock stack for AppTask.moveToFront

Change-Id: I82b844611cb1761a681f91e2e26b25308202c6da
206b9faa09ada62ce07026301723805b687e9892 02-Jun-2016 Andrii Kulian <akulian@google.com> Fix task selection logic

When task was selected for activity launched with flag FLAG_ACTIVITY_NEW_TASK
first matching task was omitted if there was another match lower in stack.
This lead to task shuffling in same stack.

Bug: 28848683
Change-Id: I94e55693fc7ed926fc151ba988d257bd2417dd45
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
6afd15641470f174ad27442630563ab4276c6763 02-Jun-2016 Jorim Jaggi <jjaggi@google.com> Fix unminimizing dock stack for AppTask.moveToFront

Some apps call AppTask.moveToFront instead of startActivity from
their trampoline activity. We need to handle this case also and
need to do all the post processing after starting an activity
so the docked stack gets unminimized.

Change-Id: I8400995bf1d1a4a4467d01fd55fca7e5800b4645
Fixes: 28722017
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
2ab4ac38350b51c239fe564bc89727b201036205 01-Jun-2016 Wei Wang <wvw@google.com> Merge "Trigger power hints for activity launch" into nyc-mr1-dev
98f03f98acb4bf8020be21be0f261f3d285b7d2e 18-May-2016 Wei Wang <wvw@google.com> Trigger power hints for activity launch

BUG: 28220567
Change-Id: Id2a0397efd1dd02ee50d5626edaed9e60ea6de8a
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
352d584b20af23a6a99958aafcf8127e6dc09894 19-May-2016 Jorim Jaggi <jjaggi@google.com> Handle trampoline activites in different tasks

When the app uses a trampoline activity that launches in a different
task than the main task, we fail to show recents when the task is
docked and the user launches the trampoline activity from home. Add
logic to handle this case.

Bug: 28368989
Change-Id: Iea29e6cd1a9919da0e856955691fac4792e30604
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
13dbfff19eeee73133c976ef6b23298e271a1985 20-May-2016 Wale Ogunwale <ogunwale@google.com> Put launch adjacent activity in a new task if the activity does exist

For the launch adjacent case we only want to put the activity in
an existing task if the activity already exists in the history.

Bug: 28828326
Change-Id: I1a6fdd6779cb20f8c0d9b7d94635b21718f4ac1b
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
ae13e18c5561537e062f46ddda8e5dff30d1fe26 17-May-2016 Tony Mak <tonymak@google.com> Should check isDeviceSecure in shouldConfirmCredentials

The NPE is because createConfirmDeviceCredentialIntent returns a null
intent when it founds that user does not set a secure lock.
So the fix is we should check is the user set a secure lock screen as well.

The reason the crash only happens in multi-window flow because
we have null checking in
the normal flow (i.e. interceptWithConfirmCredentialsIfNeeded).
But I think we better check it explicitly.

Bug: 28716456
Change-Id: Ib204cd02c0007bd1df36908bb3b5254ec4ffb914
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
6874114a957051cc9f469363e7583994c2966758 17-May-2016 Wale Ogunwale <ogunwale@google.com> Correct activity lifecycle when forcedResize activity is finished

- Regerssion introduced ag/1039265. We still need to resume the
starting activity in a task with an overlay activity is the starting
activity is the overlay activity. Otherwise the activity below it
might not be moved to the paused state.
- Also, we don't want to clear starting window for activities that
aren't behind fullscreen activities as we need to display their
starting window until they are done initializing.

Bug: 28808506
Bug: 28751186
Change-Id: I9a1a5feecea2ed3592a4064fca80e240a3bce387
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
b406dd20eee28eedb8e9f330a0459d630c026515 17-May-2016 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Fixed bugs with starting windows when displayng forcedResized activity" into nyc-dev
3b23239d6ec9ded858d75f272ca1a677c5c431f9 14-May-2016 Wale Ogunwale <ogunwale@google.com> Fixed bugs with starting windows when displayng forcedResized activity

- Added ActivityOption to mark a starting activity as a taskOverlay
activity. That is the activity will always be the top activity of the
task and doesn't cause the task to be moved to the front when it is added.
- Only set the starting window state of the ActivityRecord to shown if
window manager actually showed the starting window for the activity.
Avoids incorrectly trying to remove starting window for an activity that
didn't show any.
- When starting additional activity in a task, transfer the starting
window from the top most activity with a starting window. It is possible
the top most window does have a starting window like in the case of the
forcedResized activity.
- Only ensure visiblity of an activity we are starting in a task whose top
activity is a task overlay. They need to start in the visible-paused state
and not the resumed state which just causes extra churn in the system.
- Always add additional starting activities in a task with an overlay
activity below the overlay activity.

Bug: 28751186
Change-Id: I3624a4313ae9c406d42c67a3537f67ad685791af
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
1e630c08296ec6cc311cc4e1c397f7ca50a1a735 16-May-2016 Jorim Jaggi <jjaggi@google.com> Fix transition delay tracking when starting activity from recents

- Move logic to determine app switch etc. into ActivityMetricsLogger.
- Make sure the notify the tracker in startActivityFromRecentsInner

Bug: 27295491
Change-Id: Ic68058c88917e3f37183dded2f13cb35055323ee
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
ce4db0a17f7063771f413fd606bb05a3ca54cbca 11-May-2016 Fyodor Kupolov <fkupolov@google.com> Call isUserUnlockingOrUnlocked with cleared identity

Bug: 28709934
Change-Id: I61fc31e906c8498f19d6d76cd0dc5f2de9738708
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
b7d513cb47ba872bc3e3d4689a67bd05720f8569 02-May-2016 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Launch home activity in home stack if coming from ResolverActivity" into nyc-dev
1affbbc5932231d5a1fa4563ef0623b4eaaa9cdd 01-May-2016 Wale Ogunwale <ogunwale@google.com> Launch home activity in home stack if coming from ResolverActivity

ResolverActivity launches activities it resolves as the initial caller.
In the case of the home intent it can be sys-ui, but only the system
server is currently allow to launch things into the home stack, so the
resolved home activity is placed in non-home stack. This wasn’t a
visible problem in fullscreen mode as the user would notice since
everything is fullscreen, however it is very visible in multi-window mode.
We now allow home activities to be places in the home stack if it is coming
from the ResolverActivity.

Bug: 28487506
Change-Id: I68f81da68a207efab9ce911fa6661bd573f1e949
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
efef374ccf917d079907dd734aee5590809254f9 01-May-2016 Wale Ogunwale <ogunwale@google.com> Don't move stack to front when creating a task for activity to be started

This causes foucs to move to the current activity in the stack which isn't
needed. Focus will be moved when the new activity is started in the stack.

Bug: 26381750
Change-Id: Ia76962dc5ba3ce336d2a4e074d14db06eebbe78c
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
8c2fb9edae4413074186e3d84ccff0eba41b2cae 28-Apr-2016 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Introduce "unlocking" vs "unlocked" nuance." into nyc-dev
ce18c8167766f92856f94a8e88e19de4698960e6 28-Apr-2016 Jeff Sharkey <jsharkey@android.com> Introduce "unlocking" vs "unlocked" nuance.

There is a narrow window of time during user unlock where we're
reconciling user storage and dispatching the "unlock" status to
various internal system services. While in this "unlocking" state,
apps need to be told that the user still isn't actually "unlocked"
so they don't try making calls to AccountManager, etc.

The majority of internal services are interested in merging together
both the "unlocking" and "unlocked" state, so update them.

Clarify naming in AccountManagerService to make it clear that a local
list is being used, which mirrors the naming in MountService.

To match UX/PM requested behavior, move PRE_BOOT_COMPLETED dispatch
after the user is unlocked, but block BOOT_COMPLETED dispatch until
after all PRE_BOOT receivers are finished to avoid ANRs.

Bug: 28040947, 28164677
Change-Id: I57af2351633d9159f4483f19657ce0b62118d1ce
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
c875ae74ba4cfe255551d1b011866fcca3bbec88 27-Apr-2016 Jorim Jaggi <jjaggi@google.com> Don't move forced resizable info activity to the front

If we start the forced resizable activity with an existing task,
avoid moving that task to the front. This can cause that a previous
task that was moved to the back gets moved to the front again just
because we started that activity. That's not good.

Bug: 28223489
Change-Id: If8acf31b8be98b82665de1015d5621331c37fb64
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
4ccfc30a80d6b63cc938ce3578b19773ca00a2ea 21-Apr-2016 Jorim Jaggi <jjaggi@google.com> Animation fixes when task is not resumed

- Make sure to add the activity to mWaitingVisibleActivities
to not destroy the activity before the app transition has
started.
- Defer layouts in startActivityUnchecked so when clearing the
current activities in the current stack, we don't execute the
app transition yet. We need to wait until the new activities
are added as well.

Bug: 28026847
Change-Id: I252cf139e06197ea34329d1466f1f6162f3e7a30
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
b8c5876dc020959e133c0c7975d8ef65e4d47a27 21-Apr-2016 Jorim Jaggi <jjaggi@google.com> Keep stack from mReuseTask

When we launch an activity with CLEAR_TOP and NEW_TASK, we clear
all the activities in that task but then we don't reuse the stack,
which can lead to weirdness.

To fix this, we need to keep the target stack in that case.

Bug: 28000613
Change-Id: If85ade73b1036e8a7c0eda418d9f39e8596b8b16
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
646fe9913e5f5dda3d03d54ed6c6e9463a4161d0 21-Apr-2016 Tony Mak <tonymak@google.com> Fix wrong app is launched after solving challenge from tapping notification

PendingIntent.FLAG_ONE_SHOT is needed to prevent the PendingIntent being
reused.

Also, flag and activity option of credential intent in BaseStatusBar
is not same as the one in ActivityStarter. Added a new
function startConfirmDeviceCredentialIntent in AM to centralize it.

Change-Id: I2d9e5923ad5d4d012f10057c409c666c8ca299a3
Fix: 28309964
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
4ad9856eb815c03723f9fe5f78518077b9c713c7 20-Apr-2016 Jorim Jaggi <jjaggi@google.com> Disallow changing stacks if top activity

When we attach an activity to an existing
task, and that task is already on top,
disallow changing stacks altogether even
if launch stack id is set.

Bug: 28026847
Change-Id: Ie70f0585a29dc1b85a5093624fede32110be3c76
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
853304c0b11921db142a3945ab66fae5f0cc7d8a 18-Apr-2016 Tony Mak <tonymak@google.com> Show work challenge in if user in docked stack is locked

Register docked stack listener in ActivityManagerService.
If the docked stack is leaving minimized state, check whether the user
of the docked stack is locked. If yes, show credential confirmation.
Also, we now show work challenge in home task.

And we now scan the entire top task to handle the case the work app is
somewhere in the middle of the task. (eg: open personal camera in work app)

Bug: 27565539
Bug: 28094505

Change-Id: Iaf0738f43ae916a535b17949ec0f322bbfb194dc
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
681fc7b2670542aae0f3b9ef8f6c7a88db984ea9 15-Apr-2016 Jorim Jaggi <jjaggi@google.com> Fix wrong transition when dock minimized and docked app launched

When having an app docked and then going home, and then launching
the app from the homescreen, we had a wrong transition because
getTopMost task was already set to the launched app, because
getRunningTasks doesn't exclude the docked stack. Instead of adding
flags for getRunningTasks, which sounds risky, we just pass a "force"
value when we launch recents in this state.

Bug: 27154882
Change-Id: Iee4512fed13115dbbe8b74413ff1fa9b87afa0ef
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
be67c90f4c2255cab3bc036ecdc8d9636ed5e4b5 12-Apr-2016 Jorim Jaggi <jjaggi@google.com> Don't log transition time if no process switch

If the process of an activity that is launching has another
non-stopped activity, the data is not that interesting,
so remove the logging in these cases.

Bug: 27295491
Change-Id: I65d4a0e01b1e634a589ce8ecbbab337f0e6497ca
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
d44063cb3fa0ed0507edf7f17e3b46a50fbe55cf 08-Apr-2016 Chong Zhang <chz@google.com> Fix for activity manager crash due to null task

Use top.task instead of mStartActivity.task, since in case of reusing
top without starting, the latter will not be set.

bug: 28059153
Change-Id: I91ec59203ca9ae650ad1d14fb9a42985a539d597
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
d53f09254ed48365d3a5149d640437d76aed2e5d 07-Apr-2016 Jorim Jaggi <jjaggi@google.com> Dismiss docked stack when opening non-resizable activity

- Also move the toast to SysemUI as a cleanup.

Bug: 27341740
Bug: 28026841
Change-Id: Ic6196ed75511751c6fadb12fa24574c881100f65
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
14810c7e3e5c8153183e36a819779cff4a979c89 28-Mar-2016 Jorim Jaggi <jjaggi@google.com> Fix null pointer exception

- Make sure to use the correct task to get the stack.
- Don't try to show non-resizable toast when we didn't do
anything.

Bug: 27870378
Change-Id: I69fec6aa792c2f05d905a7c99c05ebdc689ad032
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
a3631b6c2d2af863e7cd14c9b311bbb63299329c 26-Mar-2016 Andrii Kulian <akulian@google.com> Merge "Improve stack selection logic during adjacent launch" into nyc-dev
c69bd2246f4ec5000591fdc381f84cd90be85b7f 15-Mar-2016 Jorim Jaggi <jjaggi@google.com> Implement transition for docking task in recents #6

- Use a future to provide the app thumbnail so the app can restart
in parallel when recents draws the bitmap (extremely expensive).
- Don't call startRecents from AM when recents is already running - this
messes up the transition information.
- Make sure to put the task into resizing mode if it needs to be restored
from the disk.
- Some minor fixes for the transition animation spec.
- Add NO_MOVE_ANIMATION to recents flags to prevent wallpaper
flickering.

Bug: 27607141
Change-Id: I7d0c75b88775ab467927b8cf94303ddb60222e7f
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
2adba07d75419462873dfeef40d4c983d832ed99 03-Mar-2016 Jorim Jaggi <jjaggi@google.com> Show a scrim activity if task is not resizable

Add a callback to TaskStackChangeListener which gets fired when the system
might need to inform the user that a specific app might not work in
multi-window.

Use that callback in SysUI to show a translucent activity which scrims the
activity behind to inform that it might not be resizable.

Debounce the information to once per multi-window session, to not make it
annoying.

Introduce launchTaskId to start an activity in an existing task, and protect
that with START_TASKS_FROM_RECENTS permission.

Bug: 27327287
Bug: 27431869
Change-Id: I89e8d653872ab01ba3c1e252b426e5481da0e6ca
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
4ac2a58e52fdd69d81e3e2cbf3fdde685f5467f9 25-Mar-2016 Andrii Kulian <akulian@google.com> Improve stack selection logic during adjacent launch

Adds handling for some cases when activity is launched with flags
FLAG_ACTIVITY_LAUNCH_ADJACENT and FLAG_ACTIVITY_NEW_TASK.

- If target activity is not in focused stack - use current
parent stack.
- If target activity is already on top of focused task - use
focused stack.
- If task is in focused stack but not on top - move to adjacent
stack.

Bug: 27729085
Change-Id: I2041a46056f880dc0ff61b2b7c384c7297a69479
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
e75a9adfbd37f9ec1a9324caceb9d5d7ceed217c 19-Mar-2016 Wale Ogunwale <ogunwale@google.com> Added support to specify animation duration when resizing stack

Needed for sys-ui to control the duration of various Pip transitions.

Bug: 27674339
Change-Id: I7bad27aaa19755a73c594e88b88b56db033e1a45
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
8a372a0a280127743ce9a7ce4b6198c7a02d2a4f 16-Mar-2016 Jeff Sharkey <jsharkey@android.com> Refactoring FBE APIs based on council feedback.

Mostly consists of removing the word "encryption" from most APIs,
since we can't actually make promises about the data being encrypted.

Bug: 27531029
Change-Id: Iace9d7c4e64716abf86ed11847c40f3947e1d625
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
dea4bd980cdede60e3e315a77a879b91e1b1de01 15-Mar-2016 Chong Zhang <chz@google.com> Fix black frame when unlocking device via clicking on notification

- Make sure to tell the app to start drawing if it has been stopped, app
could be stopped in visible state.

- When activity is started with NEW_TASK + CLEAR_TASK flags, skip
resuming of the soon-to-be-removed activity, and run enter animation
directly on the new activity. Resuming the old activity causes delay,
and we also run extra enter-exit transition in short succession which
cause glitches.

bug: 27391256
Change-Id: I390ef9fc9855d70a4a9642c06c87cbe548b8b466
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
8051c5c89060906f5a3a1ca4adb3b53bb423e56b 04-Mar-2016 Wale Ogunwale <ogunwale@google.com> Don't make home stack visible if starting activity isn't translucent

We allow the home stack to be visible right behind the fullscreen
stack if all the activities fullscreen stack are translucent and
visible. However, if we are starting an acitvity it isn't visible
yet so our check for translucent activities in the fullscreen
stack will return true since there is nothing visible. This will
cause the home stack to the visible and the visiblilty of its app
token set to true in window manager and it been factored into the
transition animation.

In addition to checking if the activity is visible, we now also
check if it is the starting activity when trying to determine if
the stack is translucent.

Bug: 27448511
Change-Id: Icbbd57c0632cc5389c7ac894800a41f75d4bc450
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
fb1c86439c7991237594760a957e7eba1d86df52 02-Mar-2016 Wale Ogunwale <ogunwale@google.com> config_supportsMultiWindow for device to specify multi-window support

Devices that have the config set to false will not allow any multi-window
operation.

Also, added ActivityManager.supportsMultiWindow that checks the new config
and also returns false if the device is a low RAM device.

Bug: 27419483
Change-Id: I8dd85c17d290a5a752de3253beb3b34c17d7736d
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
715a1dcffd06e7d27a6c980a0ac8ca935362f08b 29-Feb-2016 Wale Ogunwale <ogunwale@google.com> Use realActivity name when comparing if intents are the same

The TaskRecord intent (usually the intent of the root activity) component
names are based on the realActivity (the activity we are actually launching
and not the input alias) and the ActivityRecord intent is based on the input
component name which can be an alias. This leads to issues when we are trying
to compare the intent of a task and an activity to see if they resolve to
the same thing since the component names will be different in the case of
aliasing.
We know base the activity intent component name on the realActivity before
comparing with the task record intent.

Bug: 27403679
Bug: 27112965
Change-Id: I196e03bb018582cbac977fb3ad45354f00f51578
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
275561a74677f9d6c8f3f2cebc3cfea416ca586d 23-Feb-2016 Jorim Jaggi <jjaggi@google.com> App transition delay tracking

Add TRON logging for all kinds aspects when we execute an app transition.

Bug: 27295491
Change-Id: Icb0cbdb92d4d5fbfedadd40a017a50eb217058aa
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
8882ce5c2da1f06f2c153296ec132e7128a07d1a 24-Feb-2016 Tony Mak <tonymak@google.com> Merge "Should call clearCallingIdentity before accessing getProfileParent" into nyc-dev
134364556ed574bb40e1f20514bb646173d7d849 24-Feb-2016 Tony Mak <tonymak@google.com> Should call clearCallingIdentity before accessing getProfileParent

Bug: 27308833
Change-Id: Ib33fcc0f30dada5f307f45c7c85dce5fb5e4a064
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
ae846f4a15eead9a6e82d5d8668999e724fae36e 22-Feb-2016 Wale Ogunwale <ogunwale@google.com> Fixed bug with non-focusable stack activity not displaying on start.

Activity manager normally singals window manager that it is okay to
start the app transition process for an activity we are launching
during the resume process. However, the activity will not be resumed
if the activity is been launched in a non-focusable stack
(e.g. pinned stack). So, the app transtion will not start and it will
not be visible until the app transition time's out in window manager.
Activity manager now tells window manager to execute app transitions
if we are launching an activity in non-focusable stack.

Bug: 27224884
Change-Id: I35245fceb2637b927e7885b2c02daa1d55deaabb
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
31eb784f89c7642f7e61d7dd8c08622e9269e874 17-Feb-2016 Rob Carr <racarr@google.com> Merge "Fix issue with activity reuse for aliased components." into nyc-dev
8f640757c6d9babc6cc331a0af6ba685ad12babd 16-Feb-2016 Robert Carr <racarr@google.com> Fix issue with activity reuse for aliased components.

In this case of activity aliases, the ActivityRecord intent
member will contain the aliased component name. The TaskRecord
intent member will contain the resolved component name. When
considering an activity for reuse during start, we need to compare
our candidates ActivityRecord intent, not it's TaskRecord intent
as we have not yet resolved the alias.

Bug: 27112965
Change-Id: Ie3a1fb7b306469037372a0328364ca3d4530599e
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
b1b302660cf5b1b1c5b342cc90eca93b8f66890c 09-Feb-2016 Kenny Guy <kennyguy@google.com> Support FBE for managed profiles.

Allow launcher to see and attempt to launch non-crypto
aware application when profile is locked.
Hide unlock notification until parent user is unlocked.
Have unlock notitication use confirm credentials to unlock
the profile.
Updated notification strings as per suggestions in mocks
to make it clearer between users and profiles.

Bug: 27038260

Change-Id: If2d2c8148670d814544f4edd44193d15da32a289
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
480dca0d1b08f8895f66f857e9bd341033fab2d9 06-Feb-2016 Wale Ogunwale <ogunwale@google.com> Reduce jank during pinned stack animation

- Don’t launch Pip overlay activities during pinned stack animation.
This causes extra CPU load and takes a way resources from the running
animation.
- Finish Pip overlay activities before starting pinned stack resize
animation. Reduces the amount of work the system needs to do to keep
the overlays in-sync with the other activities in the pinned stack.
- Use AM.resizeStack with null bounds to take Pip to fullscreen so that
we can animate the bounds changed.
- Also, fixed Activity.enterPictureInPicture API to animate the transition
if Pip is entered from the app instead of Pip manager.

Bug: 25672053
Change-Id: I82399c10f1b8c675ea3861ba973dc8ecfbfbe50f
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
47dae5850d44f67a8cd02115f0f7033fd398e223 02-Feb-2016 Filip Gruszczynski <gruszczy@google.com> Animate pinned stack resize when launching acivity with new bounds.

Bug: 25672053
Change-Id: Idbcbb77c2442d5e35041f757489f0657daad48c9
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
cd872fb2663ff2e1b018ddbe9187f355c066f5cd 01-Feb-2016 Wale Ogunwale <ogunwale@google.com> Merge "Improved logic for determining visiblility of activities in the home stack"
3d7fdc11120869c33d1445c6ed18667008f400df 01-Feb-2016 Filip Gruszczynski <gruszczy@google.com> Ensure visibility of pinned activity when starting it.

Currently we depend on resuming focused activity within the focused
stack to make it visible. This doesn't work for pinned stack, because
neither the stack nor the activity are focused and as a result the
pinned activity doesn't get resumed and made visible. We need to
explicitly force visibility without focusing the stack.

This fixes two issues:
* pinned activity not showing up when launched from a different full
screen stack activity;
* no entry animation when launching the activity from another full
screen stack.

Bug: 26891834
Bug: 25672053
Change-Id: I83065e10a2d237f1a1f26115e94c6648570e1d7f
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
673cbd2b6932b39d6804cda2969b7f059c1ce748 31-Jan-2016 Wale Ogunwale <ogunwale@google.com> Improved logic for determining visiblility of activities in the home stack

- No other activity in the home stack should be visible behind the home
activity. Home activities is usually a translucent activity with the
wallpaper behind them. However, when they don't have the wallpaper
behind them, we want to show activities in the next application stack
behind them vs. another activity in the home stack like recents.

- We don't want any other activities in the home stack visible if the
recents activity is going to be returning to an application activity
type. We do this to preserve the visible order the user used to get
into the recents activity. The recents activity is normally
translucent and if it doesn't have the wallpaper behind it the next
activity in the home stack shouldn't be visible when the home stack
is brought to the front to display the recents activity from an app.

- Also fixed issue with not setting correct return type for tasks
when they don't have Intent.FLAG_ACTIVITY_TASK_ON_HOME flag set.

Bug: 26571156
Change-Id: I45ef795c6a19ab859e9f6204fb059e875ad798c5
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
2a25a62739bca2f93aa91fbba698a6de697032b2 30-Jan-2016 Wale Ogunwale <ogunwale@google.com> Renamed FLAG_ACTIVITY_LAUNCH_TO_SIDE to FLAG_ACTIVITY_LAUNCH_ADJACENT

Per feedback from API council.

Bug: 26508215
Change-Id: Id17166fe981587c9c16c382ccbdf0846ed2ae5d6
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
b9b16a74e5543b7b707e55a7382bbe82d300e2e5 27-Jan-2016 Wale Ogunwale <ogunwale@google.com> Display warning toast when we try to launch unresizeable app in split-screen

Bug: 26774816
Change-Id: Ia85d9d89758041661391018f04feb6f8db4e56d9
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
513346d8f58e13999133872478a966ea4262701f 27-Jan-2016 Wale Ogunwale <ogunwale@google.com> Don't allow non-dockable activities/tasks in docked stack.

Prevent activities and tasks that are not resizeable and don't
support crop windows resize mode from going into the docked stack.

Bug: 26774816
Change-Id: I1fd23114685be15908e80e8bc5a0216d8bfd049e
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
b1faf60b896afe235175354ffd90290ff93a54b4 27-Jan-2016 Wale Ogunwale <ogunwale@google.com> Use resizeMode integer instead of resizeable boolean.

Changes activity manager and window manager to use resizeMode
as defined by ActivityInfo#resizeMode instead of a boolean.

Bug: 26774816
Change-Id: I8cef46d9fba6bfdd21df7da63ed5d5330ad03d4b
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
cc25a8a24ea85409f440c052fdf36dc304cd7111 23-Jan-2016 Wale Ogunwale <ogunwale@google.com> Send notification we attempted to start an already running pinned acitvity

API will be used by Android TV sys-ui to decide what to do next with the
Pinned activity.

Bug: 26452296
Change-Id: I5411515d079468616422ba9e5093164a924cd6a2
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
58d25998321d9f4b1b76d18a5af9d42cdbaad30d 21-Jan-2016 Rubin Xu <rubinxu@google.com> Show dialog when launching work apps is not possible.

There are two cases when this could happen. First is when the work
profile is turned off by the user, and the second is when the profile
owner has suspened the package.

Bug: 22776761
Bug: 22541941
Change-Id: Ibc671e93f87dff0168bb7643494b9d6b45a1a7f9
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
3bcf800c50238ac2df19c9fc0375c303905524b0 14-Jan-2016 Andrei Stingaceanu <stg@google.com> Suspend apps - block

* kill app when suspending
* block starting ONLY activities for suspended apps
* do not allow suspending the device admin package

Bug: 22776761
Change-Id: I3ee5fcb2d6828f363ce0f024dbc662ab29275192
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
08b55823eb3728626e6abc336e9044a50c5cde36 20-Jan-2016 Wale Ogunwale <ogunwale@google.com> Merge "Resize pinned stack with bounds in ActivityOptions."
d49352afd40b521cefae3d2ba6f4ef1aff866de0 20-Jan-2016 Filip Gruszczynski <gruszczy@google.com> Merge "Revert "Temporary logging to debug ActivityStarter crash.""
5ded99777adb734a62f7c367b29f589e72955e48 20-Jan-2016 Filip Gruszczynski <gruszczy@google.com> Revert "Temporary logging to debug ActivityStarter crash."

Bug: 26541093

This reverts commit 7fca6d50a57cbc1a45beca1d5d1e5cd1e696fbef.

Change-Id: I41fb70e79f2da6523c40f09a74d1980cbeb2149e
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
be9dabdc0f279744953c61b8362c27c858fef135 19-Jan-2016 Filip Gruszczynski <gruszczy@google.com> Don't remove task needed for reuse when clearing during activity start.

Bug: 26541093
Change-Id: I4ed39110e9bd72e5f7e11a49acc0a36dc8414df4
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
d3d9ddfa722398d038ad7ecd5e7f55763427c8a4 19-Jan-2016 Filip Gruszczynski <gruszczy@google.com> Merge "Temporary logging to debug ActivityStarter crash."
7fca6d50a57cbc1a45beca1d5d1e5cd1e696fbef 17-Jan-2016 Filip Gruszczynski <gruszczy@google.com> Temporary logging to debug ActivityStarter crash.

Bug: 26541093
Change-Id: Ia2887c1735ea6a5a964c01b63019288b96ef6172
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
ddb96df9217d870a9d8efda98f0af666eda2b484 17-Jan-2016 Filip Gruszczynski <gruszczy@google.com> Fix NPE when checking if recents should be launched in docked mode.

In some cases the activity starting method might return early with
positive return code, even though it skipped doing most of the work
and the target stack is not set. We need to protect ourselves from
an NPE in that case.

Bug: 26541093

Change-Id: I7227ad8efa30c52dd8178ad3c9d8b2263c89a74f
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
3ee3b9d17b2aec84e791f3efa6b9453cab0d9c9b 16-Jan-2016 Suprabh Shukla <suprabh@google.com> Merge "Keeping only running users recents in memory"
09a88f5f3e7d4a3bbfce04ac06594ac590c67d27 02-Dec-2015 Suprabh Shukla <suprabh@google.com> Keeping only running users recents in memory

Currently, all the users' recent tasks are loaded into memory and kept
in sync with the persistent storage. This changes the system so
that it loads a users recents into memory lazily (i.e. when
getRecentTasks is called for that user) and unloads them from the
memory as soon as the user is stopped. This also required bucketizing
the taskIds per user, so that the next available taskId can be assigned
without having knowledge of all the tasks that are stored away in
persistent storage but are not available in memory.
Bug-Id: b/24569398

Change-Id: Ia5cb64d9f4ee727225dce34e45ca63e946ac27a8
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
cacfaa216a599522190545b27c54e44ec9533f05 15-Jan-2016 Wale Ogunwale <ogunwale@google.com> Resize pinned stack with bounds in ActivityOptions.

If an activity is been launched into the pinned stack and
there is a bounds specified in the ActivityOptions, use it to
resize the pinned stack.

Bug: 26574470
Change-Id: I43c15069b8512ce54cfde6cc16f5caa2a70bd06a
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
0e381e278a2c2a3a7c86c9951ac5cbcdc3a186f4 15-Jan-2016 Filip Gruszczynski <gruszczy@google.com> Fix visible-behind not visible for translucent activity in fullscreen stack.

Bug: 26471802
Change-Id: Ide9945c4478805902ca0df92dc2043359a751600
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
dce2d161701f318ec71f8fe8de03031e1c4b0046 13-Jan-2016 Filip Gruszczynski <gruszczy@google.com> Only request stack resize after non full screen bounds were set.

Also make sure that the bounds passed to stacks and tasks are not bogus,
as these would mess up the configuration.

Bug: 26512887
Change-Id: I1a3a9c867a2c258a326b31df2bac614ccbb00579
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
e826f327cfdba8b4957c835d45aaf4f657e87cd5 12-Jan-2016 Filip Gruszczynski <gruszczy@google.com> Deliver onNewIntent before onResume when launching recents.

Bug: 25837292
Change-Id: I9da5d2a87c0e33006ef1488dfab5389911955922
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
303210bbdd2740a9b94ba9a9c10188acd950068f 09-Jan-2016 Filip Gruszczynski <gruszczy@google.com> Start recents when bringing docked task to the front.

We don't want the docked activity to be on top by itself, so we need to
force the recents to come up to.

Bug: 25838525
Change-Id: Icb8184db5cc67e536561674b887bf481595257cc
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
ea9b10e64419edbd5d3ed13f82007ffed97af418 04-Dec-2015 Clara Bayarri <clarabayarri@google.com> Work Challenge: Handle Recents launches

Intercept calls to start activities from the recents
stack and show the Work Challenge if needed. This requires
passing the taskId to ConfirmDeviceCredential so it can
launch the recents task itself when the credentials are
confirmed.

Change-Id: I013b134f3f31a35b551ad683c68cc89b8af44499
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
01d665686e669b94f0259b83728ba5bb6562e3b8 29-Dec-2015 Wale Ogunwale <ogunwale@google.com> Refactored ActivityStarter#startActivityUnchecked to make it easier to follow

Change-Id: I7566e69206753601fbc7b126da8b5db4891a955f
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
854809c074aabebf5b6520c361d1d3c7c22066d2 28-Dec-2015 Wale Ogunwale <ogunwale@google.com> Added hidden API for specifying launch stack in ActivityOptions

Bug: 26273032
Change-Id: Ifb9c70e6783b0426613709693e11742d80ba2fc3
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
6cae765b67d3a3b37e2cacbc9816665b5bc080b9 26-Dec-2015 Wale Ogunwale <ogunwale@google.com> Added support for android.R.attr#alwaysFocusable

Allows an activity to always be focusable regardless of if it is in a
stack whose activities are normally not focusable. For example, activities
in pinned stack aren't focusable. This flag allows them to be focusable.

Also, changed ActivityInfo.#{resizeable, supportsPip} to use flags.

Bug: 26273032
Bug: 26034613
Change-Id: I8c63e6d3256757e2e6931e08b8a65269f5169d35
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
d046a013921c2ac67318c1543a8b7b9c83b40d65 24-Dec-2015 Wale Ogunwale <ogunwale@google.com> Consolidate resume activity code around focused stack.

Cleaned up the code to make it obvious that only the top
activity in the focused stack should be in the resumes state.

Bug: 26273032
Change-Id: I8d60270f707fe022007c59d25f5678b33a005acf
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java
07a0e4980b43d7f3ef8cf7a62592baca0d78a853 17-Dec-2015 Filip Gruszczynski <gruszczy@google.com> Collect activity starting logic into ActivityStarter class.

Change-Id: If1c074d6c278647ec55f2313483945f24aca8b3b
/frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java