History log of /frameworks/base/services/java/com/android/server/am/ActivityStackSupervisor.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
97024321fcff3427e4e1cc6ced9b6abc7525fdb0 20-Mar-2014 Craig Mautner <cmautner@google.com> Move task to top in window manager.

In certain situations it was possible for a task to move to the top
in activity manager but not in window manager. This resulted in
the task appearing behind the launcher icons.

Fixes bug 13410184.

Change-Id: If0582b395e126a8aff70a0e4c64b731083c6ae8a
/frameworks/base/services/java/com/android/server/am/ActivityStackSupervisor.java
3026d0bf0a4d89788cdc29573dcecb2bd72b263c 12-Mar-2014 Dianne Hackborn <hackbod@google.com> Fix issue #11965706: Calls using IntentChooser are now Broken in 4.3 and 4.4

The activity manager needs to set launchedFromPackage to be that of
the previous package in the case where flow has been redirected
through an intermediate activity.

Change-Id: I678fc2e7d984991ac715251a784ba7d7ccbf9fca
/frameworks/base/services/java/com/android/server/am/ActivityStackSupervisor.java
8862929e2a5ae4936083b6d7ac7e908df256a885 11-Nov-2013 Craig Mautner <cmautner@google.com> Use old task info when creating new task.

When a new task is being created solely to protect the system from an
old task going away, save the info from the old task and use it when
creating a new task.

Fixes bug 11615548.

Change-Id: Ibc3fd15ec4b0d76bce30381fbd83b6899f6a9023
/frameworks/base/services/java/com/android/server/am/ActivityStackSupervisor.java
db92608de9b4acccee1e3232264c9830ad300c4f 01-Nov-2013 Dianne Hackborn <hackbod@google.com> Fix issue #11168649: LRU logic for Chrome renderers seems...

...not to work on KitKat (was: Janky exit animation)

Reworking the LRU list (splitting it into an activity vs. empty
section) accidentally broken the old behavior of "client activity"
processes being prioritized with activity processes. In fact, we
were no longer marking "client activity" processes at all.

In this change, we rework how we manage "client activity" processes
by putting them on the main activity LRU section. This is generally
simple -- ActiveServices now keeps track of whether a process is
a "client activity" process based on its bindings, and updateLruProcess
treats these as regular activity processes. However, we don't want
to allow processes doing this to spam our LRU list so that we lose
everything else, so there is some additional complexity in managing
that list where we spread client activity processes across is so
that the intermingle with other activity processes.

The rest of the change is fairly simple -- the old client activity
process management is gone, but that doesn't matter because it wasn't
actually running any more. There is a new argument to updateLruProcess
to indicate a client process it comes from (since we now need to update
this based on bindings) which is just used to limit how high in the
LRU list we can move things. The ProcessRecord.hasActivities field is
simply removied, because ProcessRecord.activities.size() > 0 means the
same thing, and that is actually what all of the key mechanisms are using
at this point.

Finally, note there is some commented out code of a new way to manage
the LRU movement. This isn't in use, but something I would like to
move to in the next release so it is staying there for now for further
development.

Change-Id: Id8a21b4e32bb5aa9c8e7d443de4b658487cfbe18
/frameworks/base/services/java/com/android/server/am/ActivityStackSupervisor.java
b53d97c4571f8ed09e92eee64301969b96ff1e4d 25-Oct-2013 Craig Mautner <cmautner@google.com> Change order of operations so flag is not overwritten

The effects of the flag, Intent.FLAG_ACTIVITY_TASK_ON_HOME was being
overwritten by the call immediately after it was set. Changing the
order of operations leaves the effect intact.

Fixes bug 11376962.

Change-Id: I27371e0efeb0c08d1e14514a9e3a63157f6d34d8
/frameworks/base/services/java/com/android/server/am/ActivityStackSupervisor.java
2d76a1a068839ac677e909ba8555fe812eaea841 23-Oct-2013 Dianne Hackborn <hackbod@google.com> Merge "Fix issue #11323037: Android apk incorrectly marked as running in app processes" into klp-dev
237cefbcee8721e3268ba778297a0ad48e67f079 23-Oct-2013 Dianne Hackborn <hackbod@google.com> Fix issue #11323037: Android apk incorrectly marked as running in app processes

The android package is now a special case, not being added to the package list
when creating a multi-process component. There is no need, since this package
is actually the framework itself which must be loaded in every process.

Also cleaned up some of the procstats dump output to help see what is going
on here.

Change-Id: If65d35ecd562f3154bdebfded69c454af6ce8c96
/frameworks/base/services/java/com/android/server/am/ActivityStackSupervisor.java
d1bbdb462afd280a599b3914bbf4256201641f35 22-Oct-2013 Craig Mautner <cmautner@google.com> Make sure mFocusedStack is never the home stack.

There were circumstances where mFocusedStack could be assigned the
home stack. If this were ever to occur then all subsequent tasks would
be put on the home stack. This fix ensures that there is no way that
mFocusedStack will ever be assigned to the home task.

Fixes bug 11271189.

Change-Id: I7ddd9b6bcbf2787cbe2f44b461ad057ae2241f00
/frameworks/base/services/java/com/android/server/am/ActivityStackSupervisor.java
2a272d42a38035e60a8fd53d74c1c56a363b635e 16-Oct-2013 Dianne Hackborn <hackbod@google.com> Fix issue #11217255: Setup Wizard ANR when adding new user profile from settings.

Two problems addressed here:

- If a call to startActivity() comes in on an activity that is finishing, we can
end up putting the new activity in a stack that isn't actually in use any more
(if the finishing activity is the last one on that stack). This is a bad case,
anyway, so if this happen the treat it as not being called on an existing
activity and switch to NEW_TASK to find a task for it.

- There was a bug in handling PACKAGE_CHANGE broadcasts that would result in the
app's processes being killed, even though the cleanup through the activities
was done. This could leave the activity stack in a bad state. Fix this to
correctly provide an app id for the changing package so that its processes are
killed.

Change-Id: Iece04e0cf95025c3d30353d68bf3d14fd39d44c3
/frameworks/base/services/java/com/android/server/am/ActivityStackSupervisor.java
4270ebc7db8fcc42b64286c38ad84189e6a5b9e4 16-Oct-2013 Craig Mautner <cmautner@google.com> Merge "Remove debug logging." into klp-dev
a7f2bd4da736b48a2f23335d90475db4fee4ffbb 16-Oct-2013 Craig Mautner <cmautner@google.com> Remove debug logging.

Change-Id: I5d7c11e8b8525bfc8eb87bb0fff4f71337b4a39d
/frameworks/base/services/java/com/android/server/am/ActivityStackSupervisor.java
4f1df4faed1300699bdda4ac9435532c0743ecf8 16-Oct-2013 Craig Mautner <cmautner@google.com> Restore window manager stack order on user switch.

Only the activity stacks were being restored. Also add needed debug
logs.

Fixes bug 11223831.

Change-Id: Ief42688721c49e8cea14277619c797bf7c25b859
/frameworks/base/services/java/com/android/server/am/ActivityStackSupervisor.java
8e5695778f736e5fd8a82d7485967f3f21a94ccc 12-Oct-2013 Craig Mautner <cmautner@google.com> When removing a task that was on home, put home on top.

