Commit Graph

3535 Commits

Author SHA1 Message Date
Kenny Guy
1ccace916c Merge "Rename related users to profiles." 2014-04-02 13:06:28 +00:00
Kenny Guy
2a764949c9 Rename related users to profiles.
Rename the related user concept as profiles.
When returning profiles of a user include the
user as a profile of itself.

Change-Id: Id5d4f29017b7ca6844632ce643f10331ad733e1d
2014-04-02 13:44:50 +01:00
Christopher Tate
cba5941c60 Rejigger the invalid-key checks at backup time
Bug 13732002

Change-Id: Ic8f71234d1bbc7420eaa8e1762b999d09f308d46
2014-04-01 16:43:00 -07:00
Katie McCormick
4c9f457141 am fb19fc61: am 905a5b14: am 87d9d1a0: Doc Update: revert PendingIntent fix.
* commit 'fb19fc61f28bcff1b129d1a60913f5b8722f10cf':
  Doc Update: revert PendingIntent fix.
2014-04-01 01:25:41 +00:00
Katie McCormick
fb19fc61f2 am 905a5b14: am 87d9d1a0: Doc Update: revert PendingIntent fix.
* commit '905a5b1477b3a1899ef389dbe081f9c70a4fe13d':
  Doc Update: revert PendingIntent fix.
2014-04-01 00:21:34 +00:00
Katie McCormick
905a5b1477 am 87d9d1a0: Doc Update: revert PendingIntent fix.
* commit '87d9d1a0405e6cdbcd7c87cfebee04b622100753':
  Doc Update: revert PendingIntent fix.
2014-04-01 00:15:52 +00:00
Katie McCormick
87d9d1a040 Doc Update: revert PendingIntent fix.
Original fix was in error. Reverting. See:

b/10641568

Change-Id: I471157388b2d55aa99bd16813c07607b8a0a7046
2014-03-31 16:18:15 -07:00
Adrian Roos
82142c21dd Define trust agent framework components
Adds the TrustManager system service that allows
registering for changes to the trust status and
reporting events that are important to trust agents.

Bug: 13723878
Change-Id: I7d0d2ea86fd755702d31aa5d49cac038a6cd4301
2014-03-31 21:18:28 +02:00
Yuhao Zheng
93627ac86c Merge "Wifi hotspot stack initial hook up" 2014-03-28 22:49:51 +00:00
John Spurlock
ec27a7caf3 am 5579ec33: DO NOT MERGE Enhance the NotificationListenerService api.
* commit '5579ec33eb317a19ad80929169b2b329b147d98b':
  DO NOT MERGE Enhance the NotificationListenerService api.
2014-03-28 19:01:10 +00:00
Robin Lee
0756e4e42e Merge "Fix privilege escalation for preferred activities" 2014-03-28 17:35:35 +00:00
Robin Lee
5c921daa72 Fix privilege escalation for preferred activities
Passing in the name of an actual admin should be enough to pass the
security check as it was. This is now fixed as the caller is not
given the opportunity to spoof its own name any more.

Change-Id: Id8be4ca4c8bf3751a1ee8125cf119fa100c81d22
2014-03-28 15:09:49 +00:00
John Spurlock
5579ec33eb DO NOT MERGE Enhance the NotificationListenerService api.
Add to NotificationListenerService:
 - getActiveNotificationKeys() : String[]
 - getActiveNotifications(String[] keys) : StatusBarNotification[]
 - cancelNotifications(String[] keys) : void
 - onListenerConnected(String[] keys) : void

Add to StatusBarNotification:
 - getKey() : String

Bug:13562828
Change-Id: I9da222cb4af22864bc0ecdecc3f121bced0723d6
2014-03-28 10:19:00 -04:00
John Spurlock
a4294297d4 Enhance the NotificationListenerService api.
Add to NotificationListenerService:
 - getActiveNotificationKeys() : String[]
 - getActiveNotifications(String[] keys) : StatusBarNotification[]
 - cancelNotifications(String[] keys) : void
 - onListenerConnected(String[] keys) : void

Add to StatusBarNotification:
 - getKey() : String

