History log of /frameworks/base/services/core/java/com/android/server/am/ActivityRecord.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
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/ActivityRecord.java
7c6692646c87ec0057102e77304c8ffc440c36eb 20-Jun-2016 Chong Zhang <chz@google.com> Merge "Make sure fontScale in configuration sent to app is equal to global" into nyc-dev
6be533ef6c7d52cdd0f5eae47bf9512b759aa45a 18-Jun-2016 Chong Zhang <chz@google.com> Make sure fontScale in configuration sent to app is equal to global

We don't want the default value 1.0 from empty config to be applied
as an override.

bug: 29367672
Change-Id: Ia9947c24fa9435ba5b208eb9bd05e0b07b574015
/frameworks/base/services/core/java/com/android/server/am/ActivityRecord.java
9b80b94167a7d218da28b357d1daabf5ab1f309d 17-Jun-2016 Fyodor Kupolov <fkupolov@google.com> Do not schedule restarts if the system is shutting down

Bug: 29357754
Change-Id: Id5cf43fb6c4c6ea04d60bd09e910a9cec194c753
/frameworks/base/services/core/java/com/android/server/am/ActivityRecord.java
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/ActivityRecord.java
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/ActivityRecord.java
cd13d33ee53371f306a1e5c0caa2b292906e4e17 28-Apr-2016 Jorim Jaggi <jjaggi@google.com> Show forced resizable based on top activity

Also don't show it for noDisplay activities.

Bug: 28223489
Change-Id: Idb555b019b5cebdcf16a0cfaa19d64263874735f
/frameworks/base/services/core/java/com/android/server/am/ActivityRecord.java
f84b3e0e2fe11c8ee1d86ad44236ba4129fc3ae1 27-Apr-2016 Ruben Brunk <rubenbrunk@google.com> Merge "Add manifest attribute for VR activities." into nyc-dev
f56c9f432bafda9765f5ffcb25be5259645e121d 23-Apr-2016 Ruben Brunk <rubenbrunk@google.com> Add manifest attribute for VR activities.

- Allow jank-free VR->VR activity transitions, even during
long activity transitions.

Bug: 28115931
Change-Id: I1e3fd1a5245bac3433ea6282cb1c7a71f0e0266f
/frameworks/base/services/core/java/com/android/server/am/ActivityRecord.java
afb776d5447e19565c9a826a554911decb9ed92a 23-Apr-2016 Chong Zhang <chz@google.com> fix "am start -W" hang on activity start

Normally launch time counts from the point when the activity is
resumed, to when the first window is drawn. However the activity
could become visible before it is resumed, due to some other
activity in the same task being launched. In this case we still
need to report launch time to unblock
ActivityStarter.startActivityMayWait().

bug: 28333487
Change-Id: I445b602f495ed0c3cb669e2d81a137280317534f
/frameworks/base/services/core/java/com/android/server/am/ActivityRecord.java
a09b4d2a611a7606e8fc8c73a24bd941b6fc173f 15-Apr-2016 Narayan Kamath <narayan@google.com> Remove unnecessary allocation+unboxing of objects.

Transforming String->int can be done with 0 allocations
using Integer.parseInt.

bug: 28078871
Change-Id: I8d9f322d7154728849dde61ef282046032858d60
/frameworks/base/services/core/java/com/android/server/am/ActivityRecord.java
933076d80561751618f462b26309ce9e4c3ff3bf 30-Mar-2016 Andrii Kulian <akulian@google.com> Refactor usages of Picture In Picture and Multi Window (1/4)

Bug: 27365860
Change-Id: I1590e430a12ceb84cb83da295e0bf7e4378fea96
/frameworks/base/services/core/java/com/android/server/am/ActivityRecord.java
984600566be81ffeb2e25b43c96f6d158e16fa99 08-Mar-2016 Chong Zhang <chz@google.com> Merge "Some fixes for black screen when pressing home button" into nyc-dev
d78ddb409a8499c391322dd1e2b2a97446f9603d 03-Mar-2016 Chong Zhang <chz@google.com> Some fixes for black screen when pressing home button

Pressing home button sometimes involves a rotation (eg. when app is
running in landscape mode but launch is fixed portrait mode). This will
trigger a screen freeze, which clears the transition. We still need to
add the opening app to the opening list even if transition is unset,
otherwise it doesn't wait for app to draw first frame.

Also during rotation, app, launcher and wallpaper all get relaunched.
The transition can't start until the first frame on the new launcher
window comes back. We can't start it based on the draw state of the old
window, because the old window could get removed and readded shortly
after we start the transition, and it shows up as a black frame.

bug: 27391256
bug: 27295820
Change-Id: I346685076657eef209d0fab68f272e218b55e011
/frameworks/base/services/core/java/com/android/server/am/ActivityRecord.java
e24b9a6cfa4d565d7f49c9ae8f3aeca737d93312 17-Feb-2016 Ruben Brunk <rubenbrunk@google.com> Add a VR listener service.

Bug: 22855417
Bug: 26724891
Bug: 27364145

- Add an API for VrListenerService, which is bound/unbound
from the framework when the system VR mode changes.
- Allow only a single bound VrListenerService at a time.
- Monitor allowed VrListenerService implementations from
VrManagerService and evict services as needed when packages,
users, or settings change.
- Remove previous VR functionality in NotificationListenerService.
- Add component target to Activity#setVrMode to allow
explicit selection of the running VrListenerService from
the current VR activity.

Change-Id: I776335f4441be0e793d3126f2d16faf86a8c621a
/frameworks/base/services/core/java/com/android/server/am/ActivityRecord.java
39bfee5e3674faea992c32204abc1c03429b8cda 24-Feb-2016 Todd Kennedy <toddke@google.com> Splits without restart