Killing an app that was launched from home was not relaunching home.
Previous situations relaunched the next app (i.e. home) based on the
task flag. However, when an app dies the relaunch is deferred until
the TaskRecord has long been forgotten. This fix rearranges the stacks
immediately upon the TaskRecord being removed from the stack. Then the
next resumeTopActivities() call will start the home task.

Fixes bug 11189555.

Change-Id: I0e09350a7db55ea8b38cce7bf4b69923a6b99494
/frameworks/base/services/java/com/android/server/am/ActivityStackSupervisor.java
760b2314d90bfe8afc4aafb7039b1de617897e10 11-Oct-2013 Craig Mautner <cmautner@google.com> Add test for topmost home stack activity being home.

And restarts home if test fails.

Fixes bug 11118615.

Change-Id: I3b6c544d479b467f10febff512798c2db8e32f74
/frameworks/base/services/java/com/android/server/am/ActivityStackSupervisor.java
ade5f387fa3e1c7d0de16a3d80fb8e3d5105a39b 06-Oct-2013 Craig Mautner <cmautner@google.com> Merge "Revert to jb-mr2 handling of app died." into klp-dev
dd88879ce19332a5905699bc008504fd43d983d7 06-Oct-2013 Craig Mautner <cmautner@google.com> Merge "Evaluate task on top of home when task is brought to front." into klp-dev
1909125ebab026fff1836a93b9b14ea62f404d22 05-Oct-2013 Craig Mautner <cmautner@google.com> Revert to jb-mr2 handling of app died.

Trying to span all potential stacks looking for apps was too complex
and error-prone. Extending the jb-mr2 method across multiple stacks.

Fixes bug 11080696.

Change-Id: I6391ceae4ad6a0955a409c3fb27472219fd5bf6b
/frameworks/base/services/java/com/android/server/am/ActivityStackSupervisor.java
93529a475e4935aa78599556a5c1a18d9425d8c2 05-Oct-2013 Craig Mautner <cmautner@google.com> Resume user where they left off.

Remember which stack was in front when the user changes. Restore that
stack when the user changes back. Remove user state when user is
deleted.

Fixes bug 11068986.

Change-Id: I18dfbc35a0c2e21e7a4024227cbfc5ba1208b3a3
/frameworks/base/services/java/com/android/server/am/ActivityStackSupervisor.java
9c85c201a2a2d9743f50ca70c5f55a8471616d3f 05-Oct-2013 Craig Mautner <cmautner@google.com> Evaluate task on top of home when task is brought to front.

Localize the point where it is determined whether a task should sit on
top of home or return to the task below it.

Fixes bug 11080913.

Change-Id: I79d1ea9722c867d6b550ddfcd1db35517a79cd90
/frameworks/base/services/java/com/android/server/am/ActivityStackSupervisor.java
323f78001d86e626fe2a62e404f893b6cd847b1f 02-Oct-2013 Craig Mautner <cmautner@google.com> Add debuggging for 10858941.

Change-Id: I0517ccd9a83ef19a9002d61dbebf36d0120e1f63
/frameworks/base/services/java/com/android/server/am/ActivityStackSupervisor.java
51277a85216b2ebbd2df858b1ba190976a4b917b 01-Oct-2013 Craig Mautner <cmautner@google.com> Fixes to handleAppDiedLocked.

- Call in all circumstances but only set launchHomeTaskNext for
focused stack. Previous version didn't call handleAppDiedLocked for
non-focused stack.

- Rearrange logic to run down the top task and make sure that all
remaining activities belong to the dying app. Previous version just
looked at the top non-finishing activity and based its behavior on
that.

Fixes bug 11029560.

Change-Id: Ic3a7c873c4c975577d6b390a8955ff41729bdfde
/frameworks/base/services/java/com/android/server/am/ActivityStackSupervisor.java
5a0c54a5112612777becd7a0f12f74cf720c1b7f 29-Sep-2013 Craig Mautner <cmautner@google.com> Merge "Remove home package name methods." into klp-dev
80259355739a53106ea2b2beb39a326fd5ee35fc 28-Sep-2013 Craig Mautner <cmautner@google.com> Remove home package name methods.

Do not use the shortcut of the package name to identify the home
activity.

Fixes bug 10963726.
Fixes bug 10920950.

Change-Id: I725781a26672b055a816994aee6ea458a7f07c88
/frameworks/base/services/java/com/android/server/am/ActivityStackSupervisor.java
6b74cb5df5810b670155611cfad88ed3e3fac820 28-Sep-2013 Craig Mautner <cmautner@google.com> Centralize handleAppDied and fix return to home.

The home activity was being returned to when any activity in a task
that was launched from home crashed. If there were still activities
left in the task then the crash should have brought up those
activities next, not home.

This may be a partial fix for crashes where the back stack was showing
up under launcher icons. Bug 10858941.

Change-Id: I840a25bd8395bfce46f4e21b112d78b12884706d
/frameworks/base/services/java/com/android/server/am/ActivityStackSupervisor.java
5314a40b96c7c3ecc0dafeda387efe49a5c434e4 26-Sep-2013 Craig Mautner <cmautner@google.com> Revert behavior to perform onResume.

Back out changes from CLs ag/363992 and ag/363859. These introduced
the bugs found in bug 10917435 which is now fixed. Note that backing
out these changes reintroduces bug 10732489.

Change-Id: Ic5105dd4cfc8bf79c6f06188283d1ee3680c370c
/frameworks/base/services/java/com/android/server/am/ActivityStackSupervisor.java
2acc389d6197f8b099e7d72ea944ccbf14065761 23-Sep-2013 Craig Mautner <cmautner@google.com> Pause activities behind keyguard after boot.

Following boot the initial activity was automatically resumed even if
a lockscreen is obscuring it. Refer to CL 363859 for why this breaks
things.

This fix pauses all activities the first time a lockscreen appears.

Completes the fix for bug 10732489.

Change-Id: I6fcac14b574c495aa0e16d798cddc1263c6b4c25
/frameworks/base/services/java/com/android/server/am/ActivityStackSupervisor.java
10385a17cb31de6fdf495b50d17a0afbec83e98e 23-Sep-2013 Craig Mautner <cmautner@google.com> Ensure that activities behind keyguard are paused.

TLDR: Having a resumed activity behind keyguard can cause the keyguard
not to be dismissed.

Swiping the home button to launch Google Now causes an ASSIST intent
to be launched. The ASSIST intent starts SearchActivity which then
launches GEL. If an activity is resumed behind the keyguard when this
happens then that activity will be paused.

Because that activity is PAUSING, ActivityStackSupervisor
startActivityLocked() doesn't call dismissKeyguard() immediately.
Instead dismissKeyguard will be called later when GEL switches from
not-visible to visible. However, if the paused activity happens to be
GEL then there is never a not-visible to visible transition and
dismissKeyguard never gets called.

This fix removes an unnecessary call to resumeTopActivitiesLocked
which was causing activities behind the lockscreen to be resumed.

This fixes bug 10732489 except immediately after boot. Pausing the
initial activity if the lockscreen is visible after boot is deferred
for another CL.

