Commit Graph

1878 Commits

Author SHA1 Message Date
Craig Mautner
3cf234a639 am 4e09cb9b: am 38bcf6dc: am 422d7003: am f431daa2: Merge "Fix to NullPointerException on move back in ActivityStack."
* commit '4e09cb9bf6165f68b42549772b74596ceb6198fe':
  Fix to NullPointerException on move back in ActivityStack.
2013-12-17 16:51:58 +00:00
Craig Mautner
4e09cb9bf6 am 38bcf6dc: am 422d7003: am f431daa2: Merge "Fix to NullPointerException on move back in ActivityStack."
* commit '38bcf6dc8784625eb4b68634450c578719346669':
  Fix to NullPointerException on move back in ActivityStack.
2013-12-17 16:48:46 +00:00
Craig Mautner
422d7003db am f431daa2: Merge "Fix to NullPointerException on move back in ActivityStack."
* commit 'f431daa22811fdce9c4ec975d5d33121898b4f9b':
  Fix to NullPointerException on move back in ActivityStack.
2013-12-17 08:42:31 -08:00
Daniel 2 Olofsson
9cdf9e52d9 Fix to NullPointerException on move back in ActivityStack.
In ActivityTask.moveTaskToBackLocked NullPointerException may occur
when moving back with only current Activity in stack. This due to a
condition that may trigger despite a TaskRecord being null and then
attempt accessing the TaskRecord.mOnTopOfHome variable.

TaskRecord task may be set to null when no resumed activity remain.

Resolved by assuring that flag mOnTopOfHome is instead set to false
for current TaskRecord in case where there are no remaining activities
above home.

The above bug has already been corrected in the following commit,
ada62fca51, but it does not set the
cottect value to mTopOfHome for the current taks, see below.

Variable mOnTopOfHome will not be set to false in situations where
stack is of size 1 or less and task is null, perhaps from already
having finished current activity.

To avoid current TaskRecord maintaining value mOnTopOfHome to true
after launching Home this variable is set to false.

Impact should not be major due to correction earlier that makes sure
that there is always a TaskRecord.mOnTopOfHome set to true above Home
activity but if not correctly set for current task still gives a
possibility of bad behavior.

Change-Id: Ie86ad99c188aaa05b0de9d58eaa16c42b6fc4341
2013-12-17 11:35:23 +01:00
Craig Mautner
3b475fefa3 Fix incorrect setting of TaskRecord.frontOfTask DO NOT MERGE
When Intent.FLAG_ACTIVITY_REORDER_TO_FRONT was set the TaskRecord
member frontOfTask was being set true incorrectly for the top
activity. It should only be true for the bottom activity. This fix
ensures that frontOfTask is always set correctly for all activities by
consoldating it into one method.

Fixes bug 12171535.

Change-Id: If982dad3c81b2b816adc5d89e7e0496923098a70
2013-12-16 16:56:19 -08:00
Craig Mautner
1aa9d0d3f6 Fix incorrect setting of TaskRecord.frontOfTask
When Intent.FLAG_ACTIVITY_REORDER_TO_FRONT was set the TaskRecord
member frontOfTask was being set true incorrectly for the top
activity. It should only be true for the bottom activity. This fix
ensures that frontOfTask is always set correctly for all activities by
consoldating it into one method.

Fixes bug 12171535.

Change-Id: If982dad3c81b2b816adc5d89e7e0496923098a70
2013-12-16 16:06:30 -08:00
Kenny Root
6a0db59901 resolved conflicts for merge of e0b14ea7 to master
Change-Id: Ie018d3e2eba1eb2d655c153880e1951b68c2bd51
2013-12-13 15:59:51 -08:00
Kenny Root
e0b14ea70b am 31b9ec01: am 62d509d2: am 37c69fdd: Merge "Use java.util.Objects instead on internal API"
* commit '31b9ec01ff6087773cb35af6824a6422a0181afb':
  Use java.util.Objects instead on internal API
2013-12-13 22:23:33 +00:00
Kenny Root
62d509d24f am 37c69fdd: Merge "Use java.util.Objects instead on internal API"
* commit '37c69fdd826f3973966430adc1abfbefc19bc16e':
  Use java.util.Objects instead on internal API