In specific cases [as determined by the installer], we can install
splits without restarting the application. The split must be purely
additive [i.e. it should not modify class(es)/resource(s) defined
in the base or other splits. Otherwise, the behaviour could be
inconsistent [e.g. if a modified class was already loaded, the
modified version won't be loaded until the process is restarted].
The platform does not perform any verification that the split is
purely additive.

Bug: 26463098
Change-Id: I3526c3b1b847a8e0afabc7a4787fa770422196b7
/frameworks/base/services/core/java/com/android/server/am/ActivityRecord.java
503d1ccce940e45a2f16bfe5f5a088692a740b52 26-Feb-2016 Wale Ogunwale <ogunwale@google.com> Merge "Clear starting window request if remove is requested before it is added" into nyc-dev
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/ActivityRecord.java
f40c11b11fd73493d0acc39baf8efeee4db7316f 26-Feb-2016 Wale Ogunwale <ogunwale@google.com> Clear starting window request if remove is requested before it is added

It is possible the add starting window to be scheduled and a remove request
come in before it is actually added. In this case we want to prevent the
addition of the starting window by clearing the AppWindowToken.startingData.

Bug: 26659857
Change-Id: I3ef6ea81d555e81b62e894003aadcc51d281b1ad
/frameworks/base/services/core/java/com/android/server/am/ActivityRecord.java
9017ec0b150ee19ca1041b61c2560dff759686d7 25-Feb-2016 Wale Ogunwale <ogunwale@google.com> Remove starting window whenever the acitvity is stopped

The main app window will never finish drawing at this point so there
is nothing to trigger the removal of the starting window.

Also, set ActivityRecord.mStartingWindowShown to true for some cases
where we were telling WM to show starting window but not setting the
flag that would later be used for clean-up.

Bug: 26659857
Change-Id: I7a8582521853f1f95b77d8b08f4dd0cf778f8cbf
/frameworks/base/services/core/java/com/android/server/am/ActivityRecord.java
22e2526b64a124a641f79de504d201005174754b 01-Feb-2016 Wale Ogunwale <ogunwale@google.com> Improved timing of when system sends multi-window change event to app

We were previously sending multi-window/PiP mode changed events to
apps once the task config is changed in activity manager.
However, the actual changing of the multi-windowing or PiP mode
might not be fully complete when the app receives the event so they
might be wrong state information they query for like currnet config.
We now schedule the events to be send once the current transaction
cycle is done.

Bug: 26877409
Change-Id: I393b56035bb4197f99b3db3d27c0599835b5f86c
/frameworks/base/services/core/java/com/android/server/am/ActivityRecord.java
7a8c2b18b8be17395c75d29d5ede711d90ce62a0 02-Feb-2016 Chong Zhang <chz@google.com> Merge "Fix FLAG_ACTIVITY_CLEAR_TOP not working for aliased activities"
6bdc7e1cdfc0a762197703f609554fc45fd18643 01-Feb-2016 Chong Zhang <chz@google.com> Fix FLAG_ACTIVITY_CLEAR_TOP not working for aliased activities

bug: 26216591
Change-Id: I26528b7613bd8aa80fc7f4d6b64ea7bf639935d3
/frameworks/base/services/core/java/com/android/server/am/ActivityRecord.java
e0dacc11ad37a94d023a30d00fcf20eb45e9fea8 31-Jan-2016 Wale Ogunwale <ogunwale@google.com> Allow activities without FLAG_ACTIVITY_NEW_TASK set to be home activities

Some callers can launch the home activity without setting
FLAG_ACTIVITY_NEW_TASK on the intent. When this occurred we were
putting a copy of the home activity in the application stack
which causes a few issues like the home activity showing up in
the recents list.
We now don't check the FLAG_ACTIVITY_NEW_TASK flag when determining
if the activity is a home activity is it meets all the other
requirements.

Bug: 26797267
Change-Id: I8176c6d9c27d26e9db6fa9f0f1a48e2e1388fb46
/frameworks/base/services/core/java/com/android/server/am/ActivityRecord.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/ActivityRecord.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/ActivityRecord.java
d26176f36039e33b575c044aa119c57e82744847 26-Jan-2016 Wale Ogunwale <ogunwale@google.com> Support different multi-window compatibility modes

- Change idea of activity resizablility from true or false to
unresizeable, cropped_windows, resizeable, and resizeable_and_pipable
- Default pre-N apps to cropped_windows mode and N or greater apps to
unresizeable or resizeable depending on the value of resizeableActivity
attribute.
- Mark legacy apps that specify fix orientation or immersive only mode
as unresizeable.
- Change to hide docked stack when unsupported app is the focus app.

Bug: 26774816
Change-Id: Ie473d36ca95f08e9332ab10fd2f0ec17ef50a02f
/frameworks/base/services/core/java/com/android/server/am/ActivityRecord.java
0af6fa7015cd9da08bf52c1efb13641d30fd6bd7 18-Jan-2016 Amith Yamasani <yamasani@google.com> Voice Interaction from within an Activity

This allows an app to show a voice search button
and invoke a voice interaction session for use
within the activity. Once the activity exits, the
session is stopped.

Test application has a new activity that
demonstrates it with the test voice interaction
service.

This initial version is functional enough for
an integration test, with some more tests
and improvements to come later.

Bug: 22791070
Change-Id: Ib1e5bc8cae1fde40570c999b9cf4bb29efe4916d
/frameworks/base/services/core/java/com/android/server/am/ActivityRecord.java
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/ActivityRecord.java
f81c1d164ab5999ec554c9cb2659e1b2ed93a8d5 12-Jan-2016 Wale Ogunwale <ogunwale@google.com> Fixed some activity visiblility issues in picture-in-picutre mode

- Previously when don't re-launch an activity due to configuration
change if the activity is currently pausing. And, once the pause is
complete we destroy the activity. This logic is based on the assumption
that all activities are fullscreen and pausing is the same as stopping
which means the activity is no longer visible and can be destoried.
This assumption is not true in multi-window mode where you can have
visible activities in the paused state.
We now relaunch the activity once it is done pausing.

- Previously we set the return type of the top task in a stack to home
if the previously focused stack is home while add the task to the stack.
This logic is based on the assumption that the focus stack is the front
stack which isn't true for pinned stack. This causes an activity behind
the top translucent activity in the pinned stack to be marked as invisible
and stopped since the top task is over the home task so we should be
showing the home task behind it and not other tasks in the stack.
We now set the return to task type to application type for task added to
the pinned stack.

Bug: 26273032
Change-Id: I0ffac81f46c57e2d0d900db3417381f059aee7ea
/frameworks/base/services/core/java/com/android/server/am/ActivityRecord.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/ActivityRecord.java
4cea0f5bfc7d34299f5f645d37f94b14ac3dc22a 25-Dec-2015 Wale Ogunwale <ogunwale@google.com> Don't allow unfocusable activity/stack to gain focus

Prevents them from being resumed since we always want to resumed
activity to be a focusable acitvity.

Bug: 26273032
Change-Id: Ied832e100d9a2d8915762db53c9230774be21d1c
/frameworks/base/services/core/java/com/android/server/am/ActivityRecord.java
55bed957788e853d3ee3f674dd6eea79ad3a193b 18-Dec-2015 Ruben Brunk <rubenbrunk@google.com> Merge "Add a framework service tracking VR mode state."
dd18a0b69537954d1cc34929a1386deb54f12b14 05-Dec-2015 Ruben Brunk <rubenbrunk@google.com> Add a framework service tracking VR mode state.

- Implement a "VR mode" that may be enabled by a focused Activity.
- Add a system service that tracks the current VR mode state and notifies
other core framework services of mode changes.
- Extend NotificationListenerService to allow the bind/unbind lifecycle
of specified listeners to be triggered by system events.

Bug: 22855417
Bug: 25479708

Change-Id: I1ac8692bbb5521bb6c7cfb9d2b56b98b720f8568
/frameworks/base/services/core/java/com/android/server/am/ActivityRecord.java
3d0267143f88cf6ec554b709d78805a9e46d06db 16-Dec-2015 Filip Gruszczynski <gruszczy@google.com> Only add noDisplay activities to freeform source tasks.

We started adding noDisplay activities to source tasks to make the
resolver activity show up within the same task bounds as what caused it
to appear. However, in other cases it might cause to add a noDisplay
activity to a task in which we don't expect anything to appear, e.g.
home task when launching from home.

Bug: 26128908
Bug: 26023670
Change-Id: I2f64e82b3c3754cdbcb4cac3f907674344e67e04
/frameworks/base/services/core/java/com/android/server/am/ActivityRecord.java
c2f262bc1ad78783ac40e149ea1373526fc2aefe 08-Dec-2015 Jorim Jaggi <jjaggi@google.com> Only take screenshot when hiding activities

So we don't take screenshots when just switching focus between
activities or when docking activities.

Bug: 26070919
Bug: 25845255
Change-Id: Ie924c5f72f4168806b949ad10df7ef139cd280cc
/frameworks/base/services/core/java/com/android/server/am/ActivityRecord.java
ca66481244913c4a17b62c3ddff214d2ca72c439 04-Dec-2015 Filip Gruszczynski <gruszczy@google.com> Update client configuration when resizing without crossing size threshold.

Even though the activity won't be relaunched and won't receive a
callback about the resize, we still need to update it's configuration.
Otherwise when the application queries for it, it will receive wrong
data.

Bug: 23904868
Change-Id: I601e91b8e71691c1cb5edb2734894441c4fde8e2
/frameworks/base/services/core/java/com/android/server/am/ActivityRecord.java
2359314fd41801005993fc8416eeb4fb38dd75a0 04-Nov-2015 Suprabh Shukla <suprabh@google.com> Moving recent tasks information to a user directory

The directories recent_tasks and recent_images are moved from
/data/system/ to /data/system/users/<n>/

Bug: b/24569398
Change-Id: I538969d86ebf14fb2d44257be1e6c0a7ff61ed8d
/frameworks/base/services/core/java/com/android/server/am/ActivityRecord.java
c809cbb92692cf5140fd5a452fc24214a098d937 02-Nov-2015 Winson <winsonc@google.com> Saving additional context when taking task screenshots.

- Save the original task size and screen orientation. This ensures that
we will be able to display the screenshots in the right orientation if
we start taking non-square thumbnails.

Change-Id: I17ffe1fc05a447f67753149695a4eaf0baa36e8e
/frameworks/base/services/core/java/com/android/server/am/ActivityRecord.java
280d332bd4dbf13bb05102f86c70b7ee299e0704 04-Nov-2015 Chong Zhang <chz@google.com> Construct ActivityOptions near top level

This saves some duplicate constructions of the ActivityOptions
object from Bundle.

Bug: 23755120
Change-Id: Ie8be54a2e4e84a6a1f3c51e4f2966f7fb0bf1c28
/frameworks/base/services/core/java/com/android/server/am/ActivityRecord.java
57311f7617185374a3b2c4a7cf2ff1ac010f5bf3 30-Oct-2015 Filip Gruszczynski <gruszczy@google.com> Merge "Hide recents during freeform to recents animation."
1a5203dfd5264104db018b8a09d50075b1af9b2d 30-Oct-2015 Filip Gruszczynski <gruszczy@google.com> Hide recents during freeform to recents animation.

Bug: 24913782
Change-Id: I6a5d3a638640571a902e095c4c0650b88eea0fb6
/frameworks/base/services/core/java/com/android/server/am/ActivityRecord.java
20aa0aed8c9d5f5fc25f239c151529de86603509 30-Oct-2015 Filip Gruszczynski <gruszczy@google.com> More granular reporting of size configurations.

There are two improvements in reporting size configurations:
1) duplicates are removed;
2) smallest width is reported separately;

