Commit Graph

2567 Commits

Author SHA1 Message Date
Jean-Baptiste Queru
7951c459ae Merge into jb-mr1-dev
Change-Id: Ifc2328e30a52c2baebc1322c9b161104dcf21618
2012-09-25 09:36:32 -07:00
Jean-Baptiste Queru
7a7c6aa0c3 Merge into jb-mr1-dev
Change-Id: I821410e9ffcc7148139465c04ef335f0becc18c2
2012-09-25 09:34:45 -07:00
Amith Yamasani
ea7e91514e AppInfo from Notifications for secondary users
Required wiring up startActivitiesAsUser()

Bug: 7224950

Also fix a bug in navigateUp in secondary user

Change-Id: I114ae2de0457362d62e899fdb94b12239a3eb778
2012-09-24 17:19:03 -07:00
Jeff Brown
efd43bdb83 Force activities to run on the second display for testing.
This is a simple hack for testing and development purposes.
It makes the framework place the main window of an activity
on to a secondary display instead of on the default display.

Set the "debug.second-display.pkg" to a substring of the
package name of the activity that you want to have show
up on the secondary display, such as "com.example.android.apis"

Bug: 7183618
Change-Id: I0a9e7f27c8ff253253b9de57d4bc49f31d95a0e2
2012-09-24 14:37:25 -07:00
Adam Powell
9ceac5a02f TaskStackBuilder and intents without an explicit target
When Activity#getParentActivityIntent() returns an Intent without an
explicit target, resolve it in order to determine a correct parent
stack.

Bug 7223318

Change-Id: I3e88129f1e538cc3d932d6b4f735a5bec54bb4ad
2012-09-24 14:28:44 -07:00
Dianne Hackborn
50cdf7c306 Fix issue #7214090: Need to be able to post notifications to all users
Also fix a bunch of system services that should be doing this.  And
while doing that, found I needed to fix PendingIntent to evaluate
USER_CURRENT at the point of sending, not creation.

Note that this may end up with us having some notification shown to
non-primary users that lead to settings UI that should only be for
the primary user (such as the vpn notification).  I'm not sure what
to do about this, maybe we need a different UI to come up there or
something, but showing the actual notification for those users at
least seems less broken than not telling them at all.

Change-Id: Iffc51e2d7c847e3d05064d292ab93937646a1ab7
2012-09-24 10:55:46 -07:00
Jeff Sharkey
11820f7386 Merge "Allow acquiring ContentProviders across users." into jb-mr1-dev 2012-09-23 13:22:27 -07:00
Jeff Sharkey
6d51571835 Allow acquiring ContentProviders across users.
Otherwise services like SystemUI will always open content://-style
Uris as USER_OWNER.  Surfaces through createPackageContextAsUser()
which points all ContentResolver operations towards a given user.

Start using in RemoteViews, so that Notifications correctly resolve
image Uris to the sending user.  Also add user support for "content"
shell tool.

Bug: 7202982
Change-Id: I8cb7fb8a812e825bb0b5833799dba87055ff8699
2012-09-21 19:49:43 -07:00
Svetoslav Ganov
0a5c5567f2 Merge "Multi-user support for the accessibility layer." into jb-mr1-dev 2012-09-21 17:21:45 -07:00
Svetoslav Ganov
58d37b55bd Multi-user support for the accessibility layer.
1. This change converts the accessibility manager service to
   maintain a state per user. When the user changes the services
   for the user that is going away are disconnected, the local
   accessibility managers in the processes for this user are
   disabled, the state is swapped with the new user's one, and
   the new user state is refreshed.

   This change updates all calls into the system to use their
   user specific versions when applicable. For example, regisetring
   content observers, package monitors, calls into other system
   services, etc.

   There are some components that are shared across users such
   as UI created by the system process and the SystemUI package.
   Such components are managed as a global state shared across
   all users and are updated accordingly on a user switch. Since
   the SystemUI is running in a normal app process this change
   adds hidden APIs on the local window manager to allow the
   SystemUI to notify the accessibility layer that it will run
   accross users.

   Calls to AccessibiltyManager's isEnabled(), isTouchExplorationEnabled()
   and sendAccessibilityEvent return false or a are a nop for a
   background user sice he should not send accessibility events,
   and should not perform touch exploration.

   Update the internal accessibility tests due to changes in the
   AccessibilityManager.

   This change also fixes several issues that were encountered
   such as calling out the accessibility manager service with a
   lock held.

   Removed some incorrect debugging code from the TouchExplorer
   that was leading to a system crash.

bug:6967373