Bug:13562828
Change-Id: Idd9605dad8f942d68b4b32ab9625faf6c8642db9
2014-03-28 08:47:01 -04:00
Christopher Tate
f1977b4500 Expand install observer semantics
...and now fail conservatively when two apps both attempt to define
the same permission.  Apps signed with the same certificate are
permitted to redefine permissions.

We also finally have a (hidden) interface class for observing package
installation so that we can now rev the interface without breaking
existing callers.

Bug 13551375

Change-Id: Ifa4e59154dcccbb286ee46a35a6f25e4ad0f0f01
2014-03-27 12:37:47 -07:00
Jorim Jaggi
73581effb0 Merge "Move legacy notification processing to Notification.Builder" 2014-03-27 14:25:17 +00:00
Jorim Jaggi
5c2d84675b Move legacy notification processing to Notification.Builder
Bug: 13485610
Change-Id: I5466d3dbc328c77876dc701c17e7a5a06777dbbe
2014-03-27 12:08:55 +01:00
Glenn Kasten
1ee4eb074c Merge "Revert "Expand install observer semantics"" 2014-03-26 20:00:11 +00:00
Glenn Kasten
7629a18a3f Revert "Expand install observer semantics"
This reverts commit ab8a501f25.

Change-Id: I4ab4ae1a96efa2adf9d5a513793d8b84eef38b4e
2014-03-26 19:59:48 +00:00
Christopher Tate
9067dc03ff Merge "Expand install observer semantics" 2014-03-26 19:24:09 +00:00
Christopher Tate
ab8a501f25 Expand install observer semantics
...and now fail conservatively when two apps both attempt to define
the same permission.

We also finally have a (hidden) interface class for observing package
installation so that we can now rev the interface without breaking
existing callers.

Bug 13551375

Change-Id: I3a286d024a30e812ee4b098f345401df3c00e178
2014-03-25 19:28:54 -07:00
Yuhao Zheng
10bf6354a5 Wifi hotspot stack initial hook up
Add a dummy wifi hotspot service for futher development use. This is to
resolve the different between master branch and kwd branch, such that future
development can go into kwd and being auto-merged to master.

bug: 5485670
Change-Id: Ica58de445dd050a9f0b817f8e4accaa2478299c5
2014-03-25 15:00:45 -07:00
Adam Lesinski
de898ff429 Shared library resource support
Shared libraries can now export resources for applications
to use.

Exporting resources works the same way the framework exports
resources, by defining the public symbols in res/values/public.xml.

Building a shared library requires aapt to be invoked with the
--shared-lib option. Shared libraries will be assigned a package
ID of 0x00 at build-time. At runtime, all loaded shared libraries
will be assigned a new package ID.

Currently, shared libraries should not import other shared libraries,
as those dependencies will not be loaded at runtime.

At runtime, reflection is used to update the package ID of resource
symbols in the shared library's R class file. The package name of
the R class file is assumed to be the same as the shared library's
package name declared in its manifest. This will be customizable in
a future commit.

See /tests/SharedLibrary/ for examples of a shared library and its
client.

Bug:12724178
Change-Id: I60c0cb8ab87849f8f8a1a13431562fe8603020a7
2014-03-25 12:09:56 -07:00
Jinsuk Kim
1c855178e4 am 775a097f: am 3c34e5db: am c01e1aeb: Merge "Add HdmiCecManager" into klp-modular-dev
* commit '775a097f01a349548d2124ae9d7dd562c72eaa27':
  Add HdmiCecManager
2014-03-24 21:25:21 +00:00
John Spurlock
e2cae0a657 am 2b45d84e: Merge "Unhide Notification kind, rename to category." into klp-modular-dev
* commit '2b45d84e24946d0cbbcc577ca3e195c0db687c9a':
  Unhide Notification kind, rename to category.
2014-03-24 17:44:53 +00:00
John Spurlock
cf44a124ab Unhide Notification kind, rename to category.
Change-Id: I8e6d5a30dff519d7ed4f38e018646dd2bc55db33
2014-03-24 11:02:36 -04:00
Jinsuk Kim
3c34e5dbbb am c01e1aeb: Merge "Add HdmiCecManager" into klp-modular-dev
* commit 'c01e1aeb0d86bd626684c97d709d4a8e995fddfb':
  Add HdmiCecManager