Change-Id: I8f8235c99e6eefcae178e8d61e79ad0c4d6f1144
/frameworks/base/services/core/java/com/android/server/am/ActivityRecord.java
d64ef3ef33c50a03b4be3b2baaa93aab7319fca8 28-Oct-2015 Filip Gruszczynski <gruszczy@google.com> Freeform to recents app transition.

Bug: 24913782

Change-Id: I54fcbe38c51e5d75fa5ad2cb38de89d371b47bed
/frameworks/base/services/core/java/com/android/server/am/ActivityRecord.java
3e85ba293f00874d86998d650b54e580c454f3ae 06-Oct-2015 Filip Gruszczynski <gruszczy@google.com> Refactoring: Remove unused parameter from topRunningActivityLocked.

Change-Id: I350e9459af13858e4ed95fe6511383266f509cb8
/frameworks/base/services/core/java/com/android/server/am/ActivityRecord.java
85ee65483d877e66c4446fce31520f293f0d67c9 02-Oct-2015 Chong Zhang <chz@google.com> Put ResovlerActivity and noDisplay activities in the source task

Launch the ResolverActivity in the source task, so that the chooser
stays in the bounds of the task, instead of always at the bottom of
the screen.

Also put the nodisplay activities in the source task, it could launch
other activities (eg. ResolverActivity), we need the original task.

Bug: 24136124
Change-Id: I8b22d7f6cba4dc9e57cb19d357091013a74826bb
/frameworks/base/services/core/java/com/android/server/am/ActivityRecord.java
530ea0dfb5702f85ba98a81d14fe4077bdc1fc85 19-Aug-2015 Chong Zhang <chz@google.com> Merge "Initialize visible to false to reflect the real visibility state"
0fad22712c9b8bffb29c01902788a701d098ce6f 19-Aug-2015 Ben Kwa <kenobi@google.com> Merge "Fix XML early-outs."
a48ef66a46035e6b9efcabfb7e673c720b1a8bea 19-Aug-2015 Chong Zhang <chz@google.com> Initialize visible to false to reflect the real visibility state

So that ensureActivitiesVisibleLocked() doesn't skip the set visible
code for other apps in freeform stack.

bug: 22984782
Change-Id: Icbad7677f23ce788729c084e72d8757d5ae41188
/frameworks/base/services/core/java/com/android/server/am/ActivityRecord.java
2349332f9f69189d7889692b9aafd6f80070e352 30-Jul-2015 Filip Gruszczynski <gruszczy@google.com> Only relaunch activity on significant size configuration changes.

Currently if the configuration width/height/smallest width changes, we
relaunch the activity or invoke onConfigurationChanged callback. When it
comes to size based configuration changes it might not be necessary: if
the size change doesn't pass one of the threshold defined by the
resources, it means there is no need to relaunch the activity.

In this CL the ActivityManager will receive the thresholds from the
application and use them to decide, whether to relaunch the activity.
The application reads the thresholds from the resources, specifically
from resource qualifiers used by the app.

Change-Id: Ie3cf0a172dc1ba0b865cf30c2962e7cfd9ad8436
/frameworks/base/services/core/java/com/android/server/am/ActivityRecord.java
a371084e29f6ef3e926b4c51aa3b518b8cee3f0a 04-Aug-2015 Ian Pedowitz <ijpedowitz@google.com> resolved conflicts for merge of d4b8064e to master

Change-Id: I3d41b5bd0ecdd97f8e563b061fc8648d2206bc31
fb81d09d359480f9e43bbf300877b60de05f4816 04-Aug-2015 Dianne Hackborn <hackbod@google.com> Fix issue #22860466: viapi security bug - rubber stamping in nested VIs

Add new Activity.isVoiceInteractionRoot() API that an activity can use
to determine whether it is the root activity of a voice interaction
session started by the user's designated voice interaction service.

This is a special new API that apps must explicitly check, because as
with visual activities the model behind an activity should usually be
that it accomplishes its task by interacting with the user (implicitly
getting their approval) rather than trusting that whoever invoked it
is telling it to do what the user once. In the voice world, however,
there are some cases where quick interactions want to allow for immediate
execution without further user involvement, so this API allows for that
without opening up security holes from other applications.

Change-Id: Ie02d2458f16cb0b12af825641bcf8beaf086931b
/frameworks/base/services/core/java/com/android/server/am/ActivityRecord.java
e4a0c5722b1d8db95dfc842d716452dbbf02c86d 30-Jun-2015 Wale Ogunwale <ogunwale@google.com> Allow stacks to hold tasks on various sizes.

Tasks are now resizeable just like stacks. Adjusting the size
of a stack will also adjust the size of all it's containing
tasks. This model allows us to be more flexible
in using stacks as workspaces (like you would have in a
desktop environment) and tasks as the resizeable windows
within the workspace.

Also added "adb shell dumpsys window visible-apps" for
getting the list of visible app windows.

Bug: 22068114
Bug: 19182363

Change-Id: I5bf77063252a5abae4e327f6fc42e607091749f9
/frameworks/base/services/core/java/com/android/server/am/ActivityRecord.java
b795d7c4a3db56d07a411a434c447819fd18363f 29-Jul-2015 Dianne Hackborn <hackbod@google.com> Fix issue #22802691: APR: NPE in ActivityRecord

Change-Id: I8d6265589c97edc7a1d6c63f98c7252a439e62da
/frameworks/base/services/core/java/com/android/server/am/ActivityRecord.java
8814cf426d0b021d78133b1df7fd28dfe576df36 08-Jul-2015 Ben Kwa <kenobi@google.com> Fix XML early-outs.

Fix an incorrect check that was causing the XML parsing code to early
abort prior to completely deserializing the ActivityRecord and its
contents.

BUG=22348567

Change-Id: I7cfb171c4bc46bd5319e3bfdb4cc36b225f14407
/frameworks/base/services/core/java/com/android/server/am/ActivityRecord.java
7829c81345ce8b7e44ab22bf4433be77e0ebd8ae 08-Jun-2015 Narayan Kamath <narayan@google.com> Include launched packageName in systrace.

This makes it easier to tell which package the activity manager is
launching. The downside here is that each launch shows up in a separate
row in the systrace, but this matches up with the "Start proc:" label,
which contains the package name as well and makes it easier to inspect
both simultaneously.

bug: 21632700
Change-Id: I20ebc2f2a2cf0dc74c6d7daa4bafa381ae4c4060
/frameworks/base/services/core/java/com/android/server/am/ActivityRecord.java
0fc365c1455ebd4064474d27774f41cfcd8e1cb5 26-May-2015 Wale Ogunwale <ogunwale@google.com> Converted more AMS Log calls to use ActivityManagerDebugConfig

Bug: 21276405
Change-Id: I90d47b1b28f716e650df7f4377ed7cdd30b46ec8
/frameworks/base/services/core/java/com/android/server/am/ActivityRecord.java
b5a380d409a1431a38db978864b9d85b689e3cce 21-May-2015 Dianne Hackborn <hackbod@google.com> Add API to track usage time of apps.

This adds a new ActivityOption for the caller to ask the
system to track the time the user is in the app it launches,
delivering the result when they are done.

The time interval tracked is from when the app launches the
activity until the user leaves that app's flow. They are
considered to stay in the flow as long as new activities
are being launched or returned to from the original flow,
even if they cross package or task boundaries. For example,
if the originator starts an activity to view an image, and
while there the user selects to share, which launches gmail
in a new task, and they complete the share, the time during
that entire operation will be included.

The user is considered to complete the operation once they
switch to another activity that is not part of the tracked
flow. For example, use the notification shade, launcher, or
recents to launch or switch to another app. Simply going
in to these navigation elements does not break the flow
(although the launcher and recents stops time tracking of
the session), it is the act of going somewhere else that
completes the tracking.

The data is delivered to the app through a PendingIntent,
which includes the total time the app was in the flow along
with a time break-down by app package.

