summaryrefslogtreecommitdiffstats
path: root/Android.mk
Commit message (Collapse)AuthorAgeFilesLines
* Pie controls: Introducing a pie delivery serviceJens Doll2013-05-151-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | To make pie controls more reliable, it is neccessary to detect trigger actions directly from the input stream. This commit introduces a new system service, that filters all input events in front of the input dispatcher to detect pie activations. This commit introduces: * A new system server local API in the input manager service to register secondary input filters. These filters are behind the default accessibility filter but before the input event dispatching of the android framework. * A new system service, that binds to the new API to listen for pie activation gestures. * A non-public manager class providing access to the newly created pie service. The service manager name of the service is "pieservice". The non-public AIDL interface of the service is IPieService.aidl. To register a new pie activation listener the INJECT_INPUT permission is needed. The service state can be dumped by the "dumpsys pieservice" command. Note: This commit only introduces the pie service. There is another commit, that binds the actual pie controls to the pie service. Patch Set #1: * The pie service is currently disabled by default and needs to be enabled by device overlays (see config.xml / config_allowPieService). Patch Set #2: * Activation fixes * Debug dump improvements Patch Set #4: * Added systrace support (TRACE_INPUT_TAG) * Switch default to enable service on all devices. * Moved Position to com.internal.android.utils.pie.* * Some more code rearrangements Patch Set #5: * Rebase Patch Set #6: * Cover more corner cases on PieInputFilter * Adjust gesture time out Patch Set #7: * Do not send events that are from the past * Recycle all events Patch Set #8: * Handle binder died events in PieService correctly Patch Set #10: * Simplified locking * SYSTEM_UI_FLAG_HIDE_NAVIGATION support * Fixed ADW Lauchner bug Change-Id: I6a4a4635bed420e800a3230457ee690131116a11
* Correct executable bit for source filesKenny Root2013-04-131-0/+0
| | | | | | | | | | Many media files and source code files were marked as executable in Git. Remove those. Also a shell script and python script were not marked as executable. Change-Id: Ieb51bafb46c895a21d2e83696f5a901ba752b2c5 Signed-off-by: Chirayu Desai <cdesai@cyanogenmod.org>
* Revert "makefile changes for gcm javadocs"Chirayu Desai2013-03-241-27/+0
| | | | | | | | We don't build it, nor do we have these sources. This reverts commit 5f9922d7c3bce158e4c7a58929d4075e7c91e32e. Change-Id: I877e617f90de1b832e26c98adbafc6238b98882f
* Merge commit 'android-4.2.2_r1' into mr1.1-stagingRicardo Cerqueira2013-02-151-3/+61
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: core/java/android/os/Trace.java core/java/android/widget/Toast.java core/res/res/values-cs/strings.xml core/res/res/values-el/strings.xml core/res/res/values-iw/strings.xml core/res/res/values/config.xml core/res/res/values/symbols.xml media/java/android/media/AudioService.java packages/SystemUI/res/values-sv/strings.xml packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java packages/SystemUI/src/com/android/systemui/statusbar/policy/BatteryController.java packages/SystemUI/src/com/android/systemui/usb/StorageNotification.java policy/src/com/android/internal/policy/impl/keyguard/KeyguardHostView.java policy/src/com/android/internal/policy/impl/keyguard/KeyguardMessageArea.java policy/src/com/android/internal/policy/impl/keyguard/KeyguardViewManager.java policy/src/com/android/internal/policy/impl/keyguard/KeyguardViewMediator.java services/java/com/android/server/NotificationManagerService.java services/java/com/android/server/power/ElectronBeam.java Change-Id: I60b8ddf20a1d7bcf9dc7b1a4ed841aaa4d953294
| * am e60b6023: Merge "makefile changes for gcm javadocs" into jb-mr1-devRobert Ly2013-02-071-0/+27
| |\ | | | | | | | | | | | | | | | # Via Android (Google) Code Review (1) and Robert Ly (1) * commit 'e60b6023ae4fdea932d0effc553dddc38117d235': makefile changes for gcm javadocs
| | * makefile changes for gcm javadocsRobert Ly2013-02-071-0/+27
| | | | | | | | | | | | Change-Id: I5653eb710f13f0a097cb1cf447469c4da7342fe2
| * | am 2aa47b33: Merge "Doc change: remove htmlified samples from docs build for ↵Dirk Dougherty2013-02-011-1/+2
| |\ \ | | |/ | | | | | | | | | | | | | | | | | | now. Samples are still downloadable thorugh SDK Manager." into jb-mr1-dev # Via Android (Google) Code Review (1) and Dirk Dougherty (1) * commit '2aa47b336227a5d2bd1ee91f8fb4bd84be7e97f0': Doc change: remove htmlified samples from docs build for now. Samples are still downloadable thorugh SDK Manager.
| | * Merge "Doc change: remove htmlified samples from docs build for now. Samples ↵Dirk Dougherty2013-01-291-1/+2
| | |\ | | | | | | | | | | | | are still downloadable thorugh SDK Manager." into jb-mr1-dev
| | | * Doc change: remove htmlified samples from docs build for now. Samples are ↵Dirk Dougherty2013-01-291-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | still downloadable thorugh SDK Manager. Change-Id: I9cfa53e605f476daf6cf914f256df600e1d77f89
| * | | am 4b7161cb: docs: switch devsite doc build to use templates-sdkScott Main2013-02-011-1/+1
| |\ \ \ | | |/ / | | | | | | | | | | | | | | | | # Via Scott Main * commit '4b7161cbd44f64537d2c661e87868ea2689dd126': docs: switch devsite doc build to use templates-sdk
| | * | docs: switch devsite doc build to use templates-sdkScott Main2013-01-291-1/+1
| | |/ | | | | | | | | | Change-Id: I933cbafa0712de47b4bcf72d2a7c4f99bf18f930
| * | am e75cd4bf: docs: add hdf bool for deviste, used to change aspects of the ↵Scott Main2013-02-011-1/+2
| |\ \ | | |/ | | | | | | | | | | | | | | | | | | templates # Via Scott Main * commit 'e75cd4bfd176fbb1483ec5e17edfbd993adce40f': docs: add hdf bool for deviste, used to change aspects of the templates
| | * docs: add hdf bool for deviste, used to change aspects of the templatesScott Main2013-01-291-1/+2
| | | | | | | | | | | | Change-Id: I6ad24252f10211a88d1f98e356bc9da97442f91c
| * | am 7b32d32b: Merge "Add build rule for ds (devsite) online docs." into ↵Dirk Dougherty2013-02-011-1/+31
| |\ \ | | |/ | | | | | | | | | | | | | | | | | | jb-mr1-dev # Via Android (Google) Code Review (1) and Dirk Dougherty (1) * commit '7b32d32bd38b423dd141e7ead89205b9b7929497': Add build rule for ds (devsite) online docs.
| | * Add build rule for ds (devsite) online docs.Dirk Dougherty2013-01-281-1/+31
| | | | | | | | | | | | Change-Id: I4f1d099995402613f58401a506ba272abfb563ba
| * | Remove unused IExtendedNetworkServiceMakoto Onuki2012-11-291-1/+0
| |/ | | | | | | | | | | | | | | It was used in the cupcake era for docomo. Is not used anymore. Bug 7633569 Change-Id: I2ec826fc9a70d261a340957a937ed4c9f8e67c5c
* | FM Radio: Add support for FM Radio in AndroidAnurag Gupta2013-02-091-5/+16
| | | | | | | | | | | | | | | | | | | | | | Creating interface and framework for using FM Radio RX and TX from different vendors. Signed-off-by: Christian Bejram <christian.bejram@stericsson.com> Change-Id: I1a71aed01bfffdddfabf1cdfbfa3707cb1ed016b Conflicts: core/java/android/app/ContextImpl.java
* | Squashed commit of the theme engine support.Ricardo Cerqueira2012-11-241-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Updated 4.2 support for the old T-Mobile theme engine, as usual needs the provider and switcher apps installed as well. I'm finally dropping the 400+ commit history on this, since everybody else keeps picking it up from CM as a single patch anyway... But for the record, nothing of this would be possible without Josh, Ed, and the rest of the TMo guys who wrote and maintained it until 2.2: amit chabra <amit.chabra@t-mobile.com> Amit Kohli <amit.kohli@t-mobile.com> Chris Cogar <chriscogar@t-mobile.com> Dirk Sigurdson <dirk.sigurdson@t-mobile.com> Ed Carrigan <edward.carrigan@t-mobile.com> Gaurav Sharma <gaurav.sharma3@t-mobile.com> Hui Feng <hui.feng@t-mobile.com> John Ritz <john.ritz1@t-mobile.com> Josh Guilfoyle <josh.guilfoyle@t-mobile.com> Mark Roberts <mark.roberts48@t-mobile.com> Pankaj Kumar <Pankaj.kumar6@t-mobile.com> Samuel Cheung <samuel.cheung@t-mobile.com> Sergey Ten <sergey.ten6@t-mobile.com> Change-Id: I7148d51be48f28a2dc4bdf9ec9018f04b268ffc4
* | Framework: Port CM9 features to CM10DvTonder2012-11-211-0/+3
|/ | | | | | | | | | | | | | | This commit includes: - Power menu Reboot - Power menu screenshot - Profiles - Lock screen Calendar - Lock screen Weather - Notification light customization - Battery light customization - IME Selector notification toggle - and a few more things to support Settings Change-Id: Ibd63116df90b06f6ce6adb8a0343059bbb999bfb
* add api level 17 to javadoc filter and update version numberScott Main2012-09-281-1/+2
| | | | Change-Id: I278f796b3390e57f4309f215e4f37359a80f0e83
* More multi-user stuff.Dianne Hackborn2012-09-151-0/+1
| | | | | | | | | | | | | | | | | | | | - 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
* Screen magnification - feature - framework.Svetoslav Ganov2012-09-061-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This change is the initial check in of the screen magnification feature. This feature enables magnification of the screen via global gestures (assuming it has been enabled from settings) to allow a low vision user to efficiently use an Android device. Interaction model: 1. Triple tap toggles permanent screen magnification which is magnifying the area around the location of the triple tap. One can think of the location of the triple tap as the center of the magnified viewport. For example, a triple tap when not magnified would magnify the screen and leave it in a magnified state. A triple tapping when magnified would clear magnification and leave the screen in a not magnified state. 2. Triple tap and hold would magnify the screen if not magnified and enable viewport dragging mode until the finger goes up. One can think of this mode as a way to move the magnified viewport since the area around the moving finger will be magnified to fit the screen. For example, if the screen was not magnified and the user triple taps and holds the screen would magnify and the viewport will follow the user's finger. When the finger goes up the screen will clear zoom out. If the same user interaction is performed when the screen is magnified, the viewport movement will be the same but when the finger goes up the screen will stay magnified. In other words, the initial magnified state is sticky. 3. Pinching with any number of additional fingers when viewport dragging is enabled, i.e. the user triple tapped and holds, would adjust the magnification scale which will become the current default magnification scale. The next time the user magnifies the same magnification scale would be used. 4. When in a permanent magnified state the user can use two or more fingers to pan the viewport. Note that in this mode the content is panned as opposed to the viewport dragging mode in which the viewport is moved. 5. When in a permanent magnified state the user can use three or more fingers to change the magnification scale which will become the current default magnification scale. The next time the user magnifies the same magnification scale would be used. 6. The magnification scale will be persisted in settings and in the cloud. Note: Since two fingers are used to pan the content in a permanently magnified state no other two finger gestures in touch exploration or applications will work unless the uses zooms out to normal state where all gestures works as expected. This is an intentional tradeoff to allow efficient panning since in a permanently magnified state this would be the dominant action to be performed. Design: 1. The window manager exposes APIs for setting accessibility transformation which is a scale and offsets for X and Y axis. The window manager queries the window policy for which windows will not be magnified. For example, the IME windows and the navigation bar are not magnified including windows that are attached to them. 2. The accessibility features such a screen magnification and touch exploration are now impemented as a sequence of transformations on the event stream. The accessibility manager service may request each of these features or both. The behavior of the features is not changed based on the fact that another one is enabled. 3. The screen magnifier keeps a viewport of the content that is magnified which is surrounded by a glow in a magnified state. Interactions outside of the viewport are delegated directly to the application without interpretation. For example, a triple tap on the letter 'a' of the IME would type three letters instead of toggling magnified state. The viewport is updated on screen rotation and on window transitions. For example, when the IME pops up the viewport shrinks. 4. The glow around the viewport is implemented as a special type of window that does not take input focus, cannot be touched, is laid out in the screen coordiates with width and height matching these of the screen. When the magnified region changes the root view of the window draws the hightlight but the size of the window does not change - unless a rotation happens. All changes in the viewport size or showing or hiding it are animated. 5. The viewport is encapsulated in a class that knows how to show, hide, and resize the viewport - potentially animating that. This class uses the new animation framework for animations. 6. The magnification is handled by a magnification controller that keeps track of the current trnasformation to be applied to the screen content and the desired such. If these two are not the same it is responsibility of the magnification controller to reconcile them by potentially animating the transition from one to the other. 7. A dipslay content observer wathces for winodw transitions, screen rotations, and when a rectange on the screen has been reqeusted. This class is responsible for handling interesting state changes such as changing the viewport bounds on IME pop up or screen rotation, panning the content to make a requested rectangle visible on the screen, etc. 8. To implement viewport updates the window manger was updated with APIs to watch for window transitions and when a rectangle has been requested on the screen. These APIs are protected by a signature level permission. Also a parcelable and poolable window info class has been added with APIs for getting the window info given the window token. This enables getting some useful information about a window. There APIs are also signature protected. bug:6795382 Change-Id: Iec93da8bf6376beebbd4f5167ab7723dc7d9bd00
* Merge "Start implementing concept of "running" users." into jb-mr1-devDianne Hackborn2012-08-291-0/+1
|\
| * Start implementing concept of "running" users.Dianne Hackborn2012-08-281-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | Add initial multi-display support.Jeff Brown2012-08-291-0/+1
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Split the DisplayManager into two parts. One part is bound to a Context and takes care of Display compatibility and caching Display objects on behalf of the Context. The other part is global and takes care of communicating with the DisplayManagerService, handling callbacks, and caching DisplayInfo objects on behalf of the process. Implemented support for enumerating Displays and getting callbacks when displays are added, removed or changed. Elaborated the roles of DisplayManagerService, DisplayAdapter, and DisplayDevice. We now support having multiple display adapters registered, each of which can register multiple display devices and configure them dynamically. Added an OverlayDisplayAdapter which is used to simulate secondary displays by means of overlay windows. Different configurations of overlays can be selected using a new setting in the Developer Settings panel. The overlays can be repositioned and resized by the user for convenience. At the moment, all displays are mirrors of display 0 and no display transformations are applied. This will be improved in future patches. Refactored the way that the window manager creates its threads. The OverlayDisplayAdapter needs to be able to use hardware acceleration so it must share the same UI thread as the Keyguard and window manager policy. We now handle this explicitly as part of starting up the system server. This puts us in a better position to consider how we might want to share (or not share) Loopers among components. Overlay displays are disabled when in safe mode or in only-core mode to reduce the number of dependencies started in these modes. Change-Id: Ic2a661d5448dde01b095ab150697cb6791d69bb5
* Remove obsolete variables.Ying Wang2012-08-211-6/+0
| | | | | | | Bug: 6987838 Now emma is only enabled for apks. Change-Id: Id8d198467076a8dff705195a8e051f3fb00d5660
* User Manager service to manage users and query user detailsAmith Yamasani2012-08-111-0/+1
| | | | | | | | | | Moved a bunch of methods from PackageManager to UserManager. Fix launching of activities from recents to correct user. Guest creation APIs Change-Id: I0733405e6eb2829675665e225c759d6baa2b708f
* Location overhaul, major commit.Nick Pelly2012-08-101-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Themes: Fused Location, Geofencing, LocationRequest. API changes o Fused location is always returned when asking for location by Criteria. o Fused location is never returned as a LocationProvider object, nor returned as a provider String. This wouldn't make sense because the current API design assumes that LocationProvider's have fixed properties (accuracy, power etc). o The fused location engine will tune itself based on the criteria passed by applications. o Deprecate LocationProvider. Apps should use fused location (via Criteria class), instead of enumerating through LocationProvider objects. It is also over-engineered: designed for a world with a plethora of location providers that never materialized. o The Criteria class is also over-engineered, with many methods that aren't currently used, but for now we won't deprecate them since they may have value in the future. It is now used to tune the fused location engine. o Deprecate getBestProvider() and getProvider(). o Add getLastKnownLocation(Criteria), so we can return last known fused locations. o Apps with only ACCESS_COARSE_LOCATION _can_ now use the GPS, but the location they receive will be fudged to a 1km radius. They can also use NETWORK and fused locatoins, which are fudged in the same way if necessary. o Totally deprecate Criteria, in favor of LocationRequest. Criteria was designed to map QOS to a location provider. What we really need is to map QOS to _locations_. The death knell was the conflicting ACCURACY_ constants on Criteria, with values 1, 2, 3, 1, 2. Yes not a typo. o Totally deprecate LocationProvider. o Deprecate test/mock provider support. They require a named provider, which is a concept we are moving away from. We do not yet have a replacement, but I think its ok to deprecate since you also need to have 'allow mock locations' checked in developer settings. They will continue to work. o Deprecate event codes associated with provider status. The fused provider is _always_ available. o Introduce Geofence data object to provide an easier path fowards for polygons etc. Implementation changes o Fused implementation: incoming (GPS and NLP) location fixes are given a weight, that exponentially decays with respect to age and accuracy. The half-life of age is ~60 seconds, and the half-life of accuracy is ~20 meters. The fixes are weighted and combined to output a fused location. o Move Fused Location impl into frameworks/base/packages/FusedLocation o Refactor Fused Location behind the IProvider AIDL interface. This allow us to distribute newer versions of Fused Location in a new APK, at run-time. o Introduce ServiceWatcher.java, to refactor code used for run-time upgrades of Fused Location, and the NLP. o Fused Location is by default run in the system server (but can be moved to any process or pacakge, even at run-time). o Plumb the Criteria requirements through to the Fused Location provider via ILocation.sendExtraCommand(). I re-used this interface to avoid modifying the ILocation interface, which would have broken run-time upgradability of the NLP. o Switch the geofence manager to using fused location. o Clean up 'adb shell dumpsys location' output. o Introduce config_locationProviderPackageNames and config_overlay_locationProviderPackageNames to configure the default and overlay package names for Geocoder, NLP and FLP. o Lots of misc cleanup. o Improve location fudging. Apply random vector then quantize. o Hide internal POJO's from clients of com.android.location.provider.jar (NLP and FLP). Introduce wrappers ProviderRequestUnbundled and ProviderPropertiesUnbundled. o Introduce ProviderProperties to collapse all the provider accuracy/ bearing/altitude/power plumbing (that is deprecated anyway). o DELETE lots of code: DummyLocationProvider, o Rename the (internal) LocationProvider to LocationProviderBase. o Plumb pid, uid and packageName throughout LocationManagerService#Receiver to support future features. TODO: The FLP and Geofencer have a lot of room to be more intelligent TODO: Documentation TODO: test test test Change-Id: Iacefd2f176ed40ce1e23b090a164792aa8819c55
* Add display manager skeleton.Jeff Brown2012-07-251-0/+1
| | | | | | | | | | | | | The purpose of this change is to remove direct reliance on SurfaceFlinger for describing the size and characteristics of displays. This patch also starts to make a distinction between logical displays and physical display devices. Currently, the window manager owns the concept of a logical display whereas the new display manager owns the concept of a physical display device. Change-Id: I7e0761f83f033be6c06fd1041280c21500bcabc0
* Non persistent adapter servicefredc2012-07-161-0/+3
| | | | | | | | | | | | | | | | | | 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
* Initial Health Profile implementationMatthew Xie2012-07-161-0/+1
| | | | Change-Id: I22f35073ceb131d84df6b233d1b63d20fa1b4451
* Initial implementation of HID, add IBluetoothInputDevice idlMatthew Xie2012-07-161-0/+1
| | | | Change-Id: Iadc79a425b4b6e12329d86dd2ac0782adcb0174d
* Framework changes for HFP and A2DP profile implementation of the new stack.Matthew Xie2012-07-161-0/+1
| | | | | | | Add IBluetoothHeadsetPhone.aidl for a small service in Phone to get phone state changes Change-Id: I1015e4a69720c4e9cd18ae4236ccd0dbff2e1b2c
* Removing a workaround for incorrect window position on window move.Svetoslav Ganov2012-07-161-0/+2
| | | | | | | | | | | | | | | | | | | | | | 1. The window manager was not notifying a window when the latter has been moved. This was causing incorrect coordinates of the nodes reported to accessibility services. To workaround that we have carried the correct window location when making a call from the accessibility layer into a window. Now the window manager notifies the window when it is moved and the workaround is no longer needed. This change takes it out. 2. The left and right in the attach info were not updated properly after a report that the window has moved. 3. The accessibility manager service was calling directly methods on the window manager service without going through the interface of the latter. This leads to unnecessary coupling and in the long rung increases system complexity and reduces maintability. bug:6623031 Change-Id: Iacb734b1bf337a47fad02c827ece45bb2f53a79d
* Create telephony-common and mms-commonWink Saville2012-07-111-5/+6
| | | | | | | | | | | | | | | | | These have been created to reduce the size and complexity of frameworks/base. mms-common was created by moving all of frameworks/base/core/java/com/google/android/mms to: frameworks/opt/mms telephony-common was created by moving some of frameworks/base/telephony to: frameworks/opt/telephony Change-Id: If6cb3c6ff952767fc10210f923dc0e4b343cd4ad
* update make file with 'since' tag for api level 16, update version numberScott Main2012-06-211-1/+2
| | | | Change-Id: I30d04dcde5cd505959d94c274634018b3602cb26
* Remote volume handling in MediaRouterJean-Michel Trivi2012-06-191-1/+2
| | | | | | | | | | | | | | | 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
* Add new callback for MediaRouter to found out about device changes.Dianne Hackborn2012-06-151-0/+1
| | | | | | | | | | | 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
* Removing default accessibility gesture handling.Svetoslav Ganov2012-05-131-1/+0
| | | | | | | | | | | | | | | 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
* Move CancellationSignal to android.os package.Jeff Brown2012-05-071-1/+1
| | | | | Bug: 6427830 Change-Id: I39451bb1e1d4a8d976ed1c671234f0c8c61658dd
* Migrate ringtone playback to SystemUI.Jeff Sharkey2012-04-271-0/+1
| | | | | | | | | | | | | 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
* Scheduling policy serviceGlenn Kasten2012-04-241-0/+1
| | | | Change-Id: I6178b96896ffbb3323210f93784a65d724a3e694
* Adding an opt-in mechanism for gesture detection in AccessibilityService.Svetoslav Ganov2012-04-191-0/+1
| | | | | | | | | | | | | 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
* Build junit API docs from external/junit.Brett Chabot2012-04-161-2/+6
| | | | | | Bug 5826326 Change-Id: I67d18cacf0c4e908ec41dbed483314ece8b72ceb
* Accessibility focus - frameworkSvetoslav Ganov2012-04-131-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Notify applications when input devices change.Jeff Brown2012-04-121-0/+1
| | | | | | | | | | | | | | | | | 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
* New Android Dreams architecture, disabled for now.Daniel Sandler2012-04-091-0/+2
| | | | | | | | | | | | | | | | | 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
* INetworkStatsSession with lifecycle for caching.Jeff Sharkey2012-04-061-0/+1
| | | | | | | | | 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
* Merge "Refactor input system into its own service."Jeff Brown2012-04-051-0/+1
|\
| * Refactor input system into its own service.Jeff Brown2012-04-051-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | 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