Change-Id: I323262596ae41bc5a2700bae5942f6a4fba80936
/frameworks/base/services/java/com/android/server/am/ActivityStackSupervisor.java
722b15e00065bebfd711a34123a64b1c4a65d8f7 20-Sep-2013 Amith Yamasani <yamasani@google.com> Merge "Fix a regression in pausing activity immediately on sleep" into klp-dev
70817c479aa05778733d9afc809c311e8030b000 19-Sep-2013 Dianne Hackborn <hackbod@google.com> Merge "Implement issue #10691475: Kill cached processes if about to..." into klp-dev
3bc8f78d7a3d23a67c06221cc41292d04a2fd439 19-Sep-2013 Dianne Hackborn <hackbod@google.com> Implement issue #10691475: Kill cached processes if about to...

...be uncached and too large

When the device is in a low RAM state, when we go to pull a cached
process out to use for some background operation, we can now kill
the current process if we consider its size to be too large.

Note that the current implementation for killing processes is to
just use the same killUnneededProcessLocked() method that we already
have for other things like too many cached processes. This is a
little wrong here, though, because in this case we are at the
point where the caller is actually looking for a process to use.
This current code is not actually removing or cleaning up the
process, so we still need to return the now killed ProcessRecord
and let things fall out from there, which typically means the caller
trying to make an IPC on it and failing and falling into its "oh
no the process died unexpectedly" path. All code using this
*should* be able to handle this correctly, anyway, since processes
really can be killed at any time.

At some point we may to make this implementation cleaner, where it
actually tears down the process right in the call and returns a
null ProcessRecord. That is very dangerous however (we'd need to
go through all paths into this to make sure they are going to be
okay with process state changing on them like that), and I'm not
sure it is really worthwhile. This intention is that killing
processes like this is unusual, due to processes being too large,
and anyway as I wrote all of our incoming code paths must already
be able to handle the process being killed at this point and one
could argue this is just another way to excercise those code paths.
Really, the main negative to this is that we will often have spam
in the log with exceptions about processes dying unexpectedly.
If that is the only issue, we could just add some conditions to
quiet that up at in this case.

We don't want to compute the size of the process each time we try
to evaluate it here (it takes 10s or ms to do so), so there is now
a new field associated with the process to give us the last pss
size we computed for it while it was in the cached state.

To be able to have better cached pss data when we now need it, the
timing for computing process pss has been tuned to use a much
shorter delay for the situations when the process has first switch
into a new state. This may result in us having a fair amount more
pss data overall, which is good, as long as it doesn't cause us to
be computing pss excessively and burning cpu.

Procstats now also has new state to keep track of the number of
times each process has been killed by this new system, along with
the min, avg, max pss of all the times it has happened. This has
slightly changed the checkin format to include this additional data
at the end of pkgkills/prockills lines.

Other changes here:

- Fixed a problem where GPU RAM was not being seen when dumping
the full RAM details of a process. This was because in that
case the system would ask the process to compute its own MemInfo,
which it returned, but the process doesn't have permission to
access the files containing the GPU RAM data. So now the system
always computes the MemInfo and hands it to the app.

- Improved broadcast delays to not apply the delay if the next receiver
of the broadcast is going to run in the same process as the last
one. A situation I was seeing was an application that had two
receivers, one of which started a service; we are better off letting
the second receiver run while the service is running.

- Changed the alarm manager's TIME_TICK broadcast to be a foreground
broadcast. This really should have been anyway (it is supposed to
go out even minute, on the minute, very accurately, for UI elements
to update), and is even more important now that we are doing more
things to delay background broadcasts.

- Reworked how we maintain the LRU process list. It is now divided
into the two parts, the top always containing the processes holding
activities. This better matches the semantics we want (always try
to keep those around modulated by the LRU order we interleave with
other cached processes), and we now know whether a process is being
moved on the LRU list because of an activity operation so we can
only change the order of these activity processes when user operations
happen. Further, this just makes that common code path a lot simpler
and gets rid of all the old complexity that doesn't make sense any
more.

Change-Id: I04933ec3931b96db70b2b6ac109c071698e124eb
/frameworks/base/services/java/com/android/server/am/ActivityStackSupervisor.java
ce15e157a6cf56fc73961ccb8c5ab18b1bf70280 19-Sep-2013 Amith Yamasani <yamasani@google.com> Fix a regression in pausing activity immediately on sleep

At some point during refactoring of ActivityStack, the code to pause the current
activity got deleted. Added back that line of code. Activity will now pause
as soon as the screen is turned off, rather than after 5 seconds (sleep timeout).

Bug: 10632898

Change-Id: If3cc8708d692d29a13dbd8cfd9edda8883b38c2e
/frameworks/base/services/java/com/android/server/am/ActivityStackSupervisor.java
7908f19015632bd593965b7a3ac9c685ab23d85f 19-Sep-2013 Craig Mautner <cmautner@google.com> Merge "Debug for b/10689184." into klp-dev
e8a9422495d6af9fc68cf4e838a4a5f19177034b 19-Sep-2013 Craig Mautner <cmautner@google.com> Merge "Return tasks in correct order." into klp-dev
b3370cec719ccfe09c9fc83edc2dd2f833df3945 19-Sep-2013 Craig Mautner <cmautner@google.com> Debug for b/10689184.

Change-Id: I67b7a4bd7fb902b0d0275af0665625593dc1af00
/frameworks/base/services/java/com/android/server/am/ActivityStackSupervisor.java
c0fd8052349976fe0e9422f702e30e5030a0adde 19-Sep-2013 Craig Mautner <cmautner@google.com> Return tasks in correct order.

Fixed ActivityManager.getRunningTasks().

Fixes bug 10705790.

Change-Id: Ia3f66e592e08a87896a1ab59f980618ec5310dfe
/frameworks/base/services/java/com/android/server/am/ActivityStackSupervisor.java
4ef2693a243b308fad775a8a1691963c51ac925e 19-Sep-2013 Craig Mautner <cmautner@google.com> Revert back to a single home app in mHomeProcess

The idea of multiple processes serving as home was unfeasible.

- Revert "Allow for more than one home app." commit
e428a7f662f109a5f2015008e3161df23932483e.
- Assign ActivityManagerService.mHomeProcess to the process of the
root activity of the home task.

Addresses bug 10342471.

Change-Id: Ifb494626107d24de1306e320a18206d5b176a7c0
/frameworks/base/services/java/com/android/server/am/ActivityStackSupervisor.java
ae7ecab400374f083718995454ec03e5e57b7203 18-Sep-2013 Craig Mautner <cmautner@google.com> Move flag for home launching from activity to task.

The variable ActivityRecord.mLaunchHomeTaskNext was used to indicate
that the home task should be launched when the activity completed.
This only mattered when it was at the end of a task. As the activity
launched other activities within the same task it needed to be
migrated from activity to activity and task to task. This became
too complicated and was at the wrong level to begin with.

By moving the flag to TaskRecord.mOnTopOfHome the logic is simpler
and the results more predictable.

Fixes bug 10602256.

Change-Id: If0b752522b77be9918f1dba221d0ff670fc01af8
/frameworks/base/services/java/com/android/server/am/ActivityStackSupervisor.java
7504d7b24a07fef05b3447d843f212796e22302f 17-Sep-2013 Craig Mautner <cmautner@google.com> Fix parenthetical error.

Mis-grouping of && and || from CL ag/360551.

Fixes bug 10798273.