Change-Id: If1cf8892d422c52ec5042eba0e15a8e7e8f83abf
/frameworks/base/services/core/java/com/android/server/am/ActivityRecord.java
e88d1e5926d3f3e8a4ceaced7dad7bdc8bc61fa4 18-May-2015 Stefan Kuhne <skuhne@google.com> Revert "Backup/restore recents task list"

Reverts commits 92dd1abef4c0a22db40c5f7bbd100e6b471a1ad3,
18795a2299fefd88ee16393f22324b999ace6ce4, and
ac6a3a5e9d90edb533e5b377a4a14ef514be955a which make-up
changes required for backing-up and restoring recent
tasks from one device to another.

The implementation had too many unresolved issues including
the ordering of the restored recent tasks which was depending
on when the task package is installed on the new device that
puts the restored recents list out of order compared to the
old device.

Bug: 15986349
Bug: 19014377
Bug: 20763296

Change-Id: I06fd35a43036ef0b7260cf4db9c42890df63b95d
/frameworks/base/services/core/java/com/android/server/am/ActivityRecord.java
24904aa7b4888845c6f13e6833beff25af2aa7a2 01-Apr-2015 Wale Ogunwale <ogunwale@google.com> fixed build breakage due to bad merge.

Change-Id: I0c6da2e831bfbe770b16a8763513b3d2895f6f60
/frameworks/base/services/core/java/com/android/server/am/ActivityRecord.java
16a6279e5f1dde063707adc852f8de1e14206905 01-Apr-2015 Wale Ogunwale <ogunwale@google.com> resolved conflicts for merge of 2094bf7b to master

Change-Id: I1820d186ca602bb3cd21a15f3c23f7d6d309d43b
4e88ecf4bc344557af31eb367e6e01b2d5b60471 01-Apr-2015 Olawale Ogunwale <ogunwale@google.com> am 086071e7: Merge "[ActivityManager] Reduce report wrong anr activity"

* commit '086071e7306a73c9b3c5a56277884b4e19543b3e':
[ActivityManager] Reduce report wrong anr activity
ee006da858459e91666ae53432659e934c8a8dbd 30-Mar-2015 Wale Ogunwale <ogunwale@google.com> Converted more log points in AMS to use ActivityManagerDebugConfig.

Change-Id: I59e777de30e2e9a3c7d086dc634129cd19135fab
/frameworks/base/services/core/java/com/android/server/am/ActivityRecord.java
db46d6b0744d286efc6ad6df600e15285868c2ab 01-Apr-2015 riddle_hsu <riddle_hsu@htc.com> [ActivityManager] Reduce report wrong anr activity

Symptom:
Report ANR on wrong activity.

Reproduce steps:
(All launchMode, taskAffinity are default and
without additional intent flag)
Case 1:
1.Launch activity A from launcher.
2.Activity A starts B activity.
3.Press home key.
4.Launch activity A from launcher (B is top).
5.Press back key twice to finish B and A,
A sleep 10s in onResume.
6.ANR will report on launcher.

Case 2:
1.Launch activity A from launcher.
2.Press home key.
3.Kill process of A.
4.Launch activity A from launcher.
5.A sleep 10s in onResume, press back key immediately.
6.ANR will report on launcher.

Possible root cause:
Focused activity will not be updated every time when activity
resumed. (the condition to call setFocusedActivityLocked)

Case 1:
Launcher was stopped and not waitingVisible due to launcher
is not the previous one, then getWaitingHistoryRecordLocked
has no chance to correct the real ANR activity.

Case 2:
Due to process of next activity is died, bring existed
task will not set mResumedActivity (it will be set when its
process is started), so when assigning waitingVisible from
processStoppingActivitiesLocked, the return value of
allResumedActivitiesVisible will be true even there is no
mResumedActivity. That results set waitingVisible to false
to previous activity (e.g. launcher), then also cannot
correct ANR target as case 1.

Change-Id: I0b24f46a8fab266382ebc6e2ed84ebeca9358768
/frameworks/base/services/core/java/com/android/server/am/ActivityRecord.java
3ab9a27e3d612efef6a046d4df7880803df1eef9 16-Mar-2015 Wale Ogunwale <ogunwale@google.com> Convert some log points to in AMS to use ActivityManagerDebugConfig class.

Change-Id: I02154b0e1c2c64af840848fd6def054342922efa
/frameworks/base/services/core/java/com/android/server/am/ActivityRecord.java
7d701174f423754a2dade39fd16f102c085bd865 11-Mar-2015 Wale Ogunwale <ogunwale@google.com> Protect against NPE for ActivityRecords without a stack.

A previous change allowed us to remove stack that no longer contained
any task. This was causing some NPE when an ActivityRecord.Token or
some other cached ActivityRecord later gets converted back to an
ActivityRecord and we try to access its stack.

Bug: 19552874
Change-Id: Ie9454bbce56591b337f97af40f8c00b8597becdf
/frameworks/base/services/core/java/com/android/server/am/ActivityRecord.java
e23149f1555303940d212b742707518b7f9f84ab 07-Mar-2015 Wale Ogunwale <ogunwale@google.com> Converted some AMS log points to use ActivityManagerDebugConfig.

Change-Id: I0563bafd29ae0bbe596ed8c06fcc573b5ead50b7
/frameworks/base/services/core/java/com/android/server/am/ActivityRecord.java
924a18baa254a5f73e8e38b5730b1acd1e7faf19 25-Feb-2015 Filip Gruszczynski <gruszczy@google.com> am cf8c112e: am 01dd0e86: Merge "Force translucency from windowIsTranslucent on SwipeDismissLayout." into lmp-mr1-modular-dev

* commit 'cf8c112ed87752d79a869de9426b5c5a950b5c43':
Force translucency from windowIsTranslucent on SwipeDismissLayout.
23958c6e2ffd4e76a88bc553fe2874d2f5f3f5e2 24-Feb-2015 Filip Gruszczynski <gruszczy@google.com> Force translucency from windowIsTranslucent on SwipeDismissLayout.

Bug: 18799741

Change-Id: Ifb05869f1bf080d7555d7728dc085c41cc2c277c
/frameworks/base/services/core/java/com/android/server/am/ActivityRecord.java
10e23ab61b820fb3149b2f89003753d98ebd6a80 12-Feb-2015 Chet Haase <chet@google.com> Add ClipReveal window transition for application launch

Issue #19362772 Better material launch animations

Change-Id: Ic94fde910b6b5554ee954dfbbf374949f9eb189d
/frameworks/base/services/core/java/com/android/server/am/ActivityRecord.java
9d3de4cfb42519fefe9d8b03c38ba440bd6bc886 02-Feb-2015 Wale Ogunwale <ogunwale@google.com> Support for activity to opt-in/out of resizeable/multi-window support.

Bug: 19178148
Change-Id: I5819a71cdc48e0af4add11a6d4a503ec5cbe5d63
/frameworks/base/services/core/java/com/android/server/am/ActivityRecord.java
783f28691e27b7b116730fad4f9fd9c083bab283 27-Jan-2015 Wale Ogunwale <ogunwale@google.com> Merge "Support activities in the same process having different resources."
60454dbc4d815c90ff2713e224953d6547fc3ad5 24-Jan-2015 Wale Ogunwale <ogunwale@google.com> Support activities in the same process having different resources.

Activities can be of various sizes in a multi-window environment.
This change allows them to have override configurations that allows
different resources to the loaded if needed.

Bug: 19002213
Change-Id: Ib2c7be0b427f5ce05e7a362bcdd496ddbc9164f0
/frameworks/base/services/core/java/com/android/server/am/ActivityRecord.java
1de57d883e41e7ea46fa4fab6b9da7044ed5cd7c 26-Jan-2015 Craig Mautner <cmautner@google.com> resolve merge conflicts of 2322ea5 to master.

Change-Id: I1570e633bf0d552a32d7fa9a2e0ebd81953f632b
299f960e5e5837da44cd81692388f3cbd5d2c362 26-Jan-2015 Craig Mautner <cmautner@google.com> Add reason string for bringing stack to front

Additional debug and useful information.
Also removed am_resume_activity verbosity and refactored method to
eliminate unused parameter.

For bug 17721767.

Change-Id: Ie1c0652a38a0c6ae6db27a52a9e5da29e252e300
/frameworks/base/services/core/java/com/android/server/am/ActivityRecord.java
885e727ab4e55155d1735f78c8a0550f7f180c8a 20-Jan-2015 Wale Ogunwale <ogunwale@google.com> am f5f54dd6: am 92dd1abe: Update restored task uid to match the package uid on current device. automerge: 7fd985f