2013-12-13 14:17:29 -08:00
Kenny Root
e6585b32ea Use java.util.Objects instead on internal API
Not needed since java.util.Objects implements all the needed
functionality.

Change-Id: Icd31d49a9801d1705427f028e9ac927d58e7d34c
2013-12-13 13:40:30 -08:00
Adam Lesinski
ef2ea1faf6 Introduce a Lifecycle for system services
Cherry-picked from klp-modular-dev

Provide an abstract class for system services to extend from,
similar to the android.app.Service.

This will allow services to receive events in a uniform way,
and will allow services to be created and started in the
correct order regardless of whether or not a particular
service exists.

Similar to android.app.Service, services are meant to implement
Binder interfaces as inner classes. This prevents services from
having incestuous access to each other and makes them use the
public API.

Change-Id: Iaacfee8d5f080a28d7cc606761f4624673ed390f
2013-12-12 18:49:49 -08:00
Adam Lesinski
182f73fc4d Introduce a Lifecycle for system services
Provide an abstract class for system services to extend from,
similar to the android.app.Service.

This will allow services to receive events in a uniform way,
and will allow services to be created and started in the
correct order regardless of whether or not a particular
service exists.

Similar to android.app.Service, services are meant to implement
Binder interfaces as inner classes. This prevents services from
having incestuous access to each other and makes them use the
public API.

Change-Id: Iaacfee8d5f080a28d7cc606761f4624673ed390f
2013-12-12 16:35:11 -08:00
Craig Mautner
87b25acffb Merge "Put new Activity at frontOfTask" 2013-12-11 23:11:22 +00:00
Craig Mautner
dab959d498 Put new Activity at frontOfTask
If all previous activities are finishing then a newly added activity
should be marked frontOfTask. Not doing so will cause the wrong
activity to be brought up next.

Fixes bug 12054192.
Fixes bug 11575233.

Change-Id: I663a4da62aa55359c2e970276a6c7cade557634f
2013-12-10 14:47:57 -08:00
Dianne Hackborn
4190fc52e1 Fix crash:
W/BinderNative(  667): Uncaught exception from death notification
W/BinderNative(  667): java.lang.ArrayIndexOutOfBoundsException: length=0; index=0
W/BinderNative(  667): 	at android.util.ArraySet.valueAt(ArraySet.java:301)
W/BinderNative(  667): 	at com.android.server.am.ActiveServices.killServicesLocked(ActiveServices.java:2069)
W/BinderNative(  667): 	at com.android.server.am.ActivityManagerService.cleanUpApplicationRecordLocked(ActivityManagerService.java:12412)
W/BinderNative(  667): 	at com.android.server.am.ActivityManagerService.handleAppDiedLocked(ActivityManagerService.java:3596)
W/BinderNative(  667): 	at com.android.server.am.ActivityManagerService.appDiedLocked(ActivityManagerService.java:3744)
W/BinderNative(  667): 	at com.android.server.am.ActivityManagerService$AppDeathRecipient.binderDied(ActivityManagerService.java:1024)
W/BinderNative(  667): 	at android.os.BinderProxy.sendDeathNotice(Binder.java:493)
W/BinderNative(  667): 	at dalvik.system.NativeStart.run(Native Method)

Change-Id: I5cd03187dfaa8ec25c7db34ad10e2b6c089c468c
2013-12-09 18:20:16 -08:00
Craig Mautner
bdc748af8c DO NOT MERGE: Eliminate StackBox.
StackBox is too constraining. Adding size and position to TaskStacks
directly makes stack positioning and management more flexible and
prepares for ActivityView.

Change-Id: I33c6b4e1c23a5a8069fd507c160bcb34e4d287b2
2013-12-09 15:15:34 -08:00
Mike Lockwood
e63f6f7c8d DO NOT MERGE: Remove obsolete "headless" support
Change-Id: I829fe48e6ebcb819e260646bb19ac6ddfcf07f83
2013-12-09 15:14:37 -08:00
Dianne Hackborn
aa9875eb2d Fix issue #12031685: Sticky Service Breakage in Android 4.4.1
Got a little too aggressive about cleaning up service state; need to
avoid removing services from an app until we are in the second loop
doing the final cleanup, otherwise we can leave services around with
restarting their process.