Change-Id: Idbc77e03d09f7ad5fcf1a5de98c6c14f0c63a6e4
/frameworks/base/services/java/com/android/server/am/ActivityStackSupervisor.java
7dd9fdfca096f914a090c9fde91e7a4d3407d08a 16-Sep-2013 Craig Mautner <cmautner@google.com> Put next task on top of stack if top is finishing.

In the case where the top task is finishing and another task is
launching make sure that the next task will be launched once the
top task actually completes pausing.

In the case of b/10550460 the top task, Dialtacts, was finishing
but had not yet completed pausing. It was configured to return to
the home screen (mLaunchHomeTaskNext true) but because its finishing
flag was set all the tests we have thought that the InCallActivity
task was the top task. When it finally did complete the
mLaunchHomeTaskNext flag caused the home activity to be started
instead of the InCallActivity.

If the InCallActivity task had been moved above the Dialtacts task
at the time it was judged to be the top task the home activity
would not have been launched when Dialtacts completed. This fix
moves the judged top task over the finishing top task.

Fixes bug 10550460.

Change-Id: I14052ad2282008679b560dd7fb16b216664ec24d
/frameworks/base/services/java/com/android/server/am/ActivityStackSupervisor.java
a82aa09ba3b8cada49f0b20777e7502e86bb0248 14-Sep-2013 Craig Mautner <cmautner@google.com> When launching home activity, make sure it is top.

Because recents sits on the same stack as launcher it can sometimes be
above launcher. When we were launching home activity because the flag
told us to we would sometimes launch recents instead. This fix makes
sure that the home activity is on the top when it is supposed to be
launched next.

Previously this was fixed by having recents move itself to the back
of the stack after it launched an activity (b/9750207 and ag/336019).
But that solution caused the AppTransition to be set to
TRANSIT_TASK_TO_BACK which left the SOFT_INPUT_IS_FORWARD_NAVIGATION
flag unset. This in turn caused IMEs to remain unlaunched when
returning from recents (b/10240567).

Fixes bug 10240567.

Change-Id: I35c6619af0e68d0e6d9ab87cad06ea7c27e11e27
/frameworks/base/services/java/com/android/server/am/ActivityStackSupervisor.java
e12a4a68101725eaecefef7d7bd9236991e3f508 29-Aug-2013 Craig Mautner <cmautner@google.com> Reset activity's "return to home" flag on relaunch

When relaunching an activity re-evaluate the flag that determines
whether to return to the next activity on the stack or to the home
activity upon return.

Fixes bug 10545580.

Change-Id: I5868ce1b494afffcc5afc22abe3b65aa339827bb
/frameworks/base/services/java/com/android/server/am/ActivityStackSupervisor.java
e428a7f662f109a5f2015008e3161df23932483e 18-Aug-2013 Craig Mautner <cmautner@google.com> Allow for more than one home app.

Having a single mHomeProcess in ActivityManagerService ignores the
possibility of multiple processes serving as home. Particularly when
we have a home activity that only serves to launch the true home
activity.

Fixes bug b10296766

Change-Id: I9e5c9c955c64f4b3df856b6bc66d6a0d93f85aab
/frameworks/base/services/java/com/android/server/am/ActivityStackSupervisor.java
61574705d34a31a60b53f7dd7231f1dcb1e31608 12-Aug-2013 Craig Mautner <cmautner@google.com> Remove incorrect warning.

The warning about an ActivityRecord not being assigned a task was
incorrect in the location modified by this fix. In this case an
existing ActivityRecord is relaunched so it is not necessary to
assign the task to the passed ActivityRecord.

Addresses the warning associated with bug 10181389.

Change-Id: I76d5066c320bf9da2663bc34bcaca801ad4953bc
/frameworks/base/services/java/com/android/server/am/ActivityStackSupervisor.java
b62237938eb1379980eb80004137d6dcd6ff14f7 30-Jul-2013 Ben Gruver <bgruv@google.com> Add support for service intents

Change-Id: Ie090896b70bd6860181a021818fa6514d2e57a3f
(cherry picked from commit 8b028a6564d9e3af07e2424dc71d287550ebede7)
/frameworks/base/services/java/com/android/server/am/ActivityStackSupervisor.java
e64ff1b31a72162a9179eb13f917b3bf67ae9142 08-Aug-2013 Ben Gruver <bgruv@google.com> Merge "Improve the logic for determining whether the caller is a system app"
dd72c9ed558158f889a8cdfed8a108553ba5a562 06-Aug-2013 Ben Gruver <bgruv@google.com> Improve the logic for determining whether the caller is a system app

Bug: 10024554
Change-Id: I742e918840a98dd83d713bdf7a43a919674e65fe
/frameworks/base/services/java/com/android/server/am/ActivityStackSupervisor.java
d0f964f93f100a8a8a2c22df98964a82219dc77f 07-Aug-2013 Craig Mautner <cmautner@google.com> Compare tasks not activities.

In order to determine if the topmost activity needs to be moved out
of the way, compare its task to the task of the source activity
rather than compare the activities themeselves.

Fixes bug 10182783.

Change-Id: Idd4542d7ddce8b7586ee47f100366bc47e07d54f
/frameworks/base/services/java/com/android/server/am/ActivityStackSupervisor.java
614b4c4cd42699161b0c801117416ec517b2afe2 06-Aug-2013 Dianne Hackborn <hackbod@google.com> Merge "Refactor ProcessStats, ProcessTracker."
d2932243e3313b59e7538641731aa98852bc5ac7 06-Aug-2013 Dianne Hackborn <hackbod@google.com> Refactor ProcessStats, ProcessTracker.

ProcessStats is now called ProcessCpuTracker.

ProcessTracker is now ProcessStatsService, and its inner State
class is broken out into a separate top-level ProcessStats class.
This ProcessStats is moved to the framework, so we will be able
to use it elsewhere.

Change-Id: I6a127bcb835b6b474b72647c0b99b82c2137e5c5
/frameworks/base/services/java/com/android/server/am/ActivityStackSupervisor.java
0f922749f45ba0717c317a765286f880bb9a1cce 06-Aug-2013 Craig Mautner <cmautner@google.com> Extend clearing of mLastPausedActivity.

Add more locations where mLastPausedActivity must be set null before
calling resumeTopActivityLocked().

Also separate the "No History" activity from mLastPausedActivity by
adding mLastNoHistoryActivity. This is necessary because now
mLastPausedActivity will be null when mLastNoHistoryActivity
is checked.

Continues to fix bug 10022212.

Change-Id: Ida543b0638c865127691dc51a6e0635062539659
/frameworks/base/services/java/com/android/server/am/ActivityStackSupervisor.java
f1cca18ae460b66242988a8a6204c4a42b6fa1c1 01-Aug-2013 Dianne Hackborn <hackbod@google.com> Try to improve PSS collection.

The goal is to collect PSS data from processes when they
are in as stable a state as possible. We now have tables
for the durations to use for PSS collection based on
process state, and scheduling of collection is all driven
by process state changes.

Change-Id: I95e076f6971b9c093118e53dc8240fb3f5bad3b2
/frameworks/base/services/java/com/android/server/am/ActivityStackSupervisor.java
ac6f843c917b68ea8805711965b149a9338e3a0e 17-Jul-2013 Craig Mautner <cmautner@google.com> Fix home activity and user switch interactions.

- Make sure Home activity goes in the correct task and on the correct
stack.
- Do not allow different users to be in the same task.
- Do not set stacks aside for each user.

