Commit Graph

696 Commits

Author SHA1 Message Date
Fabrice Di Meglio
aac0d4ed02 Replace left/right with start/end for Gravity / LayoutParams / Padding
- see bug #5429822 UI should be mirrored for RTL locales (Arabic, Hebrew, farsi)

Change-Id: Id9af5375fb9b0edeae5232c77e52ecd497bd2e67
2012-07-19 19:21:26 -07:00
fredc
0f42037eb7 Non persistent adapter service
Change-Id: Ib13d5c77416e58161df0e04d7a15ec0dddbde8b5

Conflicts:

	core/java/android/bluetooth/BluetoothInputDevice.java

Conflicts:

	core/java/com/android/internal/app/ShutdownThread.java
	services/java/com/android/server/SystemServer.java

Conflicts:

	services/java/com/android/server/SystemServer.java
	services/java/com/android/server/pm/ShutdownThread.java
2012-07-16 21:20:54 -07:00
Dianne Hackborn
c7b2778c2d am cfb0f409: Merge "Fix issue #6745498: Cannot view consecutive event details from agenda view" into jb-dev
* commit 'cfb0f40903cf2180ce0947cdd965e2f5b90b48bb':
  Fix issue #6745498: Cannot view consecutive event details from agenda view
2012-06-28 15:36:40 -07:00
Dianne Hackborn
45a25bcfc9 Fix issue #6745498: Cannot view consecutive event details from agenda view
- There was a long-standing bug when using FLAG_ACTIVITY_REORDER_TO_FRONT
where we could find and use an activity that is currently finishing.
- There was a recently introduced bug where activities being destroyed
would not be removed from the history stack at the time they are done
being destroyed, allowing the above bug to be exposed.
- Removing a task would not kill any processes associated with the app
that had a different name from the app itself.

Change-Id: I4401ab6d348a69e1ac4fb8f719d2c69d5a78e567
2012-06-28 13:49:17 -07:00
Dianne Hackborn
9906e784fa am 17990395: Merge "Fix issue #6717667: expanded notification actions don\'t work on the lock screen" into jb-dev
* commit '17990395bc62f8ce1bae4f1880899f231a8e613b':
  Fix issue #6717667: expanded notification actions don't work on the lock screen
2012-06-25 17:37:15 -07:00
Dianne Hackborn
1927ae8a56 Fix issue #6717667: expanded notification actions don't work on the lock screen
FLAG_ACTIVITY_CLOSE_SYSTEM_DIALOGS was a mistake.

Instead, and the infrastructure for the status bar to take care
of closing and hiding things itself when you press these buttons,
just like it does for the main Intent of the notification.

Bug: 6717667
Change-Id: I1b22186e0cedc05f46a1a3ec78053a72afaf61b1
2012-06-25 14:28:48 -07:00
Kenny Root
ae017c5582 am a9543a3d: Merge "Pass additional inputs when spawning apps via the Zygote and add SELinux permission checks."
* commit 'a9543a3dad0da58f30580bdf99b76bc2ab97a2df':
  Pass additional inputs when spawning apps via the Zygote and add SELinux permission checks.
2012-06-21 14:17:13 -07:00
Kenny Root
a9543a3dad Merge "Pass additional inputs when spawning apps via the Zygote and add SELinux permission checks." 2012-06-21 11:05:55 -07:00
Jean-Baptiste Queru
b8c6405fda resolved conflicts for merge of cddaf4d5 to jb-dev-plus-aosp
Change-Id: I973d361a9599b32f9eaced0748d984900590ea3d
2012-06-11 11:01:19 -07:00
Dianne Hackborn
f72467ad98 Include important native processes in watchdog stacks.
Helps us track down deadlocks involving native service processes.

