435 Commits

Author SHA1 Message Date
Scott Main
a2860267ca update make file with 'since' tag for api level 16, update version number
Change-Id: I30d04dcde5cd505959d94c274634018b3602cb26
2012-06-21 21:20:42 -07:00
Jean-Michel Trivi
1357012968 Remote volume handling in MediaRouter
Extend MediaRouter.UserRouteInfo to enable setting playback
 information, which includes volume. When the user route instance
 has a RemoteControlClient, forward any playback information to it.
 Enable specifying a callback to be notified of volume events
 on the route.
Extend MediaRouter.RouteInfo to enable retrieving playback
 information.

Update RemoteControlClient javadoc to reflect which parts of the
 API are not intended to be made public.

Change-Id: I59d728eb61747af6c8c89d53f0faeb07940594c3
2012-06-19 19:41:35 -07:00
Dianne Hackborn
632ca417f0 Add new callback for MediaRouter to found out about device changes.
The AudioService now has an API to call to get the currently
connected devices, and later reports of changes in connection
state.  The information includes the name of the bluetooth
device if one is connected for display to the user, and states
for all of the pluggable devices.  No longer requires a Bluetooth
permission to keep the routes updated.

Change-Id: I81ca421c60592fbc1592477d59bf1c9d1b64954a
2012-06-15 13:15:35 -07:00
Svetoslav Ganov
7b1e0c7046 Removing default accessibility gesture handling.
1. The initial design was to have some accessibility gestures
   being handled by the system if the gesture handling access
   service does not consume the gesture. However, we are not
   sure what a good default is and once we add a default handler
   we cannot remove it since people may rely on it. Thus, we
   take the simples approach and let the accessibility service
   handle the gestures. If no gestures are handled the system
   will work in explore by touch as before.

bug:5932640

Change-Id: I865a83549fa03b0141d27ce9713e9b7bb45a57b4
2012-05-13 12:39:51 -07:00
Jeff Brown
a7771df369 Move CancellationSignal to android.os package.
Bug: 6427830
Change-Id: I39451bb1e1d4a8d976ed1c671234f0c8c61658dd
2012-05-07 20:06:46 -07:00
Jeff Sharkey
098d580cc2 Migrate ringtone playback to SystemUI.
Introduce IRingtonePlayer, which handles playback for both Ringtone
objects and Notifications. SystemUI now hosts this player, which it
registers with AudioService. It also keeps MediaPlayer instances
warm, and cleans them up after stop() or Binder death.

Move both Ringtone and NotificationManagerService to play back audio
through this new interface.

Bug: 6376128, 6350773
Change-Id: I1dcb86d16ee3c4f07cdb2248d33dcff4ead3609a
2012-04-27 14:15:05 -07:00
Glenn Kasten
07b0465095 Scheduling policy service
Change-Id: I6178b96896ffbb3323210f93784a65d724a3e694
2012-04-24 09:53:14 -07:00
Svetoslav Ganov
fefd20e927 Adding an opt-in mechanism for gesture detection in AccessibilityService.
1. An accessibility service has to explicitly opt in to be notified
   for gestures by the system. There is only one accessibility service
   that handles gestures and in case it does not handle a gesture
   the system performs default handling. This default handling ensures
   that we have gesture navigation even if no accessibility service
   would like to participate/customize the interaction model.

bug:5932640

Change-Id: Id8194293bd94097b455e9388b68134a45dc3b8fa
2012-04-19 22:08:42 -07:00
Brett Chabot
571db3203c Build junit API docs from external/junit.
Bug 5826326

Change-Id: I67d18cacf0c4e908ec41dbed483314ece8b72ceb
2012-04-16 18:23:19 -07:00
Svetoslav Ganov
4213804541 Accessibility focus - framework
Usefulness: Keep track of the current user location in the screen when
            traversing the it. Enabling structural and directional
            navigation over all elements on the screen. This enables
            blind users that know the application layout to efficiently
            locate desired elements as opposed to try touch exploring the
            region where the the element should be - very tedious.