2014-03-24 12:26:51 +00:00
Jinsuk Kim
c01e1aeb0d Merge "Add HdmiCecManager" into klp-modular-dev 2014-03-23 23:24:44 +00:00
Jinsuk Kim
fbcd503645 Add HdmiCecManager
Introduces HdmiCecManager/HdmiCecClient to provide apps/system components
with the way to access HdmiCecService via Context.getSystemService(HDMI_CEC_SERVICE).

Change-Id: I39da071a328074a4b7b049947943688bd7779c26
2014-03-24 08:19:39 +09:00
Craig Mautner
61ada5d330 Merge "Add Activity methods for icons and labels." 2014-03-22 23:44:37 +00:00
Craig Mautner
2fbd754180 Add Activity methods for icons and labels.
New Activity methods setRecentsLabel(CharSequence) and
setRecentsIcon(Bitmap) have been added. The topmost
activity with either of these set will be returned in
RecentTaskInfo members activityLabel and activityIcon.

Fixes bug 13562992.

Change-Id: Ic15d1d27b733b892a2a940063b105ac48f1ffee5
2014-03-22 16:39:33 -07:00
John Spurlock
0a69c8c4bd Add notification category for recommendations.
Change-Id: I3718b8273c3f901aee1b2c2cdc4fcdae25fadcad
2014-03-21 21:33:37 -04:00
Unsuk Jung
7bde0fc751 am 2270ac96: am 8114c3d0: am 1a70f391: Merge "Change wallpaper sizing" into klp-dev
* commit '2270ac96d5d8ab6c2d1601f8dd5d8409762fb35f':
  Change wallpaper sizing
2014-03-21 19:17:01 +00:00
Unsuk Jung
2270ac96d5 am 8114c3d0: am 1a70f391: Merge "Change wallpaper sizing" into klp-dev
* commit '8114c3d02d6bf72c0627aea6ecf738074ac3f232':
  Change wallpaper sizing
2014-03-21 19:11:01 +00:00
Unsuk Jung
8114c3d02d am 1a70f391: Merge "Change wallpaper sizing" into klp-dev
* commit '1a70f391608e82fcc5550c76ccc7bf8bac5bbc10':
  Change wallpaper sizing
2014-03-21 19:05:40 +00:00
John Spurlock
fd7f1e0039 Unhide notification category.
Rename @hidden Notification.kind -> category, and flesh out
shared values.  Now a single value.

Update framework references, remove unused SystemUpdateService
magic value unused since 2012.

Change-Id: If06d19ff3a8c3125fca1457f5d3c665e2939c66c
2014-03-21 09:25:00 -04:00
Michael Jurka
3368a63c64 Change wallpaper sizing
Bug: 11997581

- ignore suggested dimensions
- when orientation changes, scale up wallpaper if
it doesn't fill the whole screen, or scale back to
original size if not necessary

Change-Id: I75b7519a105d4097bf7a35cd8af61fc40f45f8fb
(cherry picked from commit 824a4b5ea4)
2014-03-21 10:29:27 +00:00
Christopher Tate
adfe8b86e9 App widget backup/restore infrastructure
Backup/restore now supports app widgets.

An application involved with app widgets, either hosting or publishing,
now has associated data in its backup dataset related to the state of
widget instantiation on the ancestral device.  That data is processed
by the OS during restore so that the matching widget instances can be
"automatically" regenerated.

To take advantage of this facility, widget-using apps need to do two
things:  first, implement a backup agent and store whatever widget
state they need to properly deal with them post-restore (e.g. the
widget instance size & location, for a host); and second, implement
handlers for new AppWidgetManager broadcasts that describe how to
translate ancestral-dataset widget id numbers to the post-restore
world.  Note that a host or provider doesn't technically need to
store *any* data on its own via its agent; it just needs to opt in
to the backup/restore process by publishing an agent.  The OS will
then store a small amount of data on behalf of each widget-savvy
app within the backup dataset, and act on that data at restore time.

