2206 Commits

Author SHA1 Message Date
Dianne Hackborn
cd11b223f3 Merge "Fix issue #7214090: Need to be able to post notifications to all users" into jb-mr1-dev 2012-09-24 10:58:20 -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
Jim Miller
26c5686b7e Merge "Better handling of multiple touch events in GlowPadView" into jb-mr1-dev 2012-09-23 19:03:20 -07:00
Jim Miller
b499884ba1 Better handling of multiple touch events in GlowPadView
This fixes a bug where a secondary touch event from the edge of the screen
would cause GlowPadView to choose the wrong target.  The issue is resolved
by keeping track of pointer ids and only allowing the one that initiated
the gesture to complete it.

Fixes bug 7133500

Change-Id: If296b60af2421bfa1a9a082e608ba77b2392a218
2012-09-23 17:18:17 -07:00
Fabrice Di Meglio
239e430578 Merge "Fix bug #6427629 Clean up layout direction APIs" into jb-mr1-dev 2012-09-23 15:09:56 -07:00
Fabrice Di Meglio
e3f2ac9e52 Merge "Fix bug #6427629 Clean up layout direction APIs" into jb-mr1-dev 2012-09-23 15:05:56 -07:00
Fabrice Di Meglio
e56ffdc7b3 Fix bug #6427629 Clean up layout direction APIs
- rename getResolvedLayoutDirection() to getLayoutDirection()

Change-Id: I3afe56c0db0751952f5056c23893cb7455531d29
2012-09-23 14:51:16 -07:00
Fabrice Di Meglio
4457e85a70 Fix bug #6427629 Clean up layout direction APIs
- canResolveXxx() should be hidden
- resetResolvedXxx() should be hidden
- resolveDrawables(), resolveLayoutDirection(), resolvePadding(), resolveTextAlignment(), resolveTextDirection() should be hidden
- onResolvedXxx() should be merged into one callback
- fix also an issue with setting the layout direction of the drawable in ImageView
- fix also an issue with checking if TextAlignment can be resolved

Change-Id: I1402269ddf8632525f5550f80e5610e1a7b4034d
2012-09-23 14:15:26 -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
Amith Yamasani
77e95d3d71 Merge "Show lockscreen widgets for the current user." into jb-mr1-dev 2012-09-21 18:16:49 -07:00
Amith Yamasani
8fd96ec2dc Show lockscreen widgets for the current user.
Also shows the owner info and next alarm for the current user.
AppWidgetService now assumes that any widgets running in the system process are for the
current user, so that lockscreen shows widgets for the current user

Bug: 7211754
Bug: 7212421

Change-Id: Iaf0edc60e49af0afe42625c0b2dcf100c9ecc178
2012-09-21 18:10:34 -07:00
Jim Miller
6eeff850b2 Merge "Remove UID checks from LockPatternUtils" into jb-mr1-dev 2012-09-21 17:31:09 -07:00
Jim Miller
25645d8bbc Remove UID checks from LockPatternUtils
The UID checks should be unnecessary because LockPatternUtils already relies
on system permission checks in Settings, LockSettings, DevicePolicyManager
and Keystore.  These checks should already catch illegal operations.

This was interfering with the stand-alone test app for keyguard.

Change-Id: I2da2a729ca29feae9e962c2e360ec47490bcbbf0
2012-09-21 14:47:54 -07:00
Michael Jurka
7566abd305 Merge "Add support for changing status widget on security screen" into jb-mr1-dev 2012-09-21 01:10:53 -07:00
Michael Jurka
20c41d5382 Add support for changing status widget on security screen
Change-Id: I080fd89eb84445604c602b6e807b55153a7ee129
2012-09-20 19:19:41 -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
Jim Miller
109f1fd80c Update keyguard selector view to match UX design spec
- Use new Roboto-Thin font
- Add new keyguard-specific date format
- Layout tweaks to keyguard selector screen.
- Add smart EmergencyButton class
- Add selective upper-casing of components on the display to enable later UX decision
- Work around SIM state bug

Bug: 7094419
Change-Id: Ic7e0f30697c14d4946372509d98ad81bf6a23c92
2012-09-19 20:47:37 -07:00
Dianne Hackborn
52716deb40 Merge "Fix deadlock in LockPatternUtils by using local id." into jb-mr1-dev 2012-09-19 13:28:11 -07:00
Craig Mautner
f1b6741975 Fix deadlock in LockPatternUtils by using local id.
Activity manager now updates window manager's current user id
directly and immediately rather than waiting for a broadcast
update. Window manager passes this through policy to the
KeyguardViewMediator and into LockPatternUtils. LockPatternUtils
no longer goes to Activity to get the current user id if it finds
that its local id is non-default.

Fixes bug 7193726.

Change-Id: Id5613e7a9fe9e5b49e83c26b74504f587c3998c2
2012-09-19 13:18:29 -07:00
Adam Powell
10bd4106ef am baed0a8f: am 56fd88d8: am ab12f0f7: Merge "Implement resolving of icon attributes to resIds in AlertController"
* commit 'baed0a8f0b43191c8f001e064ff42cf27a305d87':
  Implement resolving of icon attributes to resIds in AlertController
