Commit Graph

900 Commits

Author SHA1 Message Date
Amith Yamasani
2d78fa2d25 am ff7735b0: am a3db5297: Merge "ProviderMap: remove hashmap when entire user specific entries are removed"
* commit 'ff7735b0ee8c3347d0f3cb1866e454be0e9534e2':
  ProviderMap: remove hashmap when entire user specific entries are removed
2012-08-20 10:47:41 -07:00
Amith Yamasani
7300dbeba0 Fix launching activity from a pending intent
The creator of the pending intent is the user on which the activity
should be launched.

Change-Id: I733326ed8a5784985ac93a84ce91de4dda17c730
2012-08-17 14:19:57 -07:00
Amith Yamasani
81c304b99d Merge "Send USER_SWITCHED with the correct permission" into jb-mr1-dev 2012-08-17 13:58:17 -07:00
Amith Yamasani
1ab36c1d83 Send USER_SWITCHED with the correct permission
Forgot to change this from MANAGE_ACCOUNTS to MANAGE_USERS.

Change-Id: Ib07d2ac84c19cef278a0e564676b6200e0f97dd1
2012-08-17 13:55:02 -07:00
Michael Jurka
d2ae85d41e Merge "Adding a thumbnail scale down animation" into jb-mr1-dev 2012-08-17 13:03:15 -07:00
Amith Yamasani
2a00329c6d UserHandle to UserSerialNo mapping
Use AtomicFile for usermanager files.

Added a MANAGE_USERS permission that apps (signature permission) can use
to create/query/modify/remove users.

Change-Id: I5cf232232d0539e7508df8ec9b216e29c2351cd9
2012-08-17 09:06:10 -07:00
Jeff Sharkey
c584b65b20 Merge "Multi-user external storage support." into jb-mr1-dev 2012-08-16 14:32:39 -07:00
Dianne Hackborn
f02b60aa4f Rename UserId to UserHandle.
This is the start of turning this into a formal public API.

Change-Id: I5786d2c320f1de41a06ed5d0f65adb68967287a0
2012-08-16 12:46:38 -07:00
Michael Jurka
832cb229cd Adding a thumbnail scale down animation
Recents animation will temporarily look a bit
wrong, but a subsequent change will fix this.
2012-08-16 00:14:03 -07:00
Vairavan Srinivasan
8809004bc5 ProviderMap: remove hashmap when entire user specific entries are removed
User specific entries in  mProvidersByNamePerUser and mProvidersByClassPerUser
isn't cleared when entire user specific providers are removed. Fix is to remove
the user specific hashmap in such cases.

Change-Id: I6edf211ced873e59f3b89ffceb9eceec13ea8f3f
2012-08-15 23:37:45 -07:00
Jeff Sharkey
5b1ada2562 Multi-user external storage support.
Emulated external storage always has multi-user support using paths
like "/data/media/<user_id>".  Creates and destroys these paths along
with user data.  Uses new ensure_dir() to create directories while
always ensuring permissions.

Add external storage mount mode to zygote, supporting both single-
and multi-user devices.  For example, devices with physical SD cards
are treated as single-user.  Begin migrating to mount mode instead
of relying on sdcard_r GID to enforce READ_EXTERNAL_STORAGE.

Bug: 6925012
Change-Id: I9b872ded992cd078e2c013567d59f9f0032ec02b
2012-08-15 19:45:53 -07:00
Dianne Hackborn
1866f68dfe Merge "Modify how the background process LRU list is handled." into jb-mr1-dev 2012-08-13 17:15:04 -07:00
Dianne Hackborn
f88dd0b32e Small service cleanup.
Get rid of duplication between find/retrieve service funcs; when
a service in a persistent process crashes, restart it immediately
since the persistent process is going to be immediately restarted
anyway; when a new process is attaching, immediately restart any
services associated with it that are waiting to restart, since
it is weird to not let them run if the process comes back for some
other reason.