Change-Id: I2cf32ffdee1d827a8197ae4ce717dc0ff798b259
2012-09-21 16:48:07 -07:00
Jim Miller
1ed9fa10de Merge "Make DPM API for disabling keyguard widgets more generic" into jb-mr1-dev 2012-09-21 15:21:33 -07:00
Daniel Sandler
0887711d0f Merge "Add Notification.Builder.setShowWhen(boolean)." into jb-mr1-dev 2012-09-21 07:30:43 -07:00
Jeff Brown
a95a3b494f Fix javadoc.
Bug: 7172727
Change-Id: I55ee0099ea2e61f5f0a9de7b434fb8fb858ad5f9
2012-09-20 17:49:47 -07:00
Dianne Hackborn
6de76d21ff Merge "Implement multi-user PackageMonitor." into jb-mr1-dev 2012-09-20 14:54:10 -07:00
Dianne Hackborn
c72fc674a3 Implement multi-user PackageMonitor.
New APIs let you indicate what user(s) to monitor, and tell you
what user is changing when receiving a callback.

Fix package manager to only deliver package brpadcasts to the
running users.  (This isn't really a change in behavior, since
the activity manager would not deliver to stopped users anyway).
Make sure all broadcasts that package monitor receives also include
user information for it to use.

Update wallpaper service to (hopefully) now Really Correctly
monitor package changes per user.

Change-Id: Idd952dd274abcaeab452277d9160d1ae62919aa0
2012-09-20 14:53:18 -07:00
Dianne Hackborn
e6f6380027 Merge "Fix issue #7196015: system_server deadlock during setup wizard" into jb-mr1-dev 2012-09-20 14:33:50 -07:00
Geremy Condra
d053554f80 Merge "Push dropbox logging into libcore." into jb-mr1-dev 2012-09-20 11:24:14 -07:00
Chris Wren
683ab00a2e fix underfull content bug in inbox and big text templates.
Bug: 7172721
Change-Id: I22019009eec31ca18b54eec5f6ed5b626cee1540
2012-09-20 10:54:40 -04:00
Jim Miller
48b9b0d068 Make DPM API for disabling keyguard widgets more generic
This change renames the widget-specific API to be more generic
to allow further disabling of keyguard-specific customizations
in the future.  Currently only allows disabling widgets and the
secure camera but can now easily be extended to disable other
features we add.

Fixes bug: 7021368

Change-Id: I3934cc2e7c64e0c6d511efb86980fc38a849708d
2012-09-19 23:44:45 -07:00
Geremy Condra
b7faaf4c40 Push dropbox logging into libcore.
Change-Id: I74c0644c6938d28c20c42d88d995ffb56a71d703
2012-09-19 21:39:55 -07:00
Dianne Hackborn
73c14161ec Fix issue #7196015: system_server deadlock during setup wizard
Can't aquire the providers lock while holding the main activity thead
lock, because we call into the activity manager with that lock held.

Change-Id: If27326a2caa46480d0f1b98608be9e8a862febe0
2012-09-19 16:46:54 -07:00
Dianne Hackborn
09ad0832e0 Merge "Switch to showing top-most thumbnail of recent apps." into jb-mr1-dev 2012-09-19 11:40:18 -07:00
Dianne Hackborn
15491c6a72 Switch to showing top-most thumbnail of recent apps.
The way it should have been, and with the new recents enter animation
the way it must be.

Added a new method to retrieve this thumbnail, since it would be less
efficient to use the existing API (which always returns the "base"
thumbnail).  Probably at some point that existing API should be tweaked
to always return the top thumbnail instead, but that is for a later time.

Also removed code that would clear the thumbnail associated with an
activity when it is resumed.  I don't think there should ever be a
reason to clear a thumbnail -- it's much better to have *something*
for the task, even if it is a little out of date.

Change-Id: I83e6ca6403eb2df5e4de3009dfe8c210e8cf8d5b
2012-09-19 11:25:40 -07:00
Amith Yamasani
4adb9d3416 Merge "DevicePolicyManager per user" into jb-mr1-dev 2012-09-18 20:00:44 -07:00
Amith Yamasani
599dd7ce9a DevicePolicyManager per user
Bug: 7136483

Store device policy information for each user and apply them when user switches.

Global proxy can only be controlled by owner.
Camera restriction applies to all users, if any one has an admin that disables it.
Storage encryption can only be controlled by owner, although other users can query the state.
Wipe data will only remove the user if non-zero, wipe the device, if zero.

Change-Id: I359be46c1bc3828fd13d4be3228f11495081c8f2
2012-09-18 14:28:33 -07:00
Jeff Sharkey
27bd34d9d9 Multi-user MTP.
The current MTP kernel driver at /dev/mtp_usb is exclusive, meaning
only one process can have it open. In addition, each MTP session
with a desktop requires unique object IDs, which doesn't hold true
across users on the device.

To solve these two issues, when switching users we cycle the USB host
stack to disconnect both local and remote MTP connections, giving the
new user's media process a chance to claim /dev/mtp_usb, and causing
the desktop to initiate a new MTP session.