Bug: 6615693
Change-Id: I580047550772e29586195a8cf440141574e3f40c
2012-06-08 18:36:48 -07:00
Björn Davidsson
90f9e31343 Performance: Activity manager perf unnecessary recalc of oom_adj
If an activity has bound servicesor content providers,
updateLruProcessInternalLocked will be called recursively with
the oomAdj flag set, resulting in several recalculations of oomAdj
with unchanged data. Doing it at the end of the top level call to
updateLruProcessInternalLocked should be sufficient.

Change-Id: I95e27011e1d3519f256a9bd756cbb18d43e8db29
2012-06-08 12:56:14 +02:00
Dianne Hackborn
bd145dbfd7 Fix issue #6609383: java.lang.SecurityException: Requires...
...MANAGE_APP_TOKENS permission

Bug: 6609383
Change-Id: I5ce8ac1ec496af50477111b46e6daea81181e3ca
2012-06-05 16:20:46 -07:00
Dianne Hackborn
84375876fc Work on issue #6579997: Mariner entrance animation
Add a new variation of ActivityOptions that allows you to
supply custom animation resources and get a callback when the
animation starts.

Use this in SearchPanelView to determine when to start hiding
the search panel instead of having a fixed delay.

Fix some issues in the activity manager where we would cancel
the options in cases where we should actually keep them to give
to the window manager for a transition.  (Basically when the
activity being started is not actually ending up launched, but
just results in a shift in the activity stack.)

Note that this is not quite what the design calls for -- the
entire search UI is waiting and then disappearing when the
animation starts, instead of the ring first disappearing while
waiting for the time to fade out the circle.

Change-Id: Iee9a404ba530908d73cdbd4a9d0d2907ac03428f
2012-06-01 19:13:55 -07:00
Dianne Hackborn
a93c2c117d Extend process observer to be usable for media routing.
It now has a new callback to report changes in the "importance"
of processes.  Rewrote the dispatching code to be a bit more
efficient now that we are sending more reports.

Change-Id: Ie865cfd286455819f04e8c14e9b6fd54d028f8f2
2012-05-31 18:58:34 -07:00
Dianne Hackborn
a3a041d55b Maybe fix #6584979: Unable to launch share chooser activity from a Notification action
Don't count an activity as a system dialog to be closed, if it is the
one that asked to have system dialogs closed.

Change-Id: I60bb194adde78dc3ac0a4d9b0c1dfbabd105e594
2012-05-31 16:18:21 -07:00
Dianne Hackborn
6ae8d18218 Fix (mostly) issue #5109947: Race condition between retrieving a...
...content provider and updating its oom adj

This introduces the concept of an "unstable" reference on a content
provider.  When holding such a reference (and no normal stable ref),
the content provider dying will not cause the client process to be
killed.

This is used in ContentResolver.query(), .openAssetFileDescriptor(),
and .openTypedAssetFileDescriptor() to first access the provider
with an unstable reference, and if at the point of calling into the
provider we find it is dead then acquiring a new stable reference
and doing the operation again.  Thus if the provider process dies
at any point until we get the result back, our own process will not
be killed and we can safely retry the operation.

Arguably there is still the potential for a race -- if somehow the
provider is killed way late by the OOM killer after the query or
open has returned -- but this should now be *extremely* unlikely.
We also continue to have the issue with the other calls, but these
are much less critical, and the same model can't be used there (we
wouldn't want to execute two insert operations for example).

The implementation of this required some significant changes to the
underlying plumbing of content providers, now keeping track of the
two different reference counts, and managing them appropriately.  To
facilitate this, the activity manager now has a formal connection
object for a client reference on a content provider, which hands to
the application when opening the provider.

These changes have allowed a lot of the code to be cleaned up and
subtle issues closed.  For example, when a process is crashing, we
now have a much better idea of the state of content provider clients
(olding a stable ref, unstable ref, or waiting for it to launch), so
that we can correctly handle each of these.

The client side code is also a fair amount cleaner, though in the
future there is more than should be done.  In particular, the two
ProviderClientRecord and ProviderRefCount classes should be combined
into one, part of which is exposed to the ContentResolver internal
API as a reference on a content provider with methods for updating
reference counts and such.  Some day we'll do that.