2012-09-19 12:26:06 -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
Fabrice Di Meglio
b250e94fdc Merge "Fix bug #7112174 ActionMenuView should be aware of layout direction" into jb-mr1-dev 2012-09-18 10:47:07 -07:00
Amith Yamasani
a87826c345 Merge "Fix face unlock for multiple users" into jb-mr1-dev 2012-09-14 14:11:58 -07:00
Amith Yamasani
4b4b954ddf Fix face unlock for multiple users
Bug: 7152537

Not all instances of LockPatternUtils are getting updated with the current user, so
query it directly from the Activity Manager.

Change-Id: I46395c3e00feecd0edfe4228f8d7966f425519f2
2012-09-14 13:36:29 -07:00
Jim Miller
f229e4d3eb Add support for settings for lock widgets
Change-Id: Iade094c6f32a7653bdbbd4921d345d68f2443ff4
2012-09-14 12:31:24 -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
Adam Cohen
0aa2d42e87 Adding notion of keyguard widgets
-> Persisting certain appwidget options
-> Adding ability to specify appwidget options on bind
   so as to avoid AppWidgetProvider update call with no
   options.

Change-Id: I5631039f19f1822b8e123b559b6353c880c0192e
2012-09-11 10:53:57 -07:00
blunden
576e1dff3d Implement resolving of icon attributes to resIds in AlertController
Platform code using AlertController directly currently has
no way to set the correct theme-specific dialog icon in a
generic way. This adds code to handle such usage.

Change-Id: I48beafa1183e4edf6d5378b3985a7f9be5fcda8b
2012-09-11 07:26:12 +02:00
Victoria Lease
d7f5a51baf Merge "IME support for trackball and generic motion events" into jb-mr1-dev 2012-09-10 14:12:48 -07:00
Victoria Lease
b38070caa5 IME support for trackball and generic motion events
Trackball and generic motion events now pass through the IME in case
it would like to handle them before passing them on to the view
hierarchy.

While I was at it, I also...
...fixed the documentation on InputMethodService.onKeyUp()
...added documentation to InputMethodService.onTrackballEvent()
...added trackball and generic motion events to the "input" command
...fixed input consistency verification involving ACTION_OUTSIDE

Bug: 7050005
Change-Id: I40ab68df4a9542af6df25de6ec2ec500e4c02902
2012-09-10 14:01:42 -07:00
Jeff Brown
cbad976b2a Add support for Wifi display.
Change-Id: I99693786cf9d07d07d3400046c55eb4933730b80
2012-09-07 13:26:31 -07:00
Fabrice Di Meglio
0762cec04f Fix bug #7112174 ActionMenuView should be aware of layout direction
- do correct layout of action items depending of layout direction

Change-Id: Iff0181ffa2cb69884920edd5c37eb1a8a8196816
2012-09-05 19:17:20 -07:00
Fabrice Di Meglio
035ce2ca92 Merge "Add support for "-rtl" in resources" into jb-mr1-dev 2012-09-04 15:01:03 -07:00
Amith Yamasani
61f57379ca Centralize the creation of the user system directory
Environment.getUserSystemDirectory(int userId)

Use it all relevant places that was hardcoding it.
Also, wipe out the user's system directory when user is removed, otherwise old state
might be transferred to a new user.

Change-Id: I788ce9c4cf9624229e65efa7047bc0c019ccef0a
2012-08-31 15:33:21 -07:00
Jeff Sharkey
e217ee4d7a Access to all users' external storage.
System services holding this permission have external storage bound
one level higher, giving them access to all users' files.

Bug: 7003520
Change-Id: Ib2bcb8455740c713ebd01f71c9a2b89b4e642832
2012-08-30 10:37:51 -07:00
Dianne Hackborn
80a4af2bbc Start implementing concept of "running" users.
The activity manager now keeps track of which users are running.

Initially, only user 0 is running.

When you switch to another user, that user is started so it is
running.  It is only at this point that BOOT_COMPLETED is sent
for that user and it is allowed to execute anything.

You can stop any user except user 0, which brings it back to the
same state as when you first boot the device.  This is also used
to be able to more cleaning delete a user, by first stopping it
before removing its data.

There is a new broadcast ACTION_USER_STOPPED sent when a user is
stopped; system services need to handle this like they currently
handle ACTION_PACKAGE_RESTARTED when individual packages are
restarted.

Change-Id: I89adbd7cbaf4a0bb72ea201385f93477f40a4119
2012-08-28 16:30:55 -07:00
Adam Powell
ac137b3211 Merge "Add setOnDismissListener to AlertDialog.Builder" into jb-mr1-dev 2012-08-27 14:04:29 -07:00
Adam Powell
7f02dc5c9c Add setOnDismissListener to AlertDialog.Builder
Add documentation to setOnCancelListener to clarify that the cancel
event plus the events for the various choice buttons are not the
exhaustive set of ways the dialog can be dismissed, and that a dismiss
listener should be used if the app needs to cover all cases of
dismissal.