* commit 'f5f54dd69122bc07ea0a25b8d98b9048cbe4582f':
Update restored task uid to match the package uid on current device.
92dd1abef4c0a22db40c5f7bbd100e6b471a1ad3 16-Jan-2015 Wale Ogunwale <ogunwale@google.com> Update restored task uid to match the package uid on current device.

The uid on the task we are restoring from another device are
meaningless on the current device. Change updates the uid of any
task we restore to match the package uid on the current device.

Bug: 19014377
Change-Id: I285fbe9f509cae3d2e9a212a59e88f34b4db20e5
/frameworks/base/services/core/java/com/android/server/am/ActivityRecord.java
8c14c15aad749d285b6f395019467a12da7fc9c6 16-Jan-2015 Craig Mautner <cmautner@google.com> Replace waitingVisible and other refactors

- ActivityRecord.waitingVisible is identical to
ActivityStackSupervisor.mWaitingVisibleActivities.contains(). This
ArrayList is never very large so much code can be simplified by
eliminating the waitingVisible member.

- The processStoppingActivityLocked() method can eliminate a lot of
variables by traversing the list top down. This makes the code
simpler to analyze and maintain.

- Declarations of ArrayLists do not need parameterization in the new
constructor. These have been removed in ActivityStackSupervisor.

Fixes item #5 of bug 18088522.

Change-Id: Ib9d648c5fa32c8dd7313882864886c929e1ebc21
/frameworks/base/services/core/java/com/android/server/am/ActivityRecord.java
18795a2299fefd88ee16393f22324b999ace6ce4 03-Dec-2014 Wale Ogunwale <ogunwale@google.com> Add support from restoring recent's backup.

Bug: 15986349
Change-Id: I899f81d317fcd5277a75db7ba50ecca14112df26
/frameworks/base/services/core/java/com/android/server/am/ActivityRecord.java
740c3ac782675d190941b2ab1905e56f246c1b11 13-Nov-2014 Winson Chung <winsonc@google.com> Initial changes to add callback on task stack changes. (Bug 17672056, Bug 18291345)

Add a listener to listen for changes in the Task stacks to preload thumbnails from the
system. In addition, reduce the amount of synchronous work done in activity creation
and first measure/layout passes.

Change-Id: I8bd9155d7a05e89c190a20429acff69a17808208
/frameworks/base/services/core/java/com/android/server/am/ActivityRecord.java
85d558cd486d195aabfc4b43cff8f338126f60a5 04-Nov-2014 Dianne Hackborn <hackbod@google.com> Add Activity API to get referrer information.

This expands the use of EXTRA_REFERRER to be relevant anywhere,
allowing apps to supply referrer information if they want. However,
if they don't explicitly supply it, then the platform now keeps
track of package names that go with Intents when delivering them
to apps, which it can be returned as the default value.

The new method Activity.getReferrer() is used to retrieve this
referrer information. It knows about EXTRA_REFERRER, it can return
the default package name tracked internally, and it also can return
a new EXTRA_REFERRER_NAME if that exists. The latter is needed
because we can't use EXTRA_REFERRER in some cases since it is a Uri,
and things like #Intent; URI extras can only generate primitive type
extras. We really need to support this syntax for referrers, so we
need to have this additional extra field as an option.

When a referrer is to a native app, we are adopting the android-app
scheme. Since we are doing this, Intent's URI creation and parsing
now supports this scheme, and we improve its syntax to be able to build
intents with custom actions and stuff, instead of being all hung up
on custom schemes.

While doing this, fixed a problem when parsing both intent: and new
android-app: schemes with a selector portion, where we were not
respecting any scheme that was specified.

Change-Id: I06e55221e21a8156c1d6ac755a254fea386917a2
/frameworks/base/services/core/java/com/android/server/am/ActivityRecord.java
29c58cad4ef8a14ec0a723318a92da85c8325c88 15-Oct-2014 Craig Mautner <cmautner@google.com> Add null check

Unable to examine bugreports that die in the middle of dump().

Help for bug 17721767.

Change-Id: I31a5e03acf67c926a1cbfefe2a7ea7fca3b71b06
/frameworks/base/services/core/java/com/android/server/am/ActivityRecord.java
337abb3b4e705b06f9385df063be4cc06604be04 24-Sep-2014 Dianne Hackborn <hackbod@google.com> Fix issue #17614141: Add protection for accessing images

Add basic filename protection, also only file names that are for
app icons so this can't be abused to access thumbnails.

Change-Id: I2831c0f3f08a39aa734f93f76b6fd4aaf97e87c6
/frameworks/base/services/core/java/com/android/server/am/ActivityRecord.java
bc3126f859f626938810889cdc58b217c78caef5 18-Sep-2014 Craig Mautner <cmautner@google.com> Merge "Remove activity icon bitmaps from system process." into lmp-dev
648f69b95ce7fc95f551f6e08a2408d6e57dbab9 18-Sep-2014 Craig Mautner <cmautner@google.com> Remove activity icon bitmaps from system process.

When a TaskDescription is sent up to the system process, the Bitmap
contained in the mIcon member is immediately flushed to disk and the
name of the file replaces it in the TaskDescription. Thereby saving
mucho RAM for better uses.

Fixes bug 17527308.

Change-Id: Ifac63ea5d12ed091d1eb03e178b8b847a827f940
/frameworks/base/services/core/java/com/android/server/am/ActivityRecord.java
6cfbb718905210d146fbe8fb18c8e124f24845ec 17-Sep-2014 Dianne Hackborn <hackbod@google.com> Fix issue #17536024: The am start's wait option doesn't...

...give time in some cases

This switch to multiple stacks broke the check to determine if it
should actually wait for a new activity to be shown. The new check
now also requires that the top activity be resumed, which means
we may get some false positives where we decide to wait and shouldn't,
but that is better than consistently not deciding to wait in some
cases when we should. (And we will always finish waiting then next
time something becomes visible).

Also add another time, which is how long it took from the startActivity
call to return with the result. And fix when we decide to report that
we are done so that, in the case where we are bringing an existing
activity to the foreground, we don't wait until its animation is complete.

Change-Id: Id38ca0070f04e7bf8c73e131fb055808553a0e2f
/frameworks/base/services/core/java/com/android/server/am/ActivityRecord.java
2e7f3bdcc9ec0b3e95b565b943ecee2210f4b937 05-Sep-2014 Winson Chung <winsonc@google.com> Removing unnecessary delays, ensuring transition thumbnail is the size of the header. (Bug. 16987565)

Change-Id: Ic104876c5fe16997eca00e0a2b3d8644c927120c
/frameworks/base/services/core/java/com/android/server/am/ActivityRecord.java
1b012d302b56b4adf950035136d1d191a1936d5a 20-Aug-2014 Jeff Hao <jeffhao@google.com> Add sample profiling option to am.

Also bundles all profiling options into a class.

Bug: 17040932
Change-Id: I85d675ee1494bdc7308caffdf94145d27c996e9d
/frameworks/base/services/core/java/com/android/server/am/ActivityRecord.java
4610545dd28ebf316704e119572521e97dbbd6bd 26-Aug-2014 Dianne Hackborn <hackbod@google.com> Merge "Fix issue #16311398: Limit number of documents a process can open" into lmp-dev
89ad456ea49cb62615ebdcac83a2515743bbe5fa 25-Aug-2014 Dianne Hackborn <hackbod@google.com> Fix issue #16311398: Limit number of documents a process can open

In application processes, monitor for when we start getting close
to the Dalvik heap limit, and ask the activity manager to try to
prune old activity instances in that case.

Add an explicit API for apps to ask that they have their own
activity instances cleaned up, if they want.

Fix some bugs in launching activities that were not correctly
applying the "multi task" behavior in the appropriate situations
of document-centric recents.

Clean up the activity manager's process removal code to all share
a common path.

Add a new "Spam" option to ActivityTests, which continually creates
new tasks, checking that the activity manager will now prune old
tasks rather than letting the app run out of RAM.

And while I was was doing this, I found problems with the path
for bringing an empty task to the foreground -- it could make
a new task instead of re-starting the root activity in the
existing task. This is fixed, and some code in the recents
UI for working around the bug is removed.

And as long as I am doing that, we now have nice hooks in to
the activity manager for AppTask to give some APIs for better
managing the task, so add those along with more tests for these
APIs in ActivityTests.