Change-Id: I87b10d1b67573ab899e09ca428f1b556fd669c8c
2012-05-29 13:33:09 -07:00
Dianne Hackborn
5320eb8938 Fix activity resolver, issues #6519130 and #6507239
6519130: Starting ResolverActivity with no arguments crashes system_server
6507239: ResolverActivity may bypass signature permissions

Change-Id: I64534f781bc6b7eb45e85dbe3a55d351ee28e85c
2012-05-18 15:04:53 -07:00
Dianne Hackborn
e302a16235 A few odds and ends.
- Add documentation on "television" UI mode.
- Tweak new documentation and implementation around propagating
  URI grants through choosers.
- Add new activity launch flag for closing system dialogs.

Change-Id: I978c05f0dc3d16e1c55d43631828b9efa6335b19
2012-05-15 14:58:32 -07:00
Dianne Hackborn
59325eb31f Add new API to find total RAM.
Change-Id: Iad2dff3c44f471515f093e7f0d0d959528881ab9
2012-05-09 18:45:20 -07:00
Dianne Hackborn
a53de0629f Add callback hack to find out when to load system properties.
Use this to reload the trace and layout bounds properties.

This is ONLY for debugging.

Change-Id: I1c4bdb52c823520c352c5bac45fa9ee31160793c
2012-05-09 14:53:20 -07:00
Dianne Hackborn
a4e2ec64db Merge "Fix Issue 26574: Service's onStartCommand receiving incorrect flag..." into jb-dev 2012-05-08 17:19:15 -07:00
Dianne Hackborn
d8f10240c0 Fix Issue 26574: Service's onStartCommand receiving incorrect flag...
...parameter for Intents

Change-Id: I2e2332c87e008c7ad6a89e17ae3f732c78e376ef
2012-05-08 17:14:58 -07:00
Jeff Brown
9ac663ef9a Merge "Disable input dispatch until boot finished." into jb-dev 2012-05-08 15:15:56 -07:00
Jeff Brown
c042ee2acd Disable input dispatch until boot finished.
Bug: 6263070
Change-Id: I25e15e3d8af8eb3343c7b684fec345337d9f6aab
2012-05-08 13:58:32 -07:00
Adam Powell
69de7e1a4e Fix a bug in ActivityManagerService#navigateUpTo
Deliver new intents to an existing parent from the calling uid obtained from
the applicationInfo instead of the process record, since the process record
might be dead.

Stoopid monkeys.

Bug 6328725

Change-Id: I4371a5705ccd7004f0dfe11da7c48d1563fb8dac
2012-05-07 18:42:24 -07:00
Dianne Hackborn
755c8bfbff Fix issue #6319312: Consecutive call to Activity's onCreate()/onResume()...
...without onPause() in between

There was a bug in the handling of "always finish activities" where we
would go through destroying activities while in the middle of updating
the activity stack.  This would result in the activity behind the
non-full-screen activity being created and then immediately destroyed,
which things were not expecting.

Change-Id: Idaa89089f7b1af7eb747d7b8f9f394beeb2d23fa
2012-05-07 15:06:09 -07:00
Jeff Sharkey
2fea92e6d9 Merge "Clear ident in dismissKeyguardOnNextActivity()." into jb-dev 2012-04-30 17:22:05 -07:00
Jeff Sharkey
7ffaa98539 Clear ident in dismissKeyguardOnNextActivity().
BaseStatusBar uses this to launch activities over the insecure
lockscreen, so clear identity.