Change-Id: Id087fe04ebf2b6a4bd00732796c8326364765ea7
2012-08-13 17:11:47 -07:00
Dianne Hackborn
ee7621c0f5 Modify how the background process LRU list is handled.
A long time ago, we had a concept of an "empty" process -- this was
a process that didn't have any interesting components in it, which
would be placed below everything else in the LRU list.

Empty processes didn't work out well, because you could get into
bad situations where you have filled your LRU list with things that
have hidden activities, pushing empty processes to the bottom and
being immediately killed as soon as they go into the list.  So this
was removed.

This change brings the concept back, but in a slightly different
form, to address a more specific problem: for people who are switching
between N different applications, we would like to try to keep those
activities available in RAM in a consistent manner.  Currently the
previous activities would be killed often quickly and suprisingly,
even on devices with lots of RAM.  This is for two reasons:

(1) As you sit in one application, other things going on in the
background will go to the top of the LRU list, pushing down the
previous apps you have visited, even though you aren't aware at all
of these other things executing.
(2) There is a hard limit on the number of background processes
(currently 16) after which they are killed regardless of the amount
of available RAM.  This is desireable because if there is lots of
RAM we can end up with tons and tons of processes sitting around,
not really serving any purpose, but using up resources.

To improve the situation, we have again a concept of "empty" processes
but now it means one with no activities.  Processes that aren't empty
but in the background list are called hidden.  We maintain these as
two parallel lists, each getting half of the process limit: so with
a 16 process limit, you can have at most 8 empty and 8 hidden processes.

This allows us to consistently keep up to 8 recent applications around
for fast app switching; we will also keep around 8 other processes to
make it more efficient for background work to execute again if it needs
to.

Change-Id: Iee06e45efc20787da6a1e50020e5421c28204bd7
2012-08-13 17:09:19 -07:00
Amith Yamasani
258848d2ae User Manager service to manage users and query user details
Moved a bunch of methods from PackageManager to UserManager.

Fix launching of activities from recents to correct user.

Guest creation APIs

Change-Id: I0733405e6eb2829675665e225c759d6baa2b708f
2012-08-11 18:24:07 -07:00
Amith Yamasani
2c02933b13 Merge "Send BOOT_COMPLETED to all users." into jb-mr1-dev 2012-08-09 11:45:55 -07:00
Amith Yamasani
4860cfc684 Send BOOT_COMPLETED to all users.
At least until we have a concept of logged-in users.

Change-Id: I65e3bed2aeef9692dbc64169cf02a7451cfed1cd
2012-08-08 19:15:58 -07:00
Amith Yamasani
8264408f59 Start the correct settings from the status bar.
Added a new method to Context: startActivityAsUser() requiring the
INTERACT_ACROSS_USERS_FULL permission.

Show the correct Recents list, based on current user.
Added a getRecentTasksForUser() in ActivityManager. Hidden and requires
the INTERACT_ACROSS_USERS_FULL permission.

Change-Id: If5b56465efdd3ead36601a3b51ed4af157bbf35c
2012-08-08 16:52:53 -07:00
Dianne Hackborn
7d19e0242f More mult-user API work.
- You can now use android:singleUser with receivers and providers.
- New API to send ordered broadcasts as a user.
- New Process.myUserHandle() API.

For now I am trying out "user handle" as the name for the numbers
representing users.

Change-Id: I754c713ab172494bb4251bc7a37a17324a2e235e
2012-08-07 19:19:22 -07:00
Dianne Hackborn
599db5c85f Refactor Service code out of main ActivityManagerService class.
Change-Id: I83ade73b48e8fda1ad413634c1eb0dba2a545ca7
2012-08-06 17:52:02 -07:00
Dianne Hackborn
b4163a6e12 Add APIs for interacting across users.
- Expose the existing Context.sendBroadcast() as
  Context.sendBroadcastAsUser().
- Add new android:singleUser attribute for services.
- Add new INTERACT_ACROSS_USERS_FULL permission for full
  system-level access to cross-user interface (allows
  sendBroadcastAsUser() to send to any receiver).