We should look at also having the activity manager try to prune
old tasks when it sees app processes being killed, to better balance
memory use across multiple processes when some processes may host
many documents. That however is for another CL...

Change-Id: I2bb81c3f92819350c868c7a7470b35817eb9bea9
/frameworks/base/services/core/java/com/android/server/am/ActivityRecord.java
a4ccb86ddc8f9f486aee25fb836f4aff97bf7679 23-Aug-2014 Winson Chung <winsonc@google.com> Multiple performance changes to speed recents invocation/app launching time. (Bug 16987565)

- Reverting changes to the existing thumbnail transition to prevent breaking applications
that currently depend on that transition. As a result, we need to create a new, hidden,
aspect-scaled thumbnail transition, and instead use that thumbnail to animate the
recents header so that we don't have to wait to do that inside the Recents activity.

In order for this to work, we also have to ensure that the thumbnail surface destruction
is synchronized with the application that is currently closing (when going down to
recents) or opening (when coming back up). The current thumbnail is destroyed when the
animation ends, but that can be at least 1 frame before the surface for the animating
window is destroyed. We change this by deferring destruction of this thumbnail window
to the animation that is being closed.

Especially on the way up, not having to wait for us to hide the header before doing the
transition up can save us the duration of that first animation (> 100ms).

- Other optimizations:
* No longer creating a new stack view on each transition to calculate the target rect
* Removing unnecessary call to get the thumbnail when transitioning up/down (the actual
window does its own animation.
* We reduced numerous system calls per task by adding a flag to ignore home-stack tasks
and caching the activity label and icon (and task description icon). These caches
follow the same eviction schemes as the thumbnail and icon cache.

- Also tweaked the touch slop for the nav bar swiping gesture to prevent conflicting with
tapping on home (Bug 17109581)

Change-Id: Ica697aad788051a9203edd9351c583e1cb038a71
/frameworks/base/services/core/java/com/android/server/am/ActivityRecord.java
096f36b8db3e513687b78da3e1dd0197fce148a3 21-Aug-2014 Winson Chung <winsonc@google.com> Minor tweaks to recents thumbnails.

- Reducing the size of the recents thumbnails
- Skip persisting if we never update the last thumbnail
- Don't bother loading the last thumbnail file descriptor if we have it in memory
- Fixing warning in getting drawable from resource

Change-Id: Ieddaeac75a5e5d80876a9b6b1d50f7cc84c7d6fd
/frameworks/base/services/core/java/com/android/server/am/ActivityRecord.java
3bad5cc0f5b8ac3018e413ce480692e40039027c 20-Aug-2014 Winson Chung <winsonc@google.com> Fixing issue with inconsistent icon filename. (Bug 16992882)
/frameworks/base/services/core/java/com/android/server/am/ActivityRecord.java
34ff492978d30569e694f7427be430dce66cac06 19-Aug-2014 Jose Lima <joselima@google.com> Fixes for a few bugs related to visible-behind activities

- Allow activities currently not visible to switch back to not
visible-behind state.
- Do not allow an activity that is not set as the visible-behind
activity to cancel the visible-behind state.
- Immediately mark a finishing activity as no longer visible behind.

Bug: 17070266
Change-Id: I2c5016793e5264013b8a54b84098e6ffae34ae6c
/frameworks/base/services/core/java/com/android/server/am/ActivityRecord.java
6ba042b51496b9763d721b6dca8a591c323d648c 28-Jul-2014 George Mount <mount@google.com> Make returning ActivityOptions part of ActivityRecord.

Bug 16626030

Getting the timing correct for when to clear returning activity options
was difficult when Activities can be destroyed and recreated. Moving
the returning ActivityOptions to the ActivityRecord forces the
ActivityOptions to only apply to the correct Activity.

Change-Id: Ib5400b157eb741ae484aae0cc83172a3db637a3e
/frameworks/base/services/core/java/com/android/server/am/ActivityRecord.java
0debc9aff4c0cbc28e083a948081d91b0f171319 17-Jul-2014 Adam Lesinski <adamlesinski@google.com> First iteration of a public UsageStats API

UsageStats API that allows apps to get a list of packages that have been
recently used, along with basic stats like how long they have been in
the foreground and the most recent time they were running.

Bug: 15165667

Change-Id: I2a2d1ff69bd0b5703ac3d9de1780df42ad90d439
/frameworks/base/services/core/java/com/android/server/am/ActivityRecord.java
bb742462781a73bb25516067c8fe6311c1c8a93e 08-Jul-2014 Craig Mautner <cmautner@google.com> Launch activity behind launching task.

Use ActivityOptions.makeLaunchTaskBehindAnimation() to launch tasks
behind the current task. Includes animations for launching and
launched tasks.

Fixes bug 16157517.

Change-Id: I0a94af70b4748592e94673b958ee824cfb3d7ec0
/frameworks/base/services/core/java/com/android/server/am/ActivityRecord.java
a228ae95ea2f842c0e84f237c64bf032689410dd 09-Jul-2014 Craig Mautner <cmautner@google.com> Add task affiliation

Introduces new flag Intent.FLAG_ACTIVITY_LAUNCH_BEHIND which
causes the newly launched task to affiliate with the launching task.
(Later this flag will also launch the task behind the current task).
This shows up in a new member of the RecentTaskInfo class. This also
causes the recents list returned by getRecentsInfo to be rearranged
so that affiliated tasks are together.

Fixes bug 16157517.

Change-Id: Ia1386af50da2f01809278b62d249f05c6a0de951
/frameworks/base/services/core/java/com/android/server/am/ActivityRecord.java
ee2e45acbff28986c2ced636b7550d0afbb0eeb7 27-Jun-2014 Craig Mautner <cmautner@google.com> Add Media Playing API

These methods permit an activity to play or continue playing media
behind a translucent activity above it. Particularly the home
activity in Android TV. Methods exist to notify the upper activity
when playing starts or stops and for notifying the playing activity
when to stop playing and release its resources.

Methods are called when either activity's state changes or new
activities are launched.

Fixes bug 14469711.

Change-Id: I7ba10c5a4683504931cffa228488f5281e5bbf86
/frameworks/base/services/core/java/com/android/server/am/ActivityRecord.java
c0ffce5ddd6446f1d46a49cdfaeda4a2ce408e1d 01-Jul-2014 Craig Mautner <cmautner@google.com> Use cached thumbnails in Recent tasks.

The thumbnail returned from ActivityManager.getTaskThumbnail() now
contains either a Bitmap or a ParcelFileDescriptor that points to
a file containing a compressed Bitmap. The Recent tasks list is
now responsible for all thumbnail Bitmap caching as the activity
manager keeps only the most recent 5. This also permits low memory
devices to have many more tasks in the Recent tasks list.

As part of this CL the concept of subtasks is removed eliminating
code supporting the TaskAccessInfo and IThumbnailRetriever classes.

Fixes bug 15828934.

Change-Id: I0fd0320a1a04e3c78d79357899b83a2fff97abf2
/frameworks/base/services/core/java/com/android/server/am/ActivityRecord.java
77b04267c68b86c512937793f7ce563da55a99f3 28-Jun-2014 Craig Mautner <cmautner@google.com> Add logging to TaskPersister restore.

Solve tasks not being restored.

Fixes bug 15935752.

Change-Id: Ia3dd50072ac8255bcc37812a0639545b60f5d06f
/frameworks/base/services/core/java/com/android/server/am/ActivityRecord.java
2cb86c723195e24278f983241cd6b1e307acf159 25-Jun-2014 Winson Chung <winsonc@google.com> Saving last TaskDescription for TaskRecord.

Change-Id: I531e0fc661fdedeb78bee7d5472668de8e9c2104
/frameworks/base/services/core/java/com/android/server/am/ActivityRecord.java
9d4e9bcebbd97ad51daa0ef15cfba5aabb399bbb 19-Jun-2014 Craig Mautner <cmautner@google.com> Allow a root activity to relinquish task identity

If a an acitivty with attribute android:relinquishTaskIdentity true
is the root activity of a task then the intent of that task will
be that of the first activity in the stack with
android:relinquishTaskIdentity set false.

The ability to set intent also includes the ability to set the
TaskDescription of the task.

Fixes bug 15675610.
Fixes bug 10428661.

Change-Id: Ib28a9eae3b9832eeeef9106adbebe344184ee5ae
/frameworks/base/services/core/java/com/android/server/am/ActivityRecord.java
f62d690b00c3808496e6a5c35f3942c78fbb15d5 18-Jun-2014 Craig Mautner <cmautner@google.com> Merge "Fix persistent tasks and expand scope"
43e52ed32e2d55ef4aee18c4b4bc13b7fdef9cc4 17-Jun-2014 Craig Mautner <cmautner@google.com> Fix persistent tasks and expand scope

- Fixed missing tag closure on the xml for storing Intent categories.
- Shortened timeout for flushing tasks to persistent storage from
one minute to ten seconds.
- Made persistency the default except for those tasks on the home
stack and those tasks that exclude themselves from the recent task
list.
- Fixed deletion of tasks after restoring. Tasks now survive a second
reboot, not just the first reboot.
- Fixed sort order so most recent tasks will be restored at front.

Fixes bug 15672002.

Change-Id: I16d87d58c6fd2e879cfd0c0b18b2694432a79b71
/frameworks/base/services/core/java/com/android/server/am/ActivityRecord.java
8a4c9721a9e09d20c63381c13fa29bd9f7cbc3e3 16-Jun-2014 Jeff Sharkey <jsharkey@android.com> Plumb split APKs into public API.

Introduces new ApplicationInfo fields to surface zero or more split
APKs for an application. Splice these APKs into both the class
loader and resource system. Cleaner building of these paths.

Run dexopt() on all split APKs found after a parse, and populate
into ApplicationInfo.

Change-Id: I4a376bf4492d84ea95aafa866e106ea43a43e492
/frameworks/base/services/core/java/com/android/server/am/ActivityRecord.java
104e14531ca2212117540d8b6abc06ab67564ebc 12-Jun-2014 Dianne Hackborn <hackbod@google.com> am f894cad0: Merge "Some tweaks to improve document task creation." into lmp-preview-dev

* commit 'f894cad093c1a3083f4aca099babc4677977a12f':
Some tweaks to improve document task creation.
d38aed81420d7d992f65ef2efb5f69c1900fc61d 11-Jun-2014 Dianne Hackborn <hackbod@google.com> Some tweaks to improve document task creation.

- Mark the chooser activity as never launching in to a new
task, even if the caller asks for it. These are dialogs
so don't make sense as stand-alone tasks. (Maybe later
the policy should be to not launch into a new task in any
case that the activity is a dialog or even transparent at all.)