Change-Id: I526a80285b4ef90c329db7c13442a27b9ad3585f
2013-12-09 11:26:11 -08:00
Adam Powell
cfbe9be5b3 Add support for cross-activity scenes and transitions
* Add theme attributes for specifying a top-level TransitionManager
  for an activity window.

* Add window feature for automatic content transitions. This
  automatically assigns/creates a Scene for setContentView calls.

* Add named transitions. This allows apps to define APIs for
  handshake-agreements about which exit/entrance transitions to play.

* Add new transition type for ActivityOptions. This lets the system
  use ActivityOptions to communicate transition specifics and
  arguments to the called activity.

* Have ActivityManager pass appropriate ActivityOptions through to the
  called Activity. Have the called activity call back into the caller
  to let it know which transition of a possible requested set was
  chosen.

Still to do:

* Define and pass arguments for transitions. This will require
  defining a Parcelable version of TransitionValues and deciding how
  much leeway apps should have for these things.

* Determine how to appropriately filter the ActivityOptions bundle so
  that only appropriate data reaches the target.

* Determine if generalizing the auto-Scenes functionality to
  ViewGroups is appropriate.

Change-Id: I10684b926129ab2fbc1adec9ef31767237acae79
2013-12-05 10:06:19 -08:00
Dianne Hackborn
06a06db5c4 Fix issue #11536426: Permission denied when trying to launch...
...an activity from a notification

We don't remove pending intents when updating an app, which is necessary
to keep app widgets and other things working.  However, when uninstalling
an app, we should clear out all of its pending intents.

Change-Id: I4b2980f407dbae6c2f4700ca8bc08f299f0a6dca
2013-12-02 10:46:29 -08:00
Dianne Hackborn
139156f40a am 3d004830: am 2c082ae3: am 90e9b1d3: Fix issue #11790471: Crash removed home buttons and notification bar/shade
* commit '3d0048304590a61cf32902440a3fcc27d0281f89':
  Fix issue #11790471: Crash removed home buttons and notification bar/shade
2013-11-21 14:16:52 -08:00
Dianne Hackborn
3d00483045 am 2c082ae3: am 90e9b1d3: Fix issue #11790471: Crash removed home buttons and notification bar/shade
* commit '2c082ae3d209aa590c1839d75436f7aa77b37125':
  Fix issue #11790471: Crash removed home buttons and notification bar/shade
2013-11-21 14:14:12 -08:00
Dianne Hackborn
90e9b1d3dc Fix issue #11790471: Crash removed home buttons and notification bar/shade
Whoops persistent processes are, well, persistent.  Don't remove
services from them.  We'll be keeping that process record around.

Change-Id: I29e9fb6f704efdf0caad5e0307a7adbb416eed3b
2013-11-21 12:56:03 -08:00
John Spurlock
6090995951 Remove unused imports from frameworks/base.
Change-Id: Ia1f99bd2c1105b0b0f70aa614f1f4a67b2840906
2013-11-20 11:31:47 -05:00
Adam Lesinski
7ae9ea572d am bac61807: am 1abead42: am 245408d2: Merge "Do not hold direct ref BatteryStatsImpl" into klp-dev
* commit 'bac61807d3bcfff957b358cb9ad77850bd373689':
  Do not hold direct ref BatteryStatsImpl$Uid$Proc
2013-11-18 13:36:06 -08:00
Adam Lesinski
bac61807d3 am 1abead42: am 245408d2: Merge "Do not hold direct ref BatteryStatsImpl" into klp-dev
* commit '1abead425c0e862e316e17521833a33d22e7a850':
  Do not hold direct ref BatteryStatsImpl$Uid$Proc