Bug: 6414983
Change-Id: Idf578923285ee1344e6e13e7f51e17a5f2005c75
2012-04-30 16:59:05 -07:00
Adam Powell
9b2a0f167e Merge "Fix a bug with updating extras in a PendingIntent with an intent stack" into jb-dev 2012-04-30 16:04:11 -07:00
Dianne Hackborn
56385cc452 Fix issue #6111771: Run-time Restart observed when signing in with an existing account
Change-Id: Ic6defb598cb08f2728d99eed7d0b209c88dd1a49
2012-04-30 15:07:47 -07:00
Adam Powell
501d4a510f Fix a bug with updating extras in a PendingIntent with an intent stack
Change-Id: I52e2677635b588b7301dd938e1dd32f94241cf5a
2012-04-30 15:03:57 -07:00
Dianne Hackborn
ecc5a9cca0 Add new Activity.finishAffinity() method.
It's cool!

Change-Id: I9fdcd9535b7f1ca2b311d3a1b23e5d058977b095
2012-04-26 18:56:09 -07:00
Dianne Hackborn
4797d57bf3 Merge "Fix issue #6373340: Cannot unlock to app if app was the..." 2012-04-24 18:38:44 -07:00
Dianne Hackborn
1e88e98d7d Fix issue #6373340: Cannot unlock to app if app was the...
...foreground app when the device was put to sleep

This is because of activities being kept in the stopped state
while the lock screen is shown, so we never get to the point of
it becoming visible again to know to proceed.

Just at this point consider the lock screen hidden so the
activity can be resumed and run as normal; the whole point of
this is to soon hide the lock screen, anyway.

Change-Id: I3a713a2f87b8e4412ff66724c051f09a2675be00
2012-04-24 18:35:55 -07:00
Adam Powell
4bde4b9274 Merge "Check for valid records associated with activity tokens in ActivityManagerService up-navigation methods." 2012-04-24 17:25:25 -07:00
Dianne Hackborn
8238e717df Add new signature-level permission to get details of tasks.
Third party apps now can't get access to the extras of the
intents associated with tasks, to keep private data in them
from leaking out.

Change-Id: I95af9e181ac42557bc8b981807e7ddd266a88d0e
2012-04-24 14:27:02 -07:00
Adam Powell
b71a5bc02b Check for valid records associated with activity tokens in
ActivityManagerService up-navigation methods.

Silly monkeys.

Fixes bug 6328725

Change-Id: Ifec3f162bdfc2e7e872a689210752c0f6b9b0ab7
2012-04-24 14:20:57 -07:00
Amith Yamasani
a4a54e2a5f Make sure persistent processes are not replicated for secondary users.
An intent is launched in a singleton process if the process is persistent
and the resolved activity/service/etc is not requested to run in a different
process.

Change-Id: I1463e73a76bc8bde4185f9cf4395edb47515841d
2012-04-17 11:41:30 -07:00
Dianne Hackborn
ff5b158f69 Keep activities stopped while the lock screen is up.
Tell the activity manager when the lock screen is shown, so it
can keep itself (mostly) in sleep mode during this time, having
the foreground actvities remain in their stopped state.

Change-Id: I71c86d3298f23a98014d7ae36fd540c9df9a64e6
2012-04-12 17:26:55 -07:00
Amith Yamasani
7463adacbd Make dumpsys activity services work again.
Due to the step to query the users, dumpsys was crashing when run
as non-root. Clearing the calling identity after checking perms
fixes this.

Bug: 6311443
Change-Id: I0b0bca5c7305cea19adc772b3bfec34c16bb24c4
2012-04-12 10:41:19 -07:00
Dianne Hackborn
2a854c13f8 Merge "Some small tweaks to improve memory management." 2012-04-10 15:25:43 -07:00
Dianne Hackborn
162bc0ea0d Some small tweaks to improve memory management.
We now allow processes that currently have stopping activities to
be managed as if they were done stopping, so that memory trimming
can be done before the process goes to the background.  Hopefully
this will reduce cases where the processes goes to the background
and immediately gets killed, but wouldn't have had to be killed if
it had a chance to trim its memory.

Also change window memory trimming to always do the aggressive
trimming when memory is critical, even if not on a low-end device.