This change also allows BroadcastReceivers to registerReceiver()
allow retrieval of a current sticky broadcast. Adds a system property
to override maximum users. Removes MOUNTED broadcasts for secondary
users. Allows INTERACT_ACROSS_USERS to getCurrentUser().

Bug: 6925114
Change-Id: I02b4a1b535af95fb2142655887b6d15a8068d18a
2012-09-18 13:26:26 -07:00
Dianne Hackborn
c33f94e2a5 Merge "Fix API review bugs." into jb-mr1-dev 2012-09-17 18:22:38 -07:00
Dianne Hackborn
8832c18d8b Fix API review bugs.
7173152 API REVIEW: android.content.pm.PackageUserState
7172969 API REVIEW: android.app.PendingIntent
7172730 API REVIEW: android.content.Context
7172726 API REVIEW: android.manifest.permission

Change-Id: Iad470256d3b5ca5596487f6a699ec1871457c3b5
2012-09-17 17:27:15 -07:00
Adam Powell
49a22f2969 Merge "TaskStackBuilder correctness fixes" into jb-mr1-dev 2012-09-17 17:15:09 -07:00
Dianne Hackborn
4246f695f4 Merge "Try again to fix issue #6912004:tap on gmail notification sends me to home screen" into jb-mr1-dev 2012-09-17 16:19:14 -07:00
Adam Powell
75e0af8982 TaskStackBuilder correctness fixes
* Don't mutate original intents when adding default flags.

* Add the relevant flags to the array returned by getIntents() such
  that it can be used directly in a call to startActivities or
  similar.

* Deep copy the component intents when building an intent array for
  getIntents()

* Clean up some internal code duplication

Change-Id: I71d3b7f30d4f7d8f1cce778d406ea0e513d382c5
2012-09-17 16:16:55 -07:00
Dianne Hackborn
ad9b32115b Try again to fix issue #6912004:tap on gmail notification sends me to home screen
Add a new call to the activity manager to tell it when the activity
is resumed, so it can mark its state as dirty then instead of when
it first tries to create it.

Also tweak things to update the LRU list for the upcoming activity
at the point we start pausing the current activity, to avoid an
inefficiency where we may decide to kill the process of the upcoming
activity if it is at the end of the LRU list.

Change-Id: Ia6dc8c34dc6d4b085a1efbe3a5d5f47721d55078
2012-09-17 16:03:22 -07:00
Adam Powell
6b6c90523e TaskStackBuilder - use the correct package for looking up parents
Fix bug 7179104

Change-Id: Ia5d2d285cf22e97c452e0c385ef38c8bce330491
2012-09-17 13:32:33 -07:00
Adam Powell
5a4010c054 Create main activity intents as needed for TaskStackBuilder/Up nav
If a generated parent intent targets an Activity that itself has no
parent specified, generate the intent using Intent.makeMainActivity
to gather the correct flags for the root intent of a task.

Bug 6457058

Change-Id: I8d4a3823eda752306da18c2c38fa7e57f0a33bf3
2012-09-16 15:15:46 -07:00
Dianne Hackborn
d65afc65ea Merge "More multi-user stuff." into jb-mr1-dev 2012-09-16 00:05:46 -07:00
Dianne Hackborn
5dc5a00e7e More multi-user stuff.
- New public APIs to find out when a user goes to the foreground,
  background, and is first initializing.
- New activity manager callback to be involved in the user switch
  process, allowing other services to let it know when it is safe
  to stop freezing the screen.
- Wallpaper service now implements this to handle its user switch,
  telling the activity manager when it is done.  (Currently this is
  only handling the old wallpaper going away, we need a little more
  work to correctly wait for the new wallpaper to get added.)
- Lock screen now implements the callback to do its user switch.  It
  also now locks itself when this happens, instead of relying on
  some other entity making sure it is locked.
- Pre-boot broadcasts now go to all users.
- WallpaperManager now has an API to find out if a named wallpaper is
  in use by any users.

Change-Id: I27877aef1d82126c0a1428c3d1861619ee5f8653
2012-09-15 23:58:55 -07:00
Kenny Root
ce24985ad6 Remove AndroidKeyStore from API
Change-Id: Ibe09d78e5a5b86604f01144f344525bff94c2dde
2012-09-14 16:23:37 -07:00
Daniel Sandler
0c89049ebf Add Notification.Builder.setShowWhen(boolean).
No more setting when to 0 to hide the timestamp! *cheering*

Bug: 6915046
Change-Id: I1560a1c2dd366d416d1d059704ca7c63149334eb
2012-09-13 13:17:54 -07:00
Geremy Condra
69689a7356 DO NOT MERGE Push event logging down into libcore.EventLogger
This changes the default behavior of the EventLogger from logging
to the normal logs to logging to the event logs.