Rationale: There are two ways to implement accessibility focus One is
           to let accessibility services keep track of it since they
           have access to the screen content, and another to let the view
           hierarchy keep track of it. While the first approach would
           require almost no work on our part it poses several challenges
           which make it a sub-optimal choice. Having the accessibility focus
           in the accessibility service would require that service to scrape
           the window content every time it changes to sync the view tree
           state and the accessibility focus location. Pretty much the service
           will have to keep an off screen model of the screen content. This
           could be quite challenging to get right and would incur performance
           cost for the multiple IPCs to repeatedly fetch the screen content.
           Further, keeping virtual accessibility focus (i.e. in the service)
           would require sync of the input and accessibility focus. This could
           be challenging to implement right as well. Also, having an unlimited
           number of accessibility services we cannot guarantee that they will
           have a proper implementation, if any, to allow users to perform structural
           navigation of the screen content. Assuming two accessibility
           services implement structural navigation via accessibility focus,
           there is not guarantee that they will behave similarly by default,
           i.e. provide some standard way to navigate the screen content.
           Also feedback from experienced accessibility researchers, specifically
           T.V Raman, provides evidence that having virtual accessibility focus
           creates many issues and it is very hard to get right.
           Therefore, keeping accessibility focus in the system will avoid
           keeping an off-screen model in accessibility services, it will always
           be in sync with the state of the view hierarchy and the input focus.
           Also this will allow having a default behavior for traversing the
           screen via this accessibility focus that is consistent in all
           accessibility services. We provide accessibility services with APIs to
           override this behavior but all of them will perform screen traversal
           in a consistent way by default.

Behavior:  If accessibility is enabled the accessibility focus is the leading one
           and the input follows it. Putting accessibility focus on a view moves
           the input focus there. Clearing the accessibility focus of a view, clears
           the input focus of this view. If accessibility focus is on a view that
           cannot take input focus, then no other view should have input focus.
           In accessibility mode we initially give accessibility focus to the topmost
           view and no view has input focus. This ensures consistent behavior accross
           all apps. Note that accessibility focus can move hierarchically in the
           view tree and having it at the root is better than putting it where the
           input focus would be - at the first input focusable which could be at
           an arbitrary depth in the view tree. By default not all views are reported
           for accessibility, only the important ones. A view may be explicitly labeled
           as important or not for accessibility, or the system determines which one
           is such - default. Important views for accessibility are all views that are
           not dumb layout managers used only to arrange their chidren. Since the same
           content arrangement can be obtained via different combintation of layout
           managers, such managers cannot be used to reliably determine the application
           structure. For example, a user should see a list as a list view with several
           list items and each list item as a text view and a button as opposed to seeing
           all the layout managers used to arrange the list item's content.
           By default only important for accessibility views are regared for accessibility
           purposes. View not regarded for accessibility neither fire accessibility events,
           nor are reported being on the screen. An accessibility service may request the
           system to regard all views. If the target SDK of an accessibility services is
           less than JellyBean, then all views are regarded for accessibility.
           Note that an accessibility service that requires all view to be ragarded for
           accessibility may put accessibility focus on any view. Hence, it may implement
           any navigational paradigm if desired. Especially considering the fact that
           the system is detecting some standard gestures and delegates their processing
           to an accessibility service. The default implementation of an accessibility
           services performs the defualt navigation.

bug:5932640
bug:5605641

Change-Id: Ieac461d480579d706a847b9325720cb254736ebe
2012-04-13 19:05:24 -07:00
Jeff Brown
af9e8d3818 Notify applications when input devices change.
This change allows the InputManager to keep track of what input
devices are registered with the system and when they change.
It needs to do this so that it can properly clear its cache of
input device properties (especially the key map!) when changes
occur.

Added new API so that applications can register listeners for
input device changes.

Fixed a minor bug in EventHub where it didn't handle EPOLLHUP
properly so it would spam the log about unsupposed epoll events
until inotify noticed that the device was gone and removed it.

Change-Id: I937d8c601f7185d4299038bce6a2934fe4fdd2b3
2012-04-12 18:54:54 -07:00
Daniel Sandler
7d276c377c New Android Dreams architecture, disabled for now.
Rather than normal Activities (which have a host of problems
when used for this purpose), screen savers are now a
special kind of Service that can add views to its own
special window (TYPE_DREAM, in the SCREENSAVER layer).