And tweak web view trimming to not trim for foreground UI events.

Change-Id: I241b3152b52d09757bd14a202477cf69c9b78786
2012-04-10 14:43:58 -07:00
Jeff Brown
deb6ed8c2e Don't reuse StringBuilder outside of lock when dumping ANR.
The ANR dumping code was reusing the shared StringBuilder while
not holding the ActivityManagerService lock.  As a result, other
threads could sweep in and clobber the ANR information.
We don't want to hold the lock here, so just create a new StringBuilder.

Change-Id: I0d91af55f5c123102cfab2cd97035491efed59c0
2012-04-10 14:26:26 -07:00
Christopher Tate
bf64e70f9b Merge "Attribute alarm broadcast wakelocks to the sender" 2012-04-06 14:35:16 -07:00
Christopher Tate
c4a07d1caa Attribute alarm broadcast wakelocks to the sender
Wakelock usage for the purpose of sending an alarm broadcast is now
attributed to the application which posted the alarm, not to the OS.

Bug 5911317

Change-Id: I8cb79c3bd5db467388716ab68285f4ab0bfe468b
2012-04-06 14:23:12 -07:00
Dianne Hackborn
d3e677bc50 Dump KSM stats in the meminfo.
Change-Id: I077dcb137ed743ea10fde1dbba4e86c340dec432
2012-04-05 15:03:21 -07:00
Adam Powell
dd8fab2629 TaskStackBuilder and Activity navigation features for framework
Promote navigation helpers from the support library to the core
platform.

The support library's meta-data element has been replaced with a
first-class parentActivityName attribute. This attribute is valid
on both activity and activity-alias elements. An activity-alias
will inherit the target activity's parentActivityName if one is
not explicitly specified.

Automatic Up navigation for Activities

Add the public method onNavigateUp() to Activity. The default
implementation will use the metadata supplied in the manifest about an
activity's hierarchical parent (parentActivityName) to do the right
thing.

If any activities in the parent chain require special Intent
arguments, the Activity subclass should override onNavigateUp() to
properly implement Up navigation for the app, supplying such arguments
as needed.

If automatic Up navigation within the same task can't find an activity
matching the supplied intent in the current task stack, it will act as
an in-app "home" and return to the root activity (presumably the app's
front page) in that task. (From this state, pressing "back" with
default behavior will return to the launcher.)

Change-Id: If163e27e59587f7af36975a09c986cb117ec3bc6
2012-04-05 11:45:10 -07:00
Mike Lockwood
69ccdbd78a Merge commit 'bc52ca2'
Conflicts:
	services/java/com/android/server/am/ActivityManagerService.java

Change-Id: I6da33a191a4ac13d08d8350a432b205e3dff85da
2012-04-03 11:53:47 -07:00
Amith Yamasani
34db3d65d6 Fix a regression in activity manager regarding killing stopped processes.
Bug: 6275175
Change-Id: Ib1fa80cba9d21799f36fec999899e54a0fe8da51
2012-04-02 16:35:19 -07:00
Stephen Smalley
83d9eda9c2 Pass additional inputs when spawning apps via the Zygote and add SELinux permission checks.
When spawning an app process, the ActivityManagerService has additional information
about the app package that may be useful in setting a SELinux security context on the
process.  Extend the Process.start() interface to allow passing such information
to the Zygote spawner.  We originally considered using the existing zygoteArgs
argument, but found that those arguments are appended after the class name and
left uninterpreted by ZygoteConnection, merely passed along to the class or wrapper.
Thus we introduce a new seInfo argument for this purpose.

Modify the ZygoteConnection to interpret the new option and convey it to
forkAndSpecialize, as well as passing the nice name as a further input.
Also modify the ZygoteConnection to apply SELinux permission checks on
privileged operations.

Change-Id: I66045ffd33ca9898b1d026882bcc1c5baf3adc17
2012-04-02 13:34:45 -04:00