Fixes bug 9775492.

Change-Id: I0e7954e917aac8482a1015a36923e02914e2b692
/frameworks/base/services/java/com/android/server/am/ActivityStackSupervisor.java
a413dc06b2193442a2d956571b829aeb5fb97862 12-Jul-2013 Dianne Hackborn <hackbod@google.com> Add new proc state constants and delivery.

The activity manager now keeps a new "process state" for
each process, indicating the general execution and memory
state of the process. This closely follows the out-of-memory
adjustment and scheduling class that it currently tracks,
but roles these together (plus a little more info) into one
more semantically meaningful number.

This value is reported to each process as it changes, so they
can do things like tune the Dalvik garbage collector to match
the current process state.

I think I should also switch to this for process states. It
will give is more meaningful divisions of time for each process.

Also fix a problem in the activity stack where the previous
process was not being set correctly when moving between
activity stacks.

Change-Id: I598b1667dc46547f8fadae304e210c352cc9d41f
/frameworks/base/services/java/com/android/server/am/ActivityStackSupervisor.java
5eda9b330120f75964cd78b29f6101cc273c2a7e 02-Jul-2013 Craig Mautner <cmautner@google.com> Add convertToTranslucent to API.

Rename convertToOpaque to convertFromTranslucent. Add the
counterpart to Activity.convertFromTranslucent() for returning from
opaque to a translucent Activity. The caller should wait until
TranslucentConversionListener.onTranslucentConversionComplete() is
called before actually changing the background to translucent.

Change-Id: Id04b026bcc4dd8bad9a33a7af126e1bb28fb9c03
/frameworks/base/services/java/com/android/server/am/ActivityStackSupervisor.java
7ea5bd497f842c8181f6455da6c8013e06578d45 06-Jul-2013 Craig Mautner <cmautner@google.com> Move mLaunchingActivity from stack to supervisor.

There did not need to be one launching wakelock for each stack.
Moving it to the stack supervisor makes the logic much simpler
and fixes bug 9693439.

Change-Id: I5c9ae856540170a4d66fedb74becb6959c44dd8f
/frameworks/base/services/java/com/android/server/am/ActivityStackSupervisor.java
89d62fbad565aa847fd063f90fe1ca9194d31a72 01-Jul-2013 Craig Mautner <cmautner@google.com> Merge "Set focus to launcher activity on return."
a8a90e0f528c5c3f595383953d8ffd64e5c6f758 29-Jun-2013 Craig Mautner <cmautner@google.com> Set focus to launcher activity on return.

Setting the focus to the top activity on the home stack when
changing stack. This got lost when setting the stack to the foreground
no longer set automatically set focus.

Fixes first half of bug 9580068.

Change-Id: Ic9a662579399c052e0f0992651a32094f4aa62d0
/frameworks/base/services/java/com/android/server/am/ActivityStackSupervisor.java
cfc837f7fa43362b5049f648fe1bfdf5a010cc1c 28-Jun-2013 Dianne Hackborn <hackbod@google.com> Start really collecting PSS data for process stats.

The activity manager now uses some heuristics to try to
sample PSS data from processes so that it can get enough
data to over reasonable time have something useful, without
doing it too aggressively.

The current policy is:

1. Whenever a significant global change happens (memory state,
sceen on or off), we collect PSS from all processes; this will
not happen more than every 10 minutes.
2. When all activities become idle, we will collect PSS from the
current top process; this will not happen more than every 2
minutes per process.
3. We will sample the top-most process's PSS every 5 minutes.
4. When an process's oom adj changes and it has been more than
30 minutes since PSS has been collected from it, we will
collect a new PSS sample.
5. If a process changes from service A to service B (meaning it
has been running a service for a long time), we will collect
a PSS sample from it.
6. If someone explicitly requests PSS data (for running services
UI or dumpsys), record that.

Also:

- Finish moving the procstats output all to the new format.
- Record information about processes being killed due to excessive
wake locks or CPU use in procstats.
- Rework how we structure common vs. per-package process stats to
make it simpler to deal with.
- Optimize the Debug.getPss() implementation (we use it a lot now).
Should probably optimize it further at some point.

Change-Id: I179f1f7ae5852c7e567de4127d8457b50d27e0f0
/frameworks/base/services/java/com/android/server/am/ActivityStackSupervisor.java
e7c58b6d7d761b93e785b0a399e5b00fdb82f4ce 13-Jun-2013 Craig Mautner <cmautner@google.com> Add debug for specific bug.

To be removed once the bug is fixed.

Change-Id: Ie273d4503bb0b534af0e9efe8f45c573766e9a74
/frameworks/base/services/java/com/android/server/am/ActivityStackSupervisor.java
f0ac5c87f2a4a7ee8148a7b8d02b55e439ab130c 24-Jun-2013 Craig Mautner <cmautner@google.com> Fix unnecessary and harmful task movement.

Changing the focus to a new activity should not move it to the top of
the task stack. When the previous activity fully pauses and the new
focused activity resumes then it will be brought to the top of the
task stack at the proper time. Moving it there prematurely causes the
ActivityManager and WindowManager stack sequences to be out of sync.

Fixes bug 9518153.

Also remove false warnings in validateTopActivitiesLocked() and add
debug for task movement to TaskStack.

Change-Id: Ib57500b07ded97223155cda7ef603aecc9b642c3
/frameworks/base/services/java/com/android/server/am/ActivityStackSupervisor.java
1d001b670e34fe887488047f525a5430154626e1 19-Jun-2013 Craig Mautner <cmautner@google.com> Fix stack transfer bug.

Set the focused stack to the task with the started activity. Do not refocus
when activities report resume.

Add more conditional debug.

Fixes bug 9481679.

Change-Id: Ib7134e88f9a2c8ad1703af0d43442c8bbe4e65dc
/frameworks/base/services/java/com/android/server/am/ActivityStackSupervisor.java
d213beae7539d8feb7cf1ba8f25f9769f5890e0b 17-Jun-2013 Craig Mautner <cmautner@google.com> Don't bring stack forward when moving tasks.

Change-Id: I222eda9e3ea62119c8948a99a63de55b13ca69f4
/frameworks/base/services/java/com/android/server/am/ActivityStackSupervisor.java
78a369c90f61981c9d0ddd5fcbc77202bfbe74f6 12-Jun-2013 Dianne Hackborn <hackbod@google.com> Improve process tracking.

We now keep track of when each process is running, batched
by the current memory status of the device. In addition,
the stats are organized by package first, and then processes
associated with each package inside of that. Finally, we
also keep track of the overall time spent in each memory
status.

This should start to actually get us to some information
we can reach some conclusions about. The total time spent
in each memory status gives us some indication of how much
we are running while memory is low; the new package organization
batched by memory status lets us see what packages have
what processes running when memory is low.

Change-Id: I389d62d39d115a846126cf354e4c20070d8f1180
/frameworks/base/services/java/com/android/server/am/ActivityStackSupervisor.java
cbfd23ee6f14445c3e17c5169abbc80c216fa137 11-Jun-2013 Dianne Hackborn <hackbod@google.com> Add new API to retrieve a dumpsys of a single package.

Adds a platform API, and pm command. Fixes some issues with
dumping per-package data in package manager, makes battery
stats able to dump per-package state.