2013-11-18 13:32:42 -08:00
Adam Lesinski
245408d290 Merge "Do not hold direct ref BatteryStatsImpl$Uid$Proc" into klp-dev 2013-11-18 21:26:32 +00:00
Adam Lesinski
2cd3fb5aa7 Do not hold direct ref BatteryStatsImpl$Uid$Proc
BatteryStatsImpl can reset its collected data, including
removing a BatteryStatsImpl$Uid$Proc object. If a ProcessRecord
has a direct reference, then the battery stats for a process
will be recorded in an old Proc object and prevent GC, causing
a memory leak.

bug:11087238
Change-Id: I19a9cd9d8361c10446a8ebdd5c0860b56c442209
2013-11-18 12:29:34 -08:00
Mike Lockwood
ed8902d3b5 Remove obsolete "headless" support
Change-Id: I18e7a4c5166163372ec0a8abbef1063668a0f5b6
2013-11-15 11:01:47 -08:00
Christopher Tate
63e1883d96 am a5acd62b: am 6e5cf573: am 99437f25: Merge "Ensure recipient can be launched before attempting broadcast delivery" into klp-dev
* commit 'a5acd62bdefe5b616c0ea080434e9dd221169527':
  Ensure recipient can be launched before attempting broadcast delivery
2013-11-14 15:49:15 -08:00
Dianne Hackborn
66ecb22c22 am 8e9b5fc9: am 59bf3be7: am 2e3ede74: Merge "Maybe fix issue #11634365: Leaking restarting services" into klp-dev
* commit '8e9b5fc93278084487fd98726c6e20333d675c40':
  Maybe fix issue #11634365: Leaking restarting services
2013-11-14 15:49:11 -08:00
Christopher Tate
a5acd62bde am 6e5cf573: am 99437f25: Merge "Ensure recipient can be launched before attempting broadcast delivery" into klp-dev
* commit '6e5cf573f2f2e17825af2973daeba893c6aa5855':
  Ensure recipient can be launched before attempting broadcast delivery
2013-11-14 15:44:40 -08:00
Dianne Hackborn
8e9b5fc932 am 59bf3be7: am 2e3ede74: Merge "Maybe fix issue #11634365: Leaking restarting services" into klp-dev
* commit '59bf3be7d1cd7311cf60ead6872f33433a097bd1':
  Maybe fix issue #11634365: Leaking restarting services
2013-11-14 15:44:36 -08:00
Christopher Tate
99437f252b Merge "Ensure recipient can be launched before attempting broadcast delivery" into klp-dev 2013-11-14 22:59:20 +00:00
Dianne Hackborn
2e3ede7497 Merge "Maybe fix issue #11634365: Leaking restarting services" into klp-dev 2013-11-14 22:56:14 +00:00
Dianne Hackborn
ddc19e9847 Maybe fix issue #11634365: Leaking restarting services
It looks like we could add services to the restart list because
they end up left in the process's list of running services after
they have been removed from the main activity list, and we can
trip up on them there when the app is being force stopped.

Change-Id: I79805b67fcf5b593430dc5c856c97927e1a54a57
2013-11-14 14:32:17 -08:00
Christopher Tate
ba629da331 Ensure recipient can be launched before attempting broadcast delivery
User removal or eviction inherently races with broadcast delivery.  This
patch introduces a latest-possible recheck of the availbility of the
target application before attempting to send it a broadcast.

Once the process has actually been spun up the system is essentially
committed to presenting it as a running application, and there is no
later check of the availability of the app: the failure mode for
continuing to attempt delivery is a crash *in the app process*,
and is user-visible.

We now check the app+userid existence of the intended recipient
just prior to committing to launch its process for receipt, and
if it is no longer available we simply skip that receiver and
continue normally.

Bug 11652784
Bug 11272019
Bug 8263020

Change-Id: Ib19ba2af493250890db7371c1a9f853772db1af0
2013-11-14 12:37:31 -08:00
Craig Mautner
a3da4623b1 am 1fbb5da2: am 29bbd570: am 1f0f9fa9: Merge "Add null pointer check." into klp-dev
* commit '1fbb5da29a4ebef1d758dffad9c2704a5932d223':
  Fix a JNI local reference leak in JNIMediaPlayerListener::notify.
  Add null pointer check.
  Import translations. DO NOT MERGE
  Small DocumentsProvider doc improvements.
  Keyguard isn't visible if it hasn't been drawn.
  Enable fast camera transition when launched from navbar
  Reduce camera launch time by about 250ms.
  camera2: Remove prior repeating request when setting.