Change-Id: I4338a1605928b82246a369adb3514bd31cd552e8

Conflicts:

	core/java/android/app/ActivityThread.java
2012-09-12 17:54:10 -07:00
Jeff Sharkey
b049e212ab Include user identifier in external storage paths.
When building external storage paths, always include user in path
to enable cross-user paths and aid debugging.

Each Zygote process continues to only have access to the appropriate
user-specific emulated storage through bind mounts. A second set of
mounts continue supporting legacy /sdcard-style paths. For example,
a process running as owner has these mount points:

/storage/emulated_legacy
/storage/emulated_legacy/Android/obb
/storage/emulated/0
/storage/emulated/obb

Since Environment is created before Zygote forks, we need to update
its internal paths after each process launches.

Bug: 7131382
Change-Id: I6f8c6971f2a8edfb415c14cb4ed05ff97e587a21
2012-09-11 23:11:14 -07:00
Christopher Tate
4dc7a68dbe Set up default (random) Android IDs for all users
Also correct some now-misleading terminology in a permission-check
log message, and fix a bug in which a system component trying to
write to a secondary user's settings would wind up writing the
owner's settings instead.

Bug 7132405

Change-Id: I5b8fafc35720390a01652e386ab5b7c0ad751abe
2012-09-11 14:51:33 -07:00
Siva Velusamy
bc91c5f8b1 Merge "Report the user id of every app to ddms." into jb-mr1-dev 2012-09-10 15:59:36 -07:00
Dianne Hackborn
1676c856d6 Flesh out multi-user in am commands.
Now we default to the current user instead of user 0 for most commands
(except where we can do the command for all users).

Many more commands take a user argument: force-stop, kill, profile,
dumpheap.

Improved help text.

Change-Id: I719a13b4d31b668f57ca21e51d7043ac3e0d4e1b
2012-09-10 14:52:30 -07:00
Siva Velusamy
d693dfa75b Report the user id of every app to ddms.
This CL extends the HELO and APNM packets to include the user id
of the application. This allows ddms users to differentiate between
the same app running for multiple users.

Bug 7110696.

Change-Id: I490d0e3781b8fb9db65cf81188677a0955650511
2012-09-10 14:44:38 -07:00
Dianne Hackborn
1b8ecc5031 A little cleanup.
Change-Id: Ie33fd1b02011606e67ce08df3cce887c07680c60
2012-09-09 14:41:34 -07:00
Jeff Brown
a3909a9395 Work around crash when display is removed.
After a display is removed, there may be a brief time
when a Context still exists that is bound to it.
We need to provide metrics in this case.

Bug: 7131637
Change-Id: I11b264a000653adbf0f3da399eaab66c4b40fb2a
2012-09-09 01:05:38 -07:00
Amith Yamasani
151ec4c9f8 More multi-user methods in PM
pm can list installed packages by user now.

Bug: 6926465

Change-Id: I822311bfd6e7e2d6fb315fc484739fbf953c9bb6
2012-09-08 19:14:00 -07:00
Dianne Hackborn
5e03e2ca7d More multi-user stuff:
- New (hidden) isUserRunning() API.
- Maintain LRU list of visited users.
- New FLAG_IS_DATA_ONLY for ApplicationInfo.
- Clean up pending intent records when force-stopping a user (or package).
  (Also fixes bug #6880627: PendingIntent.getService() returns stale
  intent of force stopped app)
- Fix force-stopping when installing an app to do the force-stop across
  all users for that app.
- When selecting which processes to kill during a force stop, do this
  based on the actual packages loaded in the process, not just process
  name matching.
- You can now use --user option in am when starting activities, services,
  and instrumentation.
- The am --user option accepts "current" and "all" as arguments.
- The pm uninstall command now uninstalls for all users, so it matches
  the semantics of the install command.
- PhoneWindowManager now explicitly says to start home in the current
  user.
- Activity manager call to retrieve the MIME type from a content provider
  now takes a user argument, so it will direct this to the proper user.
- The package manager uninstall paths are now implemented around
  PackageSetting, not PackageParser.Package.  This allows them to work
  even if the application's apk has been removed (in which case it only
  exists as a PackageSetting, not the PackageParser.Package parsed from
  the apk).

Change-Id: I3522f6fcf32603090bd6e01cc90ce70b6c5aae40
2012-09-07 13:55:23 -07:00
Dianne Hackborn
62bea2f171 Nested fragments.
Change-Id: I79acc19b391352c16b06afee2ca543223c38e364
2012-09-06 11:05:53 -07:00
Jim Miller
b8ec470617 Update DevicePolicyManager with ability to disable keyguard widgets
Change-Id: I5876e9e180b2a995aaa355fbbb2b67cebb86104d
2012-09-04 13:52:36 -07:00