Commit Graph

687 Commits

Author SHA1 Message Date
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
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
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
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
Justin Koh
bc52ca2814 Stop ANR dialogs from appearing when ActivityManager dialogs should not be shown
Stop ANR dialogs from appearing on devices where the ActivityManager dialogs
should not be shown. Instead, kill the process. This is preferable because the
user can't actually do anything on the device.

TESTED = runs on device with that config, simulated ANR using test app.

Change-Id: I6267000afd12ef929f0c625220184c6ab0139552
2012-03-29 15:37:11 -07:00
Amith Yamasani
0184ce9295 Undo a previous change that's causing multi-user issues
Surgical hack for getting Settings to run multiple instances without
causing other system services/providers from doing the same.

Change-Id: Ic5dab61976a04c3012235299ba55edfcd8273dbb
2012-03-28 22:41:41 -07:00
Amith Yamasani
52f1d752f9 Show the current user in power menu
Shows a little indicator next to the current user in the power menu
when multi-user is enabled.

Fixed a bug where Settings was sometimes being launched in the wrong
process when there are 2 instances running.

Change-Id: Iaf2a00f6d1871fd2a88d8982439e445423bb2896
2012-03-28 18:19:29 -07:00
Amith Yamasani
8b5bce8d90 Merge "User management and switching" 2012-03-27 11:24:54 -07:00
Amith Yamasani
135936072b User management and switching
Broadcast intents that get sent out when users are added/removed/switched.

More work on generating user-specific information in package manager queries.
APIs to update user name and query a user by id.
Removed Package.mSetStopped and mSetEnabled, since they're not user specific.

User removal:
- Cleanup ActivityManager, PackageManager, WallpaperManager, AppWidgetService
  and AccountManager.
- Shutdown processes belonging to the user.

Don't show vibrate option in long-press power if there's no vibrator.

Lock the screen when switching users, to force unlocking.

Change-Id: Ib23a721cb75285eef5fd6ba8c7272462764038fa
2012-03-27 11:23:01 -07:00
Dianne Hackborn
eba00ce996 Merge "Okay now let's really turn it off." 2012-03-26 11:12:28 -07:00
Dianne Hackborn
69dc66e91b Okay now let's really turn it off.
Change-Id: Idda3c13339a6a29a300555d31e67219c9af4ae68
2012-03-26 10:50:54 -07:00
Dianne Hackborn
a026b48972 Merge "Turn off "too slow" logs." 2012-03-26 10:40:50 -07:00
Dianne Hackborn
551d0b1f2a Turn off "too slow" logs.
Change-Id: I6ec306ca1c55226269c4644a869a984c4fa00f0d
2012-03-26 10:25:59 -07:00