The broadcasts are AppWidgetManager.ACTION_APPWIDGET_RESTORED and
ACTION_APPWIDGET_HOST_RESTORED, and have three associated extras:

    EXTRA_APPWIDGET_OLD_IDS
    EXTRA_APPWIDGET_IDS
    EXTRA_HOST_ID [for the host-side broadcast]

The first two are same-sized arrays of integer widget IDs.  The
_OLD_IDS values are the widget IDs as known to the ancestral device.
The _IDS array holds the corresponding widget IDs in the new post-
restore environment.  The app should simply update the stored
widget IDs in its bookkeeping to the new values, and things are
off and running.  The HOST_ID extra, as one might expect, is the
app-defined host ID value of the particular host instance which
has just been restored.

The broadcasts are sent following the conclusion of the overall
restore pass.  This is because the restore might have occurred in a
tightly restricted lifecycle environment without content providers
or the package's custom Application class.  The _RESTORED broadcast,
however, is always delivered into a normal application environment,
so that the app can use its content provider etc as expected.

*All* widget instances that were processed over the course of the
system restore are indicated in the _RESTORED broadcast, even if
the backing provider or host is not yet installed.  The widget
participant is responsible for understanding that these are
promises that might be fulfilled later rather than necessarily
reflecting the immediate presentable widget state.  (Remember
that following a cloud restore, apps may be installed piecemeal
over a lengthy period of time.)  Telling the hosts up front
about all intended widget instances allows them to show placeholder
UI or similarly useful information rather than surprising the user
with piecemeal unexpected appearances.

The AppWidgetProvider helper class has been updated to add a new
callback, onRestored(...), invoked when the _RESTORED broadcast
is received.  The call to onRestored() is immediately followed by
an invocation of onUpdate() for the affected widgets because
they will need to have their RemoteViews regenerated under the
new ID values.

Bug 10622506
Bug 10707117

Change-Id: Ie0007cdf809600b880d91989c00c3c3b8a4f988b
2014-03-20 12:30:51 -07:00
Svetoslav
8e3feb15c5 Added accessibility APIs for introspecting interactive windows.
1. The old introspection model was allowing querying only the active window
   which is the one the user is touching or the focused one if no window is
   touched. This was limiting as auto completion drop downs were not inspectable,
   there was not way to know when the IME toggles, non-focusable windows were
   not inspectable if the user taps them as until a screen-reader starts
   introspecting the users finger is up, accessibility focus was limited to
   only one window and the user couldn't use gestures to visit the whole UI,
   and other things I can't remember right now.

   The new APIs allow getting all interactive windows, i.e. ones that a
   sighted user can interact with. This prevents an accessibility service
   from interacting with content a sighter user cannot. The list of windows
   can be obtained from an accessibility service or the host window from an
   accessibility node info. Introspecting windows obey the same rules for
   introspecting node, i.e. the service has to declare this capability
   in its manifest.

   When some windows change accessibility services receive a new type
   of event. Initially the types of windows is very limited. We provide
   the bounds in screen, layer, and some other properties which are
   enough for a client to determined the spacial and hierarchical
   relationship of the windows.

2. Update the documentation in AccessibilityService for newer event types.

3. LongArray was not removing elements properly.

4. Composite accessibility node ids were not properly constructed as they
   are composed of two ints, each taking 32 bits. However, the values for
   undefined were -1 so composing a 64 long from -1, -1 prevents from getting
   back these values when unpacking.

5. Some apps were generating inconsistent AccessibilityNodeInfo tree. Added
   a check that enforces such trees to be well formed on dev builds.

6. Removed an necessary code for piping the touch exploration state to
   the policy as it should just use the AccessibilityManager from context.

7. When view's visibility changed it was not firing an event to notify
   clients it disappeared/appeared. Also ViewGroup was sending accessibility
   events for changes if the view is included for accessibility but this is
   wrong as there may be a service that want all nodes, hence events from them.
   The accessibility manager service takes care of delivering events from
   not important for accessibility nodes only to services that want such.

8. Several places were asking for prefetching of sibling but not predecessor
   nodes which resulted in prefetching of unconnected subtrees.