Change-Id: I76ee6d059f0ba17f7a7061886792b1b716d46d2d
/frameworks/base/services/java/com/android/server/am/ActivityStackSupervisor.java
be4e6aaa0252dd7da28b7aa85beba982538efa46 07-Jun-2013 Dianne Hackborn <hackbod@google.com> Initial super-primitive process tracker.

The goal of this is to keep track of what app processes
are doing, to determine who is being abusive, when the system
is getting into memory constrained situations, and help the
user determine how to resolve this.

Right now it doesn't really do any of that, just keeps track
of how long every process has been running since boot.

Also update the activity manager to use "cached" as the terminology
for what it used to interchangeably call hidden and background
processes, and switch ProcessMap over to using ArrayMap.

Change-Id: I270b0006aab1f38e17b7d9b65728679173c343f2
/frameworks/base/services/java/com/android/server/am/ActivityStackSupervisor.java
7ad34e5fb2bc8eda0a64377cedf8a8e899644dd9 06-Jun-2013 Dianne Hackborn <hackbod@google.com> Improve debug printing in activity manager.

Dumping per-package data is now much cleaning, and only really
prints information related to the package. Also clean up the
formatting and such of the new activity stack states.

Change-Id: Ie5f31d72b7e77b34fd9acd835f28ed1db1dff328
/frameworks/base/services/java/com/android/server/am/ActivityStackSupervisor.java
390517be2d60dd6e6264150c190c372d89bb331a 31-May-2013 Dianne Hackborn <hackbod@google.com> Clean up some temporary allocations.

Yay to ArrayMap, letting me get rid of a bunch of temporary
iterators in core code paths like updateOomAdj. (Now I definitely
need an ArraySet to finish that up.)

Also clean up various other things that are doing unnecessary
allocations, clean up some debug output, make more of the debug
output respect package filtering.

Change-Id: Ib4979faf4de8c7912739bc0937c3fa9e7bfcde67
/frameworks/base/services/java/com/android/server/am/ActivityStackSupervisor.java
41c0f353c6209bf02708483b6f712fafde759925 28-May-2013 Craig Mautner <cmautner@google.com> Replace mFocusedStack with getFocusedStack()

mFocusedStack should not be used directly as it may be null. Added
a note to the declaration to remind future self of that.

Fixes bug 9165949.

Change-Id: I8fad428d93b50909be9e7ec51df81149c11313b3
/frameworks/base/services/java/com/android/server/am/ActivityStackSupervisor.java
b3b36ba13895d779159799341d432f6380a0ba8a 20-May-2013 Craig Mautner <cmautner@google.com> Resize all changed windows and fix moveTaskToStack

- Add all changing windows to mResizingWindows when an ActivityStack
is resized.

- Stop calling TaskStack.setBounds if the bounds haven't changed.

- Make moving a task from one stack to another work properly.

- Eliminate unused methods and redundant variables in WindowState and
WindowStateAnimator.

Change-Id: I3a950c777bcc50cdeced150d44423d4d0b38af4a
/frameworks/base/services/java/com/android/server/am/ActivityStackSupervisor.java
0eea92c67b292b005c152641a12b920fe145826c 16-May-2013 Craig Mautner <cmautner@google.com> Move sleep from ActivityStack to Supervisor

- Move activitySleptLocked, checkReadyForSleepLocked,
mGoingToSleepActivities, mGoingToSleep, mSleepTimeout from
ActivityStack to ActivityStackSupervisor.

- Fix bug that was causing mGoingToSleepActivities to always be
empty.

- Add more debug logging.

Change-Id: Ibd57bd49bf6f468567571b390f3051faaeee1aa1
/frameworks/base/services/java/com/android/server/am/ActivityStackSupervisor.java
76ea2246781a899659ce4e24f3b75d17d2f0745d 15-May-2013 Craig Mautner <cmautner@google.com> Limit screenshots to specified activity and stack.

The screenshots were capturing the entire screen. Now they are limited
to the stack containing the activity.

Add debug for stack states.

Change-Id: I6d47cd37091bfdfd94e7abe89826b7ba8cb69b51
/frameworks/base/services/java/com/android/server/am/ActivityStackSupervisor.java
86d67a4faad2cca95f6ec7c93876d6d3d1c136d9 14-May-2013 Craig Mautner <cmautner@google.com> Move Recents into home stack.

Allows Recents activity to occupy a special place in the window/stack
hierarchy.

Change-Id: Ic11c94a075f70c7ba68bd554cd3e5fc6b7c407e7
/frameworks/base/services/java/com/android/server/am/ActivityStackSupervisor.java
1602ec21883f73c5eb2304cf69d2278f70b145ab 12-May-2013 Craig Mautner <cmautner@google.com> Log stack issues and start resize effort.

- Modify Am.java to accept 'stack resize' command.

- Add logging for assigning home stack to non-home task to track down
bug. And maybe fix bug.

- Add template parameter to ArrayList.

Change-Id: Ia73182afc20e9e4430ddadebae034cecb3798eec
/frameworks/base/services/java/com/android/server/am/ActivityStackSupervisor.java
befa8b5553046bf46ae59b5d7f9980f513db5d0c 13-May-2013 Guang Zhu <guangzhu@google.com> Revert "Log stack issues and start resize effort."

Bug: 8935057

This reverts commit b0245edae86b5811ea743c0f4cea095488304b1a.
/frameworks/base/services/java/com/android/server/am/ActivityStackSupervisor.java
b0245edae86b5811ea743c0f4cea095488304b1a 12-May-2013 Craig Mautner <cmautner@google.com> Log stack issues and start resize effort.

- Modify Am.java to accept 'stack resize' command.

- Add logging for assigning home stack to non-home task to track down
bug. And maybe fix bug.

- Add template parameter to ArrayList.

Change-Id: If904c3ead623464ff5863b7241c68c1b7573bcf4
/frameworks/base/services/java/com/android/server/am/ActivityStackSupervisor.java
525f3d9df632e485d1f75d8336e28a266eb7d96c 07-May-2013 Craig Mautner <cmautner@google.com> Do not launch home task if activities remain

When a root activity is finishing and it is supposed to return to
home make sure there are only lower activities waiting to start before
going home.

Fixes bug 8632206.

Various other refactorings for efficiency.

Change-Id: I8bbb9de78d0ea9f45a504cf4bad72c698e9cc3d8
/frameworks/base/services/java/com/android/server/am/ActivityStackSupervisor.java
b59dcfd5e108fdffbc610ef109cccecbbd11cd75 06-May-2013 Craig Mautner <cmautner@google.com> Call ensureActivitiesVisibleLocked from supervisor.

- Don't call ActivityStack.ensureActivitiesVisibleLocked directly.
Instead call ActivityStackSupervisor.ensureActivitiesVisibleLocked.

- Add detecting monochrome screenshots to black screenshots.

- minor refactors.

Change-Id: I050b1cd40cacaab451f1460a77a82125a8077ff2
/frameworks/base/services/java/com/android/server/am/ActivityStackSupervisor.java
05d290365f0b9ed781ffcb30b38a0c7c6e450e9d 03-May-2013 Craig Mautner <cmautner@google.com> Fix layering and launching issues.

- Replace calls to ActivityStack.resumeTopActivity() with calls to
ActivityStackSupervisor.resumeTopActivities().