- Keep track in the task record of whether any activities in
it have been shown to the user, and use this to automatically
remove the task when all activities finish. This leans up
cases where apps are launching stub activities that get turned
in to tasks but are never seen by the user because they
immediately launch another activity in another task and
then finish.

Change-Id: I00b641c80aa96bd5071479f36ee2e4d8e3a81aeb
/frameworks/base/services/core/java/com/android/server/am/ActivityRecord.java
c6cf95c0f5f7250c65e40c441fe58d8cbfd114c9 29-May-2014 Nicolas Prevot <nprevot@google.com> Making the content resolver work with result intents.

prepareToLeaveUser is called if necessary on result intents.
Adding the targetUserId to grantUriPermissionFromIntentLocked
This allows the GET_CONTENT intent to work across profiles.

Change-Id: Id81280c23247aeda7ad56e34af9b12a6f3a00a3c
/frameworks/base/services/core/java/com/android/server/am/ActivityRecord.java
e0129b3c672f5555deb75366b1a7159f41737874 26-May-2014 Craig Mautner <cmautner@google.com> Add more error checking to xml restore

Bad files and OS updates can cause the restore to throw an NPE.
Rather than bring down the server process over this, just delete
the persistent file and keep going.

Fixes bug 15219594.

Change-Id: Id9cd39988ff93a26def036a05c46209364f2a4c0
/frameworks/base/services/core/java/com/android/server/am/ActivityRecord.java
21d24a21ea4aaadd78e73de54168e8a8a8973e4d 23-Apr-2014 Craig Mautner <cmautner@google.com> Add code for persisting tasks and activities to disk DO NOT MERGE

Recent tasks that have the persistable flag set are
saved to /data/system/recent_tasks/ on shutdown and in the
background. Their thumbnails are saved to
/data/system/recent_images/.

Change-Id: Ifb820a01c412fe1f8c0f6e41aa655fafd89eaa8d
/frameworks/base/services/core/java/com/android/server/am/ActivityRecord.java
a449dc033b79775b8945d9cc5a035a6deb145065 16-May-2014 Winson Chung <winsonc@google.com> Refactoring RecentsActivityValues into TaskDescription, and ensuring they are resolved when set. (Bug 14995928, 14832629)

Change-Id: I582221468e63a96a5dfd132a31b09e72099b170f
/frameworks/base/services/core/java/com/android/server/am/ActivityRecord.java
233ceeebab7efe6ad4783371003c4cf29b896436 10-May-2014 Craig Mautner <cmautner@google.com> Pass ActivityOptions back from finishing activity.

Adding an ActivityOptions parameter to convertToTranslucent provides
a mechanism for delivering these options to the activity that
launched the one that is returning.

Fixes bug 13032208.
Fixes bug 14469460.
Fixes bug 14597427.

Change-Id: I4115dd3c69de9d175f6df0498a6e964fca5eca29
/frameworks/base/services/core/java/com/android/server/am/ActivityRecord.java
d9ddf2e9d04f8a53d7445a96aa3e192fa86f08d6 09-May-2014 Craig Mautner <cmautner@google.com> Merge "Introduce persistent forms of Activity lifecycle calls."
a002604af0c9b1204556610537b85685d7055996 23-Apr-2014 Craig Mautner <cmautner@google.com> Introduce persistent forms of Activity lifecycle calls.

When an Activity is created with R.attr.persistable true different
forms of activity lifecycle methods including PersistableBundle will
be used.

Fixes bug 13736007.

Change-Id: I7e92917b300b76964257cfcc26c24e76aa19bd16
/frameworks/base/services/core/java/com/android/server/am/ActivityRecord.java
41db4a77fa4659d60ad055ec1819a410ce35bf28 08-May-2014 Craig Mautner <cmautner@google.com> Use new doccentric flags and attributes in Sharing

Put the new doccentric flags and attributes into use. And make their
first application the Share widget. Sharing now creates a new task
which is destroyed once the share action has completed.

Fixes bug 14463859.

Change-Id: I34c4c79775ef44d65e1967be5601997a2d46b210
/frameworks/base/services/core/java/com/android/server/am/ActivityRecord.java
c03c9167c2d9a1e22fb2b176b00a0524177fb037 02-May-2014 Dianne Hackborn <hackbod@google.com> Further work on voice interaction services.

This makes VoiceInteractionSession a more first-class
concept. Now the flow is that a VoiceInteractionService
calls startSession() when it wants to begin a session.
This will result in a new VoiceInteractionSession via the
VoiceInteractionSessionService containing it, and the
session at that point an decide what to do. It can now
show UI, and it is what has access to the startVoiceActivity
API.

Change-Id: Ie2b85b3020ef1206d3f44b335b128d064e8f9935
/frameworks/base/services/core/java/com/android/server/am/ActivityRecord.java
03a9baedc9b933bb6a550c0cb84649b1b45b872c 02-May-2014 Winson Chung <winsonc@google.com> Refactoring activity method to update recents values.

Change-Id: Ic525be207714d34abe0c2d26091c3e46abcd9bad
/frameworks/base/services/core/java/com/android/server/am/ActivityRecord.java
09233289624a85093b1d99e4a6a149bf09059d8d 30-Apr-2014 Dianne Hackborn <hackbod@google.com> Make GET_TASKS signature|system.

Normal apps can't hold it now. If they try to use
getRecentTasks() or getRunningTasks() without the permission,
they will only see their own tasks and home in the list.

Also took this opportunity to eradicate all of the old pending
thumbnail stuff.

Change-Id: I6dc52a06221c78097162e4a8b482027b798bf3ee
/frameworks/base/services/core/java/com/android/server/am/ActivityRecord.java
91097de49b0f683b00e26a75dbc0ac6082344137 05-Apr-2014 Dianne Hackborn <hackbod@google.com> Initial implementation of new voice interaction API.

This gives a basic working implementation of a persist
running service that can start a voice interaction when
it wants, with the target activity(s) able to go through
the protocol to interact with it. It may even work when
the screen is off by putting the activity manager in the
correct state to act like the screen is on.

Includes a sample app that is a voice interation service
and also has an activity it can launch.

Now that I have this initial implementation, I think I
want to rework some aspects of the API.