9. The local AccessibilityManager implementation was relying on the backing
   service being ready when it is created but it can be fetched from a context
   before that. If that happens the local manager was in a broken state forever.
   Now it is more robust and starts working properly once the backing service
   is up. Several places were lacking locking.

bug:13331285

Change-Id: Ie51166d4875d5f3def8d29d77973da4b9251f5c8
2014-03-20 16:52:59 +00:00
John Spurlock
1af30c7ac4 Add stream-level suppression to vibrate/audio services.
- Add new audio restriction layer to app-ops.  Restrictions add
additional constraints to audio operations at a stream-level.
Restrictions do not affect the persistable state, and are purely
additive: that is, they can only impose additional contstraints, not
enable something that has already been disabled.  Restrictions
also support a whitelisted set of exempt package names.

- Add new audio stream-level checks to app-ops.

- Implement a provisional OP_PLAY_AUDIO suppression to three
java entry points MediaPlayer, AudioTrack, & SoundPool.

- Enhance vibrator api to take stream information as an optional
hint - the constants correspond to AudioManager stream types.
OP_VIBRATE now supports the stream-level restriction check.

- Simplify Vibrator subclasses by adding default implementations
for two .vibrate calls.

- Migrate NoMan's zen-mode control to use the new app-ops
stream-level restriction mechanism.

Change-Id: Ifae8952647202f728cf1c73e881452660c704678
2014-03-19 15:32:51 -04:00
Kenny Guy
ecc9f9b6f3 Merge "Add flag to allow fetching related users recent tasks." 2014-03-18 11:43:46 +00:00
Kenny Guy
82326a98a4 Add flag to allow fetching related users recent tasks.
Fetch related users recent tasks along with requested users
tasks when flag is set
Set flag in requests coming from systemui/recents.

Change-Id: I985e2d9d6b9728603685fc6126e8193af119e172
2014-03-17 19:45:17 +00:00
Dianne Hackborn
4c1d506d7b Merge "Start enforcing explicit intents for Context.bindService()" 2014-03-17 19:30:43 +00:00
Dianne Hackborn
10ad98223f Start enforcing explicit intents for Context.bindService()
No longer prints a warning, now throws an exception.

Also fix a bug in UserManagerService that was causing an
exception while booting.

Change-Id: I3b43cfe08067da840b6850b9bed58664d36d34f1
2014-03-17 11:28:36 -07:00
Jessica Hummel
03dd22079c Standardize the provisioning intent action.
Change-Id: Iea7f8827cf4b52e2e97e8675687412108dd917e4
2014-03-17 16:53:27 +00:00
John Spurlock
30672787d2 am dc28dc63: am 399cac5b: am 75985bbe: am 62826f55: am f6228d95: Merge "Fix doc typos in AppOpsManager.java" into klp-docs
* commit 'dc28dc63a7c04dcb87e257700a1d7aea40de0ce3':
  Fix doc typos in AppOpsManager.java
2014-03-14 17:53:53 +00:00
John Spurlock
399cac5b33 am 75985bbe: am 62826f55: am f6228d95: Merge "Fix doc typos in AppOpsManager.java" into klp-docs
* commit '75985bbe2f04519cc663db7ad54e8e69f3eabfc0':
  Fix doc typos in AppOpsManager.java
2014-03-14 16:32:24 +00:00
John Spurlock
75985bbe2f am 62826f55: am f6228d95: Merge "Fix doc typos in AppOpsManager.java" into klp-docs
* commit '62826f55be4415684b4e321469298ba43d598bbb':
  Fix doc typos in AppOpsManager.java
2014-03-14 16:28:15 +00:00
Jose Lima
92703e62c1 resolved conflicts for merge of 4882ddfa to master
Change-Id: I179899697c148ac34a67b195e2dbd3df2f9138de
2014-03-13 21:26:48 -07:00
John Spurlock
62826f55be am f6228d95: Merge "Fix doc typos in AppOpsManager.java" into klp-docs
* commit 'f6228d95eae7b05dd0015b3062e72c89148e65a2':
  Fix doc typos in AppOpsManager.java
2014-03-13 22:14:57 +00:00