- Move dim layers from display scope to stack scope. This applies to
both the animation background dim layer and the FLAG_DIM_BEHIND dim
layer.

- Move windows on stacks that are not targeting wallpaper above the
wallpaper. Otherwise wallpaper placement hides the non-focused stacks.

Change-Id: Ic6b97ac6b094672bb1ddac17ce46ea58c738f073
/frameworks/base/services/java/com/android/server/am/ActivityStackSupervisor.java
58b98d392d47c2acdf19cea988f0ac547b83e670 26-Apr-2013 Jeff Sharkey <jsharkey@android.com> Merge "Report dead activities as paused to stats."
5782da778ca2f282b763fa64a8f7ec079cad4d70 25-Apr-2013 Jeff Sharkey <jsharkey@android.com> Report dead activities as paused to stats.

Also tell stats about pause before dispatching to remote side.

Change-Id: I975d0fba65515fa768127792d5aa7976df2ba2d3
/frameworks/base/services/java/com/android/server/am/ActivityStackSupervisor.java
580ea81ccdf29a7af0da88b43d2676fec93e4e5d 25-Apr-2013 Craig Mautner <cmautner@google.com> Fix launching non-full screen apps from home.

- Continue to display the home screen for non-fullscreen activities
such as Download. Previously launching Download from home would
display Download on top of the previous activity on the user activity
stack.

- Fix NPE when DEBUG_PROVIDER is true.

Change-Id: I705ea43e4b78a5f5e83fc3f5fa83e4c95e592268
/frameworks/base/services/java/com/android/server/am/ActivityStackSupervisor.java
c64f73e7785507152358fbfa89be0ce7a0196692 25-Apr-2013 Craig Mautner <cmautner@google.com> Fix startActivityAndWait bugs

- Send timeout message with a delay. The delay got lost when moving
from ActivityStack to ActivityStackSupervisor. Fixes bug 8687083.

- Remove waiting activities from list after they have been awoken.
Previously the list just got bigger and bigger.

Change-Id: Icb9e394db1eefa444e58c5416472017cac32298c
/frameworks/base/services/java/com/android/server/am/ActivityStackSupervisor.java
858d8a6583b0c91c66960167b84c67b6c4e2d3c6 24-Apr-2013 Craig Mautner <cmautner@google.com> Fix user switching.

- Save and restore WindowManager stack states.
- Maintain ActivityManager activity states based on the stack
the activity is in.

Fixes bug 8646641.

Change-Id: I16c76c7708ab49121c3884a7e5bf219898b92d3f
/frameworks/base/services/java/com/android/server/am/ActivityStackSupervisor.java
cf910b0c714b2ca90ea0013e5695850506a1d36f 23-Apr-2013 Craig Mautner <cmautner@google.com> Add tap detector for switching stack focus.

- New InputEventReceiver for detecting taps outside of focused stack
boundaries.
- Fixed bug that wasn't pausing the non-focused window when returning
home.

Change-Id: Ia51d312a7c029abc01eb5df1102814cc29d33b47
/frameworks/base/services/java/com/android/server/am/ActivityStackSupervisor.java
f333327782e14688e1c198c1192172d51308e90b 22-Apr-2013 Craig Mautner <cmautner@google.com> Move idle handling from ActivityStack to Supervisor

Along with mFinishingActivities, mStartingUsers and
mCancelledThumbnails.

Change-Id: Ia354225d72e694b7ac68b0869fcab903a3d06436
/frameworks/base/services/java/com/android/server/am/ActivityStackSupervisor.java
ce5f3cba6b95e1fbc800c0fc43d13bb830e87423 22-Apr-2013 Craig Mautner <cmautner@google.com> Refactoring Activity Manager.

Mid-course corrections.

- Simplify ActivityStackSupervisor and ActivityStack constructors to
get passed parameters from ActivityManagerService.
- Store WindowManagerService referecne locally in
ActivityStackSupervisor and ActivityStack.
- Rename getTopStack to getFocusedStack in ActivityStackSupervisor
and ActivityManagerService.
- Move mWaitingActivityLaunched/reportActivityLaunchedLocked and
mWaitingActivityVisible/reportActivityVisibleLocked from ActivityStack
to ActivityStackSupervisor.
- Moved reportResumedActivity to ActivityStackSupervisor.
- Added a Handler to ActivityStackSupervisor. Will populate it on next
CL.

Change-Id: I1bbe5eb737c5cac6b896bc9748f329891e94d00f
/frameworks/base/services/java/com/android/server/am/ActivityStackSupervisor.java
165640bbc69c7831ec38d573dc1f85b264db2a5d 20-Apr-2013 Craig Mautner <cmautner@google.com> Use correct stacks for testing changes.

Fixes bug 8656057.

Change-Id: I88e48d28d240fced866a82bd3d49f8807300c0ad
/frameworks/base/services/java/com/android/server/am/ActivityStackSupervisor.java
f88c50f8daee2c813d788c19f7f04b9f365efaaf 19-Apr-2013 Craig Mautner <cmautner@google.com> Handle app dying.

Fix bugs related to handleAppDied.
Fixes bug 8658744.

Change-Id: I0ba2466ffac5e465e803e97a781810c34a6de371
/frameworks/base/services/java/com/android/server/am/ActivityStackSupervisor.java
69ada558f5f3b4cd1d7930e53902dba19c023cfd 18-Apr-2013 Craig Mautner <cmautner@google.com> Fix launching logic.

Fixes bug 8643197.

Change-Id: Ie09a767082dc492b449111da91bc0e77b43fa2f6
/frameworks/base/services/java/com/android/server/am/ActivityStackSupervisor.java
a9a3fb1da3d3d41f923e87d5b08b35c3e0c1f72e 18-Apr-2013 Craig Mautner <cmautner@google.com> Add transparent frame around focused stack.

- Also fix bugs when removing stack.

Change-Id: I3e0e3029f512f086601add00ccf34b2fea84296d
/frameworks/base/services/java/com/android/server/am/ActivityStackSupervisor.java
29219d963d1ec29ddea3e5814eb82c2aeaccc1ac 17-Apr-2013 Craig Mautner <cmautner@google.com> Steady improvement to multi stack.

- Fix back button behavior with two stacks. Stopping activities were
held in that state indefinitely. This change causes IDLE_NOW_MSG to
be sent immediately for the last activity in a stack.

- Touch in non-focused stack was being ignored because of focus tests
in AbsListView.

- Change the focused stack when the activity focus changes. Renamed
mMainStack to mFocusedStack to reflect this.

- Resume all top stack activities when resuming.

- Assign intent task to ActivityRecord if it doesn't have a task.
Fixes bug 8433463.

Change-Id: I8d3c806234511697bc209ab99890730ffa514d20
/frameworks/base/services/java/com/android/server/am/ActivityStackSupervisor.java
4cd0c13f8f765118a24e31548c058b5029481bea 17-Apr-2013 Craig Mautner <cmautner@google.com> Incremental repairs to side by side stacks.

- Add taskId parameter to createStack() so stacks are pre-populated
with a task.
- Keep track of stack access order in DisplayContent so getTasks
returns in MRU order.
- Set touchableRegion in InputMonitor so modal touching does not
extend beyond stack boundary.
- Fix stack merging so that deleting a stack results in a new
stack the size of the two children.