Change-Id: I9e9d6f90f6f9ccaeb2c697474ab353e2d78f37b9
2012-08-27 13:53:29 -07:00
Jeff Sharkey
69ddab4575 Always-on VPN.
Adds support for always-on VPN profiles, also called "lockdown." When
enabled, LockdownVpnTracker manages the netd firewall to prevent
unencrypted traffic from leaving the device. It creates narrow rules
to only allow traffic to the selected VPN server. When an egress
network becomes available, LockdownVpnTracker will try bringing up
the VPN connection, and will reconnect if disconnected.

ConnectivityService augments any NetworkInfo based on the lockdown
VPN status to help apps wait until the VPN is connected.

This feature requires that VPN profiles use an IP address for both
VPN server and DNS. It also blocks non-default APN access when
enabled. Waits for USER_PRESENT after boot to check KeyStore status.

Bug: 5756357
Change-Id: If615f206b1634000d78a8350a17e88bfcac8e0d0
2012-08-27 12:35:05 -07:00
Adam Powell
c7752a312a Show content description popups when long-pressing action bar tabs
If an action bar tab shows as an icon only and has a content
description, show a long-press popup with the content description.

Bug 6009390

Change-Id: I7f2f68eeef03ede99ff2113e21e1dc14a4295827
2012-08-24 18:00:40 -07:00
Dianne Hackborn
7767eac323 Keep track of whether an app is installed for each user.
This add a new per-user state for an app, indicating whether
it is installed for that user.

All system apps are always installed for all users (we still
use disable to "uninstall" them).

Now when you call into the package manager to install an app,
it will only install the app for that user unless you supply
a flag saying to install for all users.  Only being installed
for the user is just the normal install state, but all other
users have marked in their state for that app that it is not
installed.

When you call the package manager APIs for information about
apps, uninstalled apps are treated as really being not visible
(somewhat more-so than disabled apps), unless you use the
GET_UNINSTALLED_PACKAGES flag.

If another user calls to install an app that is already installed,
just not for them, then the normal install process takes place
but in addition that user's installed state is toggled on.

The package manager will not send PACKAGE_ADDED, PACKAGE_REMOVED,
PACKAGE_REPLACED etc broadcasts to users who don't have a package
installed or not being involved in a change in the install state.
There are a few things that are not quite right with this -- for
example if you go through a full install (with a new apk) of an
app for one user who doesn't have it already installed, you will
still get the PACKAGED_REPLACED messages even though this is
technically the first install for your user.  I'm not sure how
much of an issue this is.

When you call the existing API to uninstall an app, this toggles
the installed state of the app for that user to be off.  Only if
that is the last user user that has the app uinstalled will it
actually be removed from the device.  Again there is a new flag
you can pass in to force the app to be uninstalled for all users.

Also fixed issues with cleaning external storage of apps, which
was not dealing with multiple users.  We now keep track of cleaning
each user for each package.

Change-Id: I00e66452b149defc08c5e0183fa673f532465ed5
2012-08-24 13:53:13 -07:00
Jeff Sharkey
34f8631258 Merge "Migrate legacy VPN arguments to system_server." into jb-mr1-dev 2012-08-24 11:33:00 -07:00
Jeff Sharkey
82f8521d38 Migrate legacy VPN arguments to system_server.
Generate the racoon and mtpd daemon arguments in system_server,
instead of accepting them from Settings.

Bug: 5756357
Change-Id: I42c1a644f6add477fe4222342640d7db15982cb8
2012-08-24 11:29:58 -07:00
Jeff Sharkey
96702ad6d7 Merge "Framework interface for netd firewall." into jb-mr1-dev 2012-08-24 11:07:42 -07:00
Jeff Sharkey
c268f0b19e Framework interface for netd firewall.
Bug: 5756357
Change-Id: If8b9f738fcea2cf16bd01682220718b57346c7cc
2012-08-24 11:00:28 -07:00
Jeff Sharkey
d5fc86f067 Merge "Begin moving VPN to NetworkStateTracker pattern." into jb-mr1-dev 2012-08-23 16:47:50 -07:00
Jeff Sharkey
899223b97c Begin moving VPN to NetworkStateTracker pattern.
Created base tracker that handles common bookkeeping, and move VPN
to become a tracker.  VPN status is now reflected in NetworkInfo, and
is mapped to LegacyVpnInfo.

Legacy VPN now "babysits" any init services it starts, watching for
when they stop unexpectedly.

Bug: 5756357
Change-Id: Iba7ec79da69469f6bd9a970cc39cf6b885b4c9c4
2012-08-23 16:41:06 -07:00
Fabrice Di Meglio
5f79799939 Add support for "-rtl" in resources
- fix bug #7035019 Need to have "-rtl" support for Resource

Change-Id: Ic82145c2ac672729d8a6c695a5f343276a1a0a2c
2012-08-23 14:55:33 -07:00