Dreams are now launched by the power manager; whenever it is
about to turn the screen off, it asks the window manager if
it wants to run a screen saver instead. (http://b/5677408)

Also, the new config_enableDreams bool allows the entire
feature to be switched on or off in one place. It is
currently switched off (and the APIs are all @hidden).

Change-Id: Idfe9d430568471d15f4b463cb70586a899a331f7
2012-04-09 15:33:26 -04:00
Jeff Sharkey
b52e3e5509 INetworkStatsSession with lifecycle for caching.
Users outside system_server now explicitly communicate their
lifecycle, which keeps a strong-reference chain to any fully loaded
NetworkStatsCollection histories.

Bug: 6236498
Change-Id: I8e22739b6e89a626b676967a736d7117fd000778
2012-04-06 13:38:29 -07:00
Jeff Brown
e9bdb31ea1 Merge "Refactor input system into its own service." 2012-04-05 15:30:10 -07:00
Jeff Brown
4532e61584 Refactor input system into its own service.
Extracted the input system from the window manager service into
a new input manager service.  This will make it easier to
offer new input-related features to applications.

Cleaned up the input manager service JNI layer somewhat to get rid
of all of the unnecessary checks for whether the input manager
had been initialized.  Simplified the callback layer as well.

Change-Id: I3175d01307aed1420780d3c093d2694b41edf66e
2012-04-05 14:42:11 -07:00
Amith Yamasani
52c489cd63 Lockscreen settings per user
Move all lockscreen related settings to LockSettingsService.
LockPatternUtils uses this through IPC instead of Secure settings.
Migrate old settings to new database managed by LockSettingsService.
Passwords and patterns are stored in a new per-user location, except
 for the primary user, for backward compatibility.
KeyguardViewMediator and LockPatternKeyguardView listen for changes
to user and updates the lockscreen.

Settings provider will look for Lock settings in the LockSettings
service now for the entries that used to be stored in Settings.

Change-Id: I956cd5b95e2d9d45a6401af7e270e6a5aa2dcc98
2012-04-05 14:03:36 -07:00
Irfan Sheriff
7d024d3724 Add initial framework for DNS service discovery
Change-Id: I53c0b7ebfd75e520ebb7553612f1aa8413b6b79b
2012-04-04 12:24:56 -07:00
Tony Chan
dc4226a524 am af71f328: am 2963ae34: am 4ddfaeb5: Merge "sdk doc change: Added KeyChain API Demo" into ics-mr1
* commit 'af71f328e6b03cc6b7111b87b625c3f9cb3987e4':
  sdk doc change: Added KeyChain API Demo
2012-03-31 02:20:37 -07:00
Tony Chan
c95a74d301 sdk doc change: Added KeyChain API Demo
Change-Id: I8ea879bf30f933c745e33dafa6591fce77251eb6
2012-03-30 11:13:43 +08:00
Marius Renn
65953da463 Multi-Project Commit: Move of filterfw out of system/media (2 of 7)
This is part of the multi-project commit to move the filter-framework
from system/media/mca to frameworks/base/media/mca.

Note that the filter-framework will soon be replaced with a refactored
version currently under API review (also to go under frameworks/base).
This move is done now to unblock the PDK efforts.

Change-Id: I9f42be5a12a9e8157512be11f04e38e4548970be
2012-03-27 10:44:45 -07:00
Christopher Tate
8662cab5c6 Merge: Introduce UpdateLocks
An "UpdateLock" works similarly to a wake lock in API: the caller is
providing a hint to the OS that now is not a good time to interrupt
the user/device in order to do intrusive work like applying OTAs.
This is particularly important for headless or kiosk-like products
where ordinarily the update process will be automatically scheduled
and proceed without user or administrator intervention.

UpdateLocks require that the caller hold the new signatureOrSystem
permission android.permission.UPDATE_LOCK.  acquire() and release()
will throw security exceptions if this is not the case.

The "is now convenient?" state is expressed to interested parties
by way of a sticky broadcast sent only to registered listeners.  The
broadcast is protected; only the system can send it, so listeners
can trust it to be accurate.  The broadcast intent also includes a
timestamp (System.currentTimeMillis()) to help inform listeners that
wish to implement scheduling policies based on when the device became
idle.

The API change here is a tiny one: a dump(PrintWriter) method has been
added to the TokenWatcher class to facilitate getting information out
of it for dumpsys purposes.  UpdateLock itself is still @hide.

Bug 5543442

Change-Id: I3709c831fc1883d7cb753cd2d3ee8e10a61e7e48
2012-02-29 14:05:24 -08:00
Mike Lockwood
1e11c6519a Merge "New Serial Manager API:" 2012-02-10 11:41:41 -08:00
Dianne Hackborn
21fbd1f7da Some cruft removal.
Change-Id: If4a94bfd4a033748eb13e8f3ff25e24382746778
2012-02-10 10:54:15 -08:00
Mike Lockwood
b01e8bf57b New Serial Manager API:
SerialManager: provides access to serial ports
SerialPort: for reading and writing data to and from serial ports

IO with both array based and direct ByteBuffers is supported.

Accessing serial ports requires android.permission.SERIAL_PORT permission

Each platform must configure list of supported serial ports in the
config_serialPorts resource overlay
(this is needed to prevent apps from accidentally accessing the bluetooth
or other system UARTs).

In addition, the platform uevent.rc file must set the owner to the
/dev/tty* files to "system" so the framework can access the port.

Signed-off-by: Mike Lockwood <lockwood@android.com>
2012-02-10 10:51:19 -08:00
Jeff Brown
4c1241df8f Rename CancellationSignal using preferred spelling.
Bug: 5943637
Change-Id: I12a339f285f4db58e79acb5fd8ec2fc1acda5265
2012-02-02 18:02:16 -08:00
Jeff Brown
2d2d7d6f42 Merge "Implement a cancelation mechanism for queries." 2012-01-27 17:37:24 -08:00
Jeff Brown
75ea64fc54 Implement a cancelation mechanism for queries.
Added new API to enable cancelation of SQLite and content provider
queries by means of a CancelationSignal object.  The application
creates a CancelationSignal object and passes it as an argument
to the query.  The cancelation signal can then be used to cancel
the query while it is executing.

If the cancelation signal is raised before the query is executed,
then it is immediately terminated.

Change-Id: If2c76e9a7e56ea5e98768b6d4f225f0a1ca61c61
2012-01-27 17:33:21 -08:00
Nick Pelly
c97a552023 Improve NDEF API's
o Add NdefRecord.toMimeType()
  Maps the record to a MIME type
o Add NdefRecord.toUri()
  Maps the record to a URI
o Add hidden NfcAdapter.dispatch()
  Helps test the dispatch path.
o Modify createMime(), createUri() and createExternal():
  Do not try and strictly follow RFC requirements for URI or MIME content
  types. This just leads to heartbreak - the RFC requirements are too strict.
  For example RFC1341 forbids the use of '.' in a MIME type, however this is in
  common use in types such as "application/vnd.companyname". I think the best
  approach is to only remove 'obvious' whitespace issues, and to convert
  uppercase to lowercase as per Android guidelines.

Change-Id: Id686f5f3b05b2dceafad48e1cfcbdb2b3890b854
2012-01-25 13:17:19 -08:00
Scott Main
481cd5a893 am 3d672e1e: Android U Class: Monetization / Ads without Compromising User Experience
* commit '3d672e1e789e171e913605945efe95a477ab0505':
  Android U Class: Monetization / Ads without Compromising User Experience
2011-12-15 11:08:51 -08:00
Scott Main
3d672e1e78 Android U Class: Monetization / Ads without Compromising User Experience
Change-Id: I1aaddc6bbbc9fc2b53119893f2b70260f1b0d9a7
2011-12-15 10:44:11 -08:00
Scott Main
cf927f229f am aed4ced6: Android U Class: Developing Android Applications for the Enterprise. This class uses a sample app.
* commit 'aed4ced6556383483209f454c9e4872e8ad28ebf':
  Android U Class: Developing Android Applications for the Enterprise. This class uses a sample app.
2011-12-15 10:41:18 -08:00
Scott Main
aed4ced655 Android U Class: Developing Android Applications for the Enterprise.
This class uses a sample app.

Change-Id: I508edbb98c8e9dea1d3ea26c8dcd9da213330d87
2011-12-15 10:38:32 -08:00
Dirk Dougherty
9a6b4245c9 Doc change: add MR1 API summary and updated highlights.
Change-Id: I9a9b13b9c7b8ae3011772a62735c788762b45f7f
2011-12-14 17:17:09 -08:00
Scott Main
37191e1dc7 am 801fda54: AndroidU lesson on designing for multiple screens.
* commit '801fda548c719a8618e7f4cd64cad8404b0970b9':
  AndroidU lesson on designing for multiple screens.
2011-12-13 13:10:42 -08:00
Scott Main
801fda548c AndroidU lesson on designing for multiple screens.
This change adds the text for the AndroidU lesson "Designing for Multiple
Screens", which shows how to write applications that adapt properly
to screen size, density and orientation for maximum compatibility.
Update makefile and resources-data.js for rendering source in HTML
Add ZIP file for sample

Change-Id: I671bb3063d5bf02681bc547ffe5262a9df22037a
2011-12-12 17:13:31 -08:00
Chia-chi Yeh
25bcbbb597 am 431c3e4c: Merge "Documentation for the VPN sample for ICS SDK. Staging server: http://fredchung.i:9999/resources/samples/ToyVpn/index.html" into ics-mr0
* commit '431c3e4c7e2103865a90501a552b4e5145ed3f35':
  Documentation for the VPN sample for ICS SDK. Staging server: http://fredchung.i:9999/resources/samples/ToyVpn/index.html
2011-12-02 12:46:51 -08:00
Fred Chung
8e076fe774 Documentation for the VPN sample for ICS SDK.
Staging server: http://fredchung.i:9999/resources/samples/ToyVpn/index.html

Change-Id: I35a17374fc0d9d165cedc9d6e1052eaec0028ace
2011-11-28 16:44:13 -08:00
Svetoslav Ganov
92f12f5e40 Add the support libraries to the platform documentation (build).
Updated the make file to generate documentation for the support libs.

bug:5629339

Change-Id: I44222f78d002660ad52610083421e4b840ceb541
2011-11-17 15:56:13 -08:00
Fred Chung
6cf8f73586 Adding missed Android.mk file to the original Bluetooth HDP sample Change-Id: I7035cb13da6f6cd64e63df8a5ccf2391fe41f18e.
Change-Id: I23f7d4ece831ea449ecfc848dbb5733021107350
2011-11-16 15:28:35 -08:00
Fred Chung
2d410df1c7 DO NOT MERGE: Bluetooth HDP sample.
Cherry pick from ics-mr1 Change ID I7035cb13da6f6cd64e63df8a5ccf2391fe41f18e

Change-Id: I6f9bd5fec6e841395b9fc85d419510c81bfb620c
2011-11-16 15:24:08 -08:00
Svetoslav Ganov
aeb11b5988 Merge "Folding Accessibility Service sample into ApiDemos." into ics-mr0 2011-10-31 13:28:57 -07:00
Svetoslav Ganov
a840462feb Folding Accessibility Service sample into ApiDemos.
1. Moving Accerssibility Service sample into ApiDemos since
   we are putting all accessibility samples there.

Change-Id: If2deec7f6ad49b0d50112300eda0f7cb48660450
2011-10-28 19:16:24 -07:00
Scott Main
2323e9bcdc docs: fix spell checker client location
Change-Id: Ic94eab2720cd96b1130869d2071c635b4acb27f5
2011-10-28 15:55:39 -07:00
satok
182e4ae2f4 Add a path to HelloSpellChecker sample application for SDK build
Change-Id: I77e334f8e2b50b8609b1729edb253254d6b7360b
2011-10-28 02:27:53 +09:00
satok
44619d3e08 Update links for SampleSpellCheckerService for I938ba499
Change-Id: I528fc5ee5f9971ecb3bf47ef1c8b999546724c1f
2011-10-19 23:52:03 +09:00
Scott Main
3087b94f7b fix android beam demo path
Change-Id: I16a467155feac54fb14b1b7af034a3854efe1fb7
2011-10-14 14:29:14 -07:00
Scott Main
49eb519696 change android beam sample name
Change-Id: Ic3c1d6d75d06a4de55824e69fa9d4d9564bfdb95
2011-10-14 01:24:57 -07:00
Anirudh Dewani
5d0dbea9e9 Docs changes for WiFiDirect sample
Change-Id: Icfe3cc12c451563792745fc4c326d064cac978c3
2011-10-06 12:53:47 +05:30
Roman Nurik
f4b2ba1894 Add ActionBarCompat sample (CL 2 of 2)
Change-Id: Ie64eaad0c5cd148288ee48c524ff3516522fc10f
2011-10-05 15:59:23 -07:00
Scott Main
2950b1b234 add spell checker sample to build
Change-Id: Id03246e140ee6676810fcefebff0ba73115987ec
2011-10-05 13:08:18 -07:00