Change-Id: I62a6ba0a34f34dd7ec866b440bf04595379e19e8
/frameworks/base/services/java/com/android/server/am/ActivityStackSupervisor.java
967212cb542e6eeb308678367b53381bff984c31 14-Apr-2013 Craig Mautner <cmautner@google.com> Implement stack splitting and task movement.

Split stacks and move tasks between them. Layout the windows
according to the new stack split.

After layout content rectangles are known split the available area
between all stack boxes. Then use those values for future layout.

Provide stack contents to ActivityManager.

Change-Id: I9746e6185445633810d506be514d0b7b540a7f99
/frameworks/base/services/java/com/android/server/am/ActivityStackSupervisor.java
de4ef020ec5c3acdc90c4ba43011dda20d98d4dd 08-Apr-2013 Craig Mautner <cmautner@google.com> Implement separate stacks.

One for home activity(s), one for other activities. Coordination
between the stacks is handled by the ActivityStackSupervisor.

Change-Id: I11395edea501d2f84a18a6a8bced1ce3d0797dad
/frameworks/base/services/java/com/android/server/am/ActivityStackSupervisor.java
c1dedb6fc41855a03651924b2cc18b2d605413ed 13-Apr-2013 Craig Mautner <cmautner@google.com> Merge "Prepare WindowManager for multiple stacks."
7b879f4b93c43d943da8f946446b468912cb6ba1 08-Apr-2013 Ben Gruver <bgruv@google.com> resolved conflicts for merge of 0929c3b1 to master

Change-Id: I70d4b652e804f3e607b1cd1b6837204c77610d87
d5d5d0f4b8c75c9ed4fea320b4f31740b88dd37e 04-Apr-2013 Craig Mautner <cmautner@google.com> Prepare WindowManager for multiple stacks.

Create concept of home stack. When moving a new task to the top
move the home stack back.

Change-Id: I2e352722da0c4785b19227713bc30c0850d187b1
/frameworks/base/services/java/com/android/server/am/ActivityStackSupervisor.java
6617c3c6d3d50559779fc7694a82f920b70ce4ff 04-Apr-2013 Ben Gruver <bgruv@google.com> Fix issue with intent firewall merge

Change-Id: I936d0f68ffa9af5d4520f598eabb873f48c04132
/frameworks/base/services/java/com/android/server/am/ActivityStackSupervisor.java
5e207331078ee1d43fed6e8451208c9a9bb77b2c 04-Apr-2013 Ben Gruver <bgruv@google.com> resolved conflicts for merge of 2ab72e1f to master

Change-Id: I752332dfb1a2f15bac22d3f1a457ae1ef20cf240
8849a5ecb89834b55b6f83f201da6d7079f2cbb6 03-Apr-2013 Craig Mautner <cmautner@google.com> Move startActivityUncheckedLocked to Supervisor

This method can potentially act on different stacks so bringing
it to the supervisor from a single ActivityStack makes sense.

Change-Id: Ia2df3539dce39e8f050a9ffcef4371c0f172aaee
/frameworks/base/services/java/com/android/server/am/ActivityStackSupervisor.java
6170f73ed5464491b91685b57e116db033e98d5a 02-Apr-2013 Craig Mautner <cmautner@google.com> Move startActivity from ActivityStack to Supervisor

Change-Id: I188c8e95e6f8371a016ad6fceb0bfa5de04e4abb
/frameworks/base/services/java/com/android/server/am/ActivityStackSupervisor.java
dbcb31f28c7123f25e4b19c369332f23c36f9205 02-Apr-2013 Craig Mautner <cmautner@google.com> Fix potential synch problems.

- Do not schedule GC until all stacks are idle.
- Call sendPendingThumbnail outside of synchronized lock.
- Remove redundant synchronized locks.

Change-Id: I56581ca12a534765132bed405fa4b340c418436f
/frameworks/base/services/java/com/android/server/am/ActivityStackSupervisor.java
e79d4268c0ee7971abb6ef99c76c2bd7f7818109 02-Apr-2013 Craig Mautner <cmautner@google.com> Yet more movement from ActivityStack to Supervisor

- Remove redundant synchronize in ActivityStack.activityIdleInternal().
- Move startSpecificActivityLocked from ActivityStack to Supervisor.
- Move handleAppDiedLocked from Supervisor to ActivityStack.

Change-Id: Id746ab3bdff861b61182282bea1deb8fcf284084
/frameworks/base/services/java/com/android/server/am/ActivityStackSupervisor.java
2420ead0326bfd2587da6231be419e758dba1930 02-Apr-2013 Craig Mautner <cmautner@google.com> More movement from ActivityStack to Supervisor

- Move showAskCompatModeDialogLocked from ActivityStack to
ActivityManagerService.
- Keep track of userId in ActivityStackSupervisor and initialize
new ActivityStacks with it.
- Move realStartActivityLocked to ActivityStackSupervisor except
for the part that actually updates the ActivityStack.

Change-Id: I7467302f1249fee2ea3cf027a49e0894c9a2213d
/frameworks/base/services/java/com/android/server/am/ActivityStackSupervisor.java
23ac33bb85de7e840dd3c35c21c05ead5bc39b03 02-Apr-2013 Craig Mautner <cmautner@google.com> Migrate activity starts into ActivityStackSupervisor.

Individual ActivityStacks should not be the place where stack
decisions are made.

Change-Id: If9c7a10e1127618c3ae008a0fea6e5943f776be4
/frameworks/base/services/java/com/android/server/am/ActivityStackSupervisor.java
20e7227454bf6f3500c6eb97a17483dd8b764341 01-Apr-2013 Craig Mautner <cmautner@google.com> Remove mFocusedStack from ActivityManagerService.

Use ActivityStackSupervisor.mMainStack in its place. Or, in cases
where multiple stacks must replace mFocusedStack, create new
methods in ActivityStackSupervisor that will replace it.

Change-Id: Ib0dda51e1043a6d5110e5a2914d695ef16bf9371
/frameworks/base/services/java/com/android/server/am/ActivityStackSupervisor.java
8d341efad0850a6ff1a33375b33e3c7fdd8d9109 26-Mar-2013 Craig Mautner <cmautner@google.com> Move mStacks to ActivityStackSupervisor

Lift all ActivityStack behaviors from ActivityManagerService.

Change-Id: I356f1c22fe31f0442ff5e363f62fe99b7bfd6153
/frameworks/base/services/java/com/android/server/am/ActivityStackSupervisor.java
2219a1ba3d9f5c215be0eeb63fa8e8084da0f1ac 25-Mar-2013 Craig Mautner <cmautner@google.com> Modify primary ActivityStack accessing.

- Move mHomeStack to ActivityStackSupervisor.
- Move mMainStack to ActivityStackSupervisor.

Change-Id: I43522c9505f066b379ea172dd63663e78a0feece
/frameworks/base/services/java/com/android/server/am/ActivityStackSupervisor.java
270843072cff8cd35c517ec6009ccda3ba9668f8 25-Mar-2013 Craig Mautner <cmautner@google.com> Introduce ActivityStackSupervisor.

- New coordinating class to juggle multiple ActivityStacks.
- First job: take singleton Keyguard dismiss behavior out of
ActivityStack.

Change-Id: I68e4b44411d3ec9401e86ac23703d6540dcb12e8
/frameworks/base/services/java/com/android/server/am/ActivityStackSupervisor.java