2013-11-13 18:47:54 -08:00
Craig Mautner
1fbb5da29a am 29bbd570: am 1f0f9fa9: Merge "Add null pointer check." into klp-dev
* commit '29bbd570fe36c55321a3cd9d84330dea9d2f1e10':
  Add null pointer check.
2013-11-13 16:23:38 -08:00
Craig Mautner
1f0f9fa949 Merge "Add null pointer check." into klp-dev 2013-11-14 00:15:55 +00:00
Craig Mautner
ada62fca51 Add null pointer check.
Fixes bug 11673948.

Change-Id: I60b590b9793ae1b8d5c3d343f4bb6cb40ba4a092
2013-11-13 15:09:55 -08:00
Craig Mautner
b12eb71c4f Merge commit 'bf581034' into manualmerge
Conflicts:
	tools/layoutlib/bridge/src/android/view/IWindowManagerImpl.java

Change-Id: I9fd35ea9166ec73ce1f9f6154aa4ec87e79e20cb
2013-11-12 19:17:06 -08:00
Craig Mautner
bf581034f9 am 679ba4e8: am 6cd206b2: Merge "Relayout windows that handle their own config change." into klp-dev
* commit '679ba4e86e4fecb6dbfe48d6c49205c32f995a1c':
  Relayout windows that handle their own config change.
2013-11-12 16:00:54 -08:00
Craig Mautner
5d9f547720 Relayout windows that handle their own config change.
If a window claims to handle its own configuration change then we
won't destroy and recreate its window on a configuration change.
Normally that recreation triggers the first layout following
orientation change because mHaveFrame is false. Windows that handle
their own configuration changes never got a relayout pass following a
change in orientation.

This change passes the configuration changes that an application
handles into the AppWindowToken. If the app says it handles
orientation or screen size changes then a relayout will occur when the
configuration has changed.

Fixes bug 11647107.

Change-Id: Ie8d49fd050442ebbdcf0b805087894e3a2fc4be9
2013-11-12 14:02:52 -08:00
Craig Mautner
de558603dc Merge "Revert "Add logging for b10858941."" 2013-11-12 17:58:19 +00:00
Craig Mautner
127299fb5b Revert "Add logging for b10858941."
This reverts commit 02d3c985f3.

Change-Id: Ida2b1aa6116fdaf003c6611890a19c1c312d2bd1
2013-11-12 17:57:47 +00:00
Dianne Hackborn
034d9e9459 am bf687484: am 0259c010: am 596e409e: Merge "Work on issue #11634365: Leaking restarting services" into klp-dev
* commit 'bf687484573ef63c5b54adfc0325a41115fb49fa':
  Work on issue #11634365: Leaking restarting services
2013-11-11 20:52:22 -08:00
Dianne Hackborn
e75b987182 am f488cd3b: am 7e40e317: am c85a1143: Merge "Fix issue #11630188: Still seeing some processes not on LRU list errors" into klp-dev
* commit 'f488cd3b77c064c29040edc5af1fc98d6faa994e':
  Fix issue #11630188: Still seeing some processes not on LRU list errors
2013-11-11 20:51:12 -08:00
Craig Mautner
c46c4992ef am 6492c0f3: am 22a97106: am 8cfa6d08: Merge "Use old task info when creating new task." into klp-dev
* commit '6492c0f3af881c070170a00212e5e034f74436ae':
  Use old task info when creating new task.
2013-11-11 20:50:56 -08:00
Dianne Hackborn
bf68748457 am 0259c010: am 596e409e: Merge "Work on issue #11634365: Leaking restarting services" into klp-dev
* commit '0259c010221c73db11ee52b4b0758a179e5c0db1':
  Work on issue #11634365: Leaking restarting services
2013-11-11 18:05:10 -08:00