Change-Id: I7646d0af8fb4ac768c63a18fe3de43f8091f60e9
/frameworks/base/services/core/java/com/android/server/am/ActivityRecord.java
846318a3250fa95f47a9decfbffb05a31dbd0006 04-Apr-2014 Jeff Sharkey <jsharkey@android.com> Allow prefix-based Uri permission grants.

Define new FLAG_GRANT_PREFIX_URI_PERMISSION which indicates that a
Uri permission grant should also apply to any other Uris that have
matching scheme, authority, and path segments. For example, a prefix
grant for /foo/ would allow /foo/bar/ but not /foo2/.

Allow persistable and prefix grants to be issued directly through
grantUriPermission(). Relaxing persistable is fine, since it still
requires the receiver to actively take the permission.

Since exact- and prefix-match grants for the same Uri can coexist,
we track them separately using a new UriGrant key. (Consider the
case where an app separately extends READ|PREFIX and WRITE for
the same Uri: we can't let that become READ|WRITE|PREFIX.)

Fix revoke to always take away persisted permissions. Move prefix
matching logic to Uri and add tests. Add new flags to "am" tool, and
various internal uses around Intent and Context. Switch some lagging
users to ArraySet.

Bug: 10607375
Change-Id: Ia8ce2b88421ff9f2fe5a979a27a026fc445d46f1
/frameworks/base/services/core/java/com/android/server/am/ActivityRecord.java
7ad27288f1b66733a4fcb2bdcb17dd5db6c6423d 22-Apr-2014 Craig Mautner <cmautner@google.com> am c00c89b1: am f4c909bc: Fix ActivityView lifecycle

* commit 'c00c89b1add5bcbf6a76287c9a3384877449c746':
Fix ActivityView lifecycle
c00c89b1add5bcbf6a76287c9a3384877449c746 22-Apr-2014 Craig Mautner <cmautner@google.com> am f4c909bc: Fix ActivityView lifecycle

* commit 'f4c909bcb87d6f103c9f9e8255fa61bd86f4de67':
Fix ActivityView lifecycle
f4c909bcb87d6f103c9f9e8255fa61bd86f4de67 18-Apr-2014 Craig Mautner <cmautner@google.com> Fix ActivityView lifecycle

Major changes to maintain the VirtualDisplay across repeated
attach/detach cycles of an ActivityView. This keeps the activities
and VirtualDisplays in the ActivityView from getting into bad states.

Fixes bug 14107002.

Change-Id: Idc2aaf85ac496eab0eeb436736cb10a2020040e8
/frameworks/base/services/core/java/com/android/server/am/ActivityRecord.java
f7fbe099a80a6955f7c910dbae3c6fecfc0b151a 08-Apr-2014 George Mount <mount@google.com> Merge "Allow opaque windows to become translucent."
8ea553d03a84e2fc3ded507dd978fca0dee22e77 08-Apr-2014 Craig Mautner <cmautner@google.com> am 8f2adcb1: am 228cefa8: am 3fb2b713: Merge "[ActivityManager] Reduce report ANR on wrong activity."

* commit '8f2adcb10e9ddf2cc06cc4af431c9afb7be9d79a':
[ActivityManager] Reduce report ANR on wrong activity.
8f2adcb10e9ddf2cc06cc4af431c9afb7be9d79a 08-Apr-2014 Craig Mautner <cmautner@google.com> am 228cefa8: am 3fb2b713: Merge "[ActivityManager] Reduce report ANR on wrong activity."

* commit '228cefa83dd7b95e5581f619bb597808af726f80':
[ActivityManager] Reduce report ANR on wrong activity.
688b5105d665a56e6f2f040f3ca89ca3006801df 28-Mar-2014 Craig Mautner <cmautner@google.com> Implement setActivityLabelAndIcon().

Replaces Activity.setRecentsLabel and Activity.setRecentsIcon.
Simple top-down traversal to find the highest activity with a
specified label and icon. Adds the Intent of that activity to
RecentTaskInfo as well so that Recents can get the launcher
icon if UX desires it.

Fixes bug 13675322.

Change-Id: I62d7d8f4df4dc81012f451e0cdea8a2943aedeec
/frameworks/base/services/core/java/com/android/server/am/ActivityRecord.java
913487ceca69ef785fc2d78ee09389deca1dde54 24-Mar-2014 George Mount <mount@google.com> Allow opaque windows to become translucent.

Bug 13624779

Change-Id: I0c4885f227751edf96091d852c4bd3a729f1f5a7
/frameworks/base/services/core/java/com/android/server/am/ActivityRecord.java
fea8d956649589f1cfd378571cc9ad61a92cd480 24-Mar-2014 George Mount <mount@google.com> Merge "Fix null ActivityOptions when starting an Activity in a new Process."
2fbd7541804f816171849413b095fcfc70e06c1e 21-Mar-2014 Craig Mautner <cmautner@google.com> Add Activity methods for icons and labels.

New Activity methods setRecentsLabel(CharSequence) and
setRecentsIcon(Bitmap) have been added. The topmost
activity with either of these set will be returned in
RecentTaskInfo members activityLabel and activityIcon.

Fixes bug 13562992.

Change-Id: Ic15d1d27b733b892a2a940063b105ac48f1ffee5
/frameworks/base/services/core/java/com/android/server/am/ActivityRecord.java
2c92c9700c7b06f3c7dd5ab15d8343dfce68c833 20-Mar-2014 George Mount <mount@google.com> Fix null ActivityOptions when starting an Activity in a new Process.

Bug 13563265

Change-Id: Ie56cd6d55f13dbf68bafb82ab4bd6b27fde60df6
/frameworks/base/services/core/java/com/android/server/am/ActivityRecord.java
8a985d24ce9a38f40ed88fecbdcd0e75e3a68f44 25-Feb-2014 John Spurlock <jspurlock@google.com> Tabs -> spaces in frameworks/base.

Change-Id: I5a84e8e93ac99b5ed0212b37bf66efa5e53864be
/frameworks/base/services/core/java/com/android/server/am/ActivityRecord.java
3a43aa9cef79324dd149a47c5a73ce1fa8ed95b3 15-Jan-2014 Craig Mautner <cmautner@google.com> am 9cfb2e5f: Merge "Retain stacks even if they are empty." into klp-modular-dev

* commit '9cfb2e5f4c95c16d8ca531808f60486f214f9039':
Retain stacks even if they are empty.
04a0ea60ac7e20369e63edc4f3f8cedf8425a439 13-Jan-2014 Craig Mautner <cmautner@google.com> Retain stacks even if they are empty.

Previously stacks would be removed when the last ActivityRecord was
removed. This causes problems for ActivityContainers which persist and
permit activities to be launched into an empty stack.

Change-Id: Ia79ac65d17c42eff3a7b1321980c21b29996001b
/frameworks/base/services/core/java/com/android/server/am/ActivityRecord.java
b859449b717b24ac6e678c303d7706d55fd184f7 08-Jan-2014 Craig Mautner <cmautner@google.com> resolved conflicts for merge of 88bfc6dd to master

Change-Id: Ib656ac0591b21ad14f2df51021729552e9373515
e0a3884cb627efc650e19fbe76b1b3343468cf57 17-Dec-2013 Craig Mautner <cmautner@google.com> Extend stack management to other displays.

- Abandon ActivityContainer.startActivity() in favor of
IActivityManager.startActivityAsUserInContainer().
- Modify Am to test starting an activity on a container.
- Create a DisplayContext as the base context if the activity token
is on a different display.
- Test for home display in more cases when manipulating home stack.
- Rename mDisplayInfos => mActivityDisplays.
- Create new method for moving task to front of stack regardless of
which display it is on.

Change-Id: I4fcb83ae844c5839ee3e2722229623d1a80ed921
/frameworks/base/services/core/java/com/android/server/am/ActivityRecord.java
49782e46c0eb85a25ae2abcf80880c48dbab5aea 20-Dec-2013 Amith Yamasani <yamasani@google.com> am 9158825f: Move some system services to separate directories

* commit '9158825f9c41869689d6b1786d7c7aa8bdd524ce':
Move some system services to separate directories
9158825f9c41869689d6b1786d7c7aa8bdd524ce 22-Nov-2013 Amith Yamasani <yamasani@google.com> Move some system services to separate directories

Refactored the directory structure so that services can be optionally
excluded. This is step 1. Will be followed by another change that makes
it possible to remove services from the build.

Change-Id: Ideacedfd34b5e213217ad3ff4ebb21c4a8e73f85
/frameworks/base/services/core/java/com/android/server/am/ActivityRecord.java