- Add new INTERACT_ACROSS_USERS_FULL permission for
  more restricted cross-user interaction: this is required
  for android:singleUser, and allows you to use
  sendBroadcastAsUser() but only to send to your own
  receivers.

Change-Id: I0de88f6718e9505f4de72e3f45d29c0f503b76e9
2012-08-02 19:07:57 -07:00
Craig Mautner
437a0fbd57 Merge "Introduce multiple displays with DisplayContent." into jb-mr1-dev 2012-08-02 09:20:14 -07:00
Craig Mautner
59c009776d Introduce multiple displays with DisplayContent.
Fix a couple of bugs that turned up.
Remove touch/focus from display. Add iterators for access.
Respond to comments. Remove TODOs, and some deviceId parameters.

Change-Id: Idcdb4f1979aa7b14634d450fd0333d6eff26994d
2012-08-02 08:47:44 -07:00
Dianne Hackborn
3805e8ca0a Merge "Optimize memory use of IntentResolver." into jb-mr1-dev 2012-07-31 18:24:25 -07:00
Dianne Hackborn
39606a007a Make AtomicFile a public API. It's about time!
Change-Id: Ib34e294747405b7ab709cb0bbb2d9a0cc80ce86a
2012-07-31 17:54:52 -07:00
Dianne Hackborn
9ec6cdde9f Optimize memory use of IntentResolver.
Use raw arrays instead of ArrayList for data structures.

Temporarily includes a copy of the old intent resolver for
validating the new implementation.

Change-Id: I988925669b6686ac73b779be6cd6fe3a9fd86660
2012-07-30 17:31:19 -07:00
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
30729fb9d7 am c7b2778c: am cfb0f409: Merge "Fix issue #6745498: Cannot view consecutive event details from agenda view" into jb-dev
* commit 'c7b2778c2dc7934665c56067b65d83d76fbe31e5':
  Fix issue #6745498: Cannot view consecutive event details from agenda view
2012-06-28 15:40:05 -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
dfcd6653c5 am e53fd84a: am 9e608c12: Merge "Fix issue #6381224: Initial emulator boot fails and shows a blank black screen." into jb-dev
* commit 'e53fd84a28584692d9c99712a3d36100643ba000':
  Fix issue #6381224: Initial emulator boot fails and shows a blank black screen.
2012-06-25 18:17:19 -07:00
Dianne Hackborn
e6c2d62efb am 9906e784: am 17990395: Merge "Fix issue #6717667: expanded notification actions don\'t work on the lock screen" into jb-dev
* commit '9906e784faca2cc8388a04fdc544722ea93d51be':
  Fix issue #6717667: expanded notification actions don't work on the lock screen
2012-06-25 18:17:15 -07:00
Dianne Hackborn
e53fd84a28 am 9e608c12: Merge "Fix issue #6381224: Initial emulator boot fails and shows a blank black screen." into jb-dev
* commit '9e608c12186d308fb1711e8824901fdf931a3a96':
  Fix issue #6381224: Initial emulator boot fails and shows a blank black screen.
2012-06-25 17:37: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
9e608c1218 Merge "Fix issue #6381224: Initial emulator boot fails and shows a blank black screen." into jb-dev 2012-06-25 17:35:49 -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
42e620caf0 Fix issue #6381224: Initial emulator boot fails and shows a blank black screen.
Make sure that all cases where we remove an activity from the history
stack, we call resumeTopActivityLocked() to cause the home activity
to be launched if the stack is now empty.

Also fixed a problem where some timeouts would not be removed when destroying
an activity, and a race condition in boot that would cause the
PhoneWindowManager to initially start out with the home key not working.

Bug: 6381224
Change-Id: If046bb01aed624b0d9ee3bbaaba68ed6b98fd1d0
2012-06-25 14:27:41 -07:00
Dianne Hackborn
adb80930a9 am eef58e85: am e06e1619: Merge "Fix issue #6700897: Activity paused by activating the..." into jb-dev
* commit 'eef58e858a24c15fff303622dfe3990799e03b51':
  Fix issue #6700897: Activity paused by activating the...
2012-06-21 16:47:37 -07:00
Kenny Root
287a64af97 am ae017c55: am a9543a3d: Merge "Pass additional inputs when spawning apps via the Zygote and add SELinux permission checks."
* commit 'ae017c55824ca345186b0c9fc204401153bd8a23':
  Pass additional inputs when spawning apps via the Zygote and add SELinux permission checks.
2012-06-21 16:47:26 -07:00
Dianne Hackborn
eef58e858a am e06e1619: Merge "Fix issue #6700897: Activity paused by activating the..." into jb-dev
* commit 'e06e1619a153a902083d2a1a0c01c86d3c7e546e':
  Fix issue #6700897: Activity paused by activating the...
2012-06-21 15:52:23 -07:00
Dianne Hackborn
f530ac323b Fix issue #6700897: Activity paused by activating the...
...lock screen does not response to onNewIntent()

We now keep activities stopped even while the lock screen is
displayed.  (We used to keep them stopped while the screen was
off, and then resume the top activity when the screen was turned
on even though they are covered by the lock screen.)

When a new intent is being delivered to an application, if it
is not resumed it is held in a pending list until the next
time the activity is resumed.  Unfortunately that means for
the case where the activity is being held stopped due to the
screen off or lock screen, it will not receive any new intents,
even though it is at the top of the stack.

Fix this by adding an additional condition that allows the new
intent to be delivered immediately if the activity manager is
sleeping and the target activity is at the top of the stack.

Also some debug output improvements, since pending new intents
were not being included in the debug output, making it impossible
to see we were in that situation.

Change-Id: I5df82ac21657f1c82e05fd8bf21474e883f44e6f
2012-06-21 14:17: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
Dianne Hackborn
468a0051eb am 99e33bf1: am 17b9cec1: Merge "Fix issue #6636731: Mariner animation ring gets stuck" into jb-dev
* commit '99e33bf14b2be799efe02b9a8a42b25abc0fced3':
  Fix issue #6636731: Mariner animation ring gets stuck
2012-06-18 10:49:06 -07:00
Dianne Hackborn
99e33bf14b am 17b9cec1: Merge "Fix issue #6636731: Mariner animation ring gets stuck" into jb-dev
* commit '17b9cec1b6fedd0e54ff61f5a12f0e515add70ab':
  Fix issue #6636731: Mariner animation ring gets stuck
2012-06-18 10:31:05 -07:00
Nick Pelly
10c45b6965 Merge "Include WIFI scan's in Battery Stats." 2012-06-15 16:55:41 -07:00
Nick Pelly
6ccaa540a1 Include WIFI scan's in Battery Stats.
Call noteWifiScanStartedFromSource() when a scan is started.
Call noteWifiScanStoppedFromSource() when a scan is finished.

The current implementation tracks to UID that requested the scan, and
correctly tracks the duration of the scan. It ignores scan requests
that occur when a scan is already in progress. It does not distinguish
between active and passive scans.

Repurpose all the noteScanWifiLockAcquired/Released() plumbing
for WIFI scan tracking. The WIFI scan locks were never reported
to the user. Use noteFullWifiLock() when WIFI scan locks are used -
this makes sense because the power draw for a WIFI scan lock
should be about the same as for a full WIFI lock.

Bug: 6642581
Change-Id: Ida6e87992853698545b89f875c973a239218317d
2012-06-15 16:10:38 -07:00
Dianne Hackborn
6e3d6daa37 Fix issue #6636731: Mariner animation ring gets stuck
Weren't cleaning out any ActivityOptions that are still attached
to a finishing activity.

Bug: 6636731
Change-Id: If0520bbcbf1d4ce19d46ff769918893cefda9c87
2012-06-15 12:12:56 -07:00
Christopher Tate
0d732fe68c am 0e44a6be: Merge "Don\'t finish noHistory="true" activities behind the lock screen" into jb-dev
* commit '0e44a6beeae8a17e81145b83f2dfb8f719d41f52':
  Don't finish noHistory="true" activities behind the lock screen
2012-06-14 19:37:45 -07:00