6332 Commits

Author SHA1 Message Date
Jeff Smith
a45746efad Fix several cases of broken droiddoc syntax
external issue 35214

patch contributed by Jeff Smith <whydoubt@yahoo.com>

Change-Id: I70dcee88a140699bf3e1ab369bed6dcd2fdd3d83
2012-07-25 10:49:25 -07:00
James Dong
5d478b9c10 Merge "Changed to obtain a parcel in each notify() call in jni." into jb-dev 2012-07-18 18:43:37 -07:00
Adam Powell
bcf21e913a Properly switch MediaRouter to wired audio over a2dp.
The system gives priority to physically connected
headphones/speakers/docks/etc. Reflect this in MediaRouter and
associated UI.

Bug 6777592

Change-Id: Ibabf3d7512207117e892c99f004443490c3d0612
2012-07-12 16:53:04 -07:00
Yu Shan Emily Lau
10366b9315 Merge "Remove the unnecssary intent call." into jb-dev 2012-07-10 16:47:09 -07:00
Yu Shan Emily Lau
e60393ae71 Remove the unnecssary intent call.
Change-Id: Ia0a460ca8532ccb2f4b0f0205d192b1ba907b5b6
2012-07-10 16:45:38 -07:00
Insun Kang
333c09945e Changed to obtain a parcel in each notify() call in jni.
Change-Id: I5faf0f5d1fdf76a5b4bd1cff37aa58df79d18e85
related-to-bug: 6785452
2012-07-10 22:23:01 +09:00
Scott Main
099fd80f98 docs: add throws notice for isPlaying
per external issue 33610

Change-Id: Ibd778cb4ecc5f1717fa007ac069a7b3660ec4794
2012-07-03 17:32:23 -07:00
Scott Main
f443c5ea2c Merge "Minor corrections to the javadoc overview to reflect late API changes." into jb-dev 2012-06-28 12:00:49 -07:00
Andreas Huber
2ac3f2e285 Minor corrections to the javadoc overview to reflect late API changes.
Change-Id: If64e7ea0fa9c892d728282e5e18547a4da115989
2012-06-27 11:46:21 -07:00
Mike Lockwood
7017d51e14 Merge "MtpDatabase: Fix sqlite3 pattern matching for MTP directory deletes" into jb-dev 2012-06-26 16:57:02 -07:00
Mike Lockwood
1e855d98aa MtpDatabase: Fix sqlite3 pattern matching for MTP directory deletes
Bug: 6684451

Change-Id: I90204550ccfcd1b7a5b1973bed2a88e934aae053
Signed-off-by: Mike Lockwood <lockwood@google.com>
2012-06-26 16:33:05 -07:00
Andreas Huber
68b1a6eed8 Document some of the more common mimetypes to be used when instantiating
MediaCodec components.

Change-Id: I810507d1d76a28666eb6fb63e3b597d38e5f1389
2012-06-25 14:38:16 -07:00
Adam Powell
dbbfa702a0 Fix MediaRouter bugs
Fix a bug where a newly added group had no supported types at the time
of callback dispatch, meaning that no registered callbacks would be
invoked.

Fix a bug where subscribed type flags were not updated properly when
re-adding a callback for new types.

Change-Id: I7d9f11b363ebdca692786cec1d432600946e5721
2012-06-24 14:32:04 -07:00
Adam Powell
f3b653a21c Update route count properly when MediaRouteButton detects
grouped/ungrouped events

Change-Id: I1b00678cc3b548f347c51c3fcbfce18ecc8fbabe
2012-06-22 19:22:38 -07:00
Adam Powell
f8ac14a7f5 MediaRouter group volume reporting
RouteGroups always report back the loudest volume of their component
routes. Maintain this through volume update requests (such as those
reported by volume hard keys) such that each route updates
individually, but the group slider always indicates the loudest value.

Change-Id: I5de4b9048bf55682b6271e9485fe50496a1c97c2
2012-06-20 23:59:14 -07:00
Adam Powell
09829b71de Merge "Expand volume APIs for MediaRouter" into jb-dev 2012-06-20 22:32:39 -07:00
Adam Powell
8e37a85bf3 Expand volume APIs for MediaRouter
Allow applications to set a requested volume level on RouteInfo
objects. If requested for a user route, the app-supplied callback will
be invoked to perform actual volume adjustment.

Change-Id: I856990a0da7292492aa15e6562dbc3d055b848a0
2012-06-20 22:19:29 -07:00
Pannag Sanketi
60c5b714dc Merge "Crash in SurfaceTextureTarget filter open" into jb-dev 2012-06-20 19:32:44 -07:00
Pannag Sanketi
22f2a8728e Crash in SurfaceTextureTarget filter open
If the filter graph in an app closes out, the SurfaceTextureTarget
filter was losing the reference to the original surfacetexture, and the
app would re-start the graph without setting the surfacetexture again,
thus leading to a crash in registering a surface from surfacetexture.

Typical scenarios is start/stop immediately in camera effects recording.

Fix part of b/6651352
Fix part of b/6655597

Change-Id: Ib2bae7e886784e91b3a886f7ccd439ff190feb22
2012-06-20 19:23:48 -07:00
Jean-Michel Trivi
2cd5d25378 Unhide new API in android.media.MediaRouter for remote playback
Expose new functionality for handling remote volume in:
 android.media.MediaRouter.RouteInfo
 android.media.MediaRouter.UserRouteInfo
 android.media.MediaRouter.VolumeCallback

Change-Id: I8fd9c92be606364599e65939f318e11c2860bab9
2012-06-20 14:36:23 -07:00
Jean-Michel Trivi
f98de1e8dd Asynchronous handling of remote volume updates
Remote playback information updates will be posted from the
 application thread, and sent to AudioService. Because they
 require locking the stack containing the remote playback
 information, the update should happen on AudioService's handler
 thread to avoid lock contention.

Change-Id: Ie04898295e08c16dd8ab5985fd825301e9cf1981
2012-06-20 13:40:22 -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
Jean-Michel Trivi
2f4423043f Merge "Remote volume handling" into jb-dev 2012-06-19 10:54:32 -07:00
Adam Powell
dd0a19266d MediaRouter bluetooth a2dp selection
Remove bluetooth permission check from internal AudioService method
setBluetoothA2dpOn

Manage BT A2DP state in MediaRouter. A2DP is only enabled or disabled
when either the system built-in audio route or the A2DP audio route is
selected; when selecting any other route the current state is left
alone.

Change-Id: Ib14274e206e79bd8762edca1205ecfa87b7a94cf
2012-06-18 19:51:02 -07:00
Jean-Michel Trivi
3114ce3861 Remote volume handling
Extend RemoteControlClient class to enable an applicaton to
 specify more information about how it's playing media, now covering
 usecases where media playback happens "remotely". This playback
 information can be used to set the volume and maximum volume
 used remotely.
Declare a new intent and associated extras in Intent,
 ACTION_VOLUME_UPDATE, so an application can be notified that
 the volume it handles should be updated. It can then use
 the new RemoteControlClient.setPlaybackInformation() method
 to notify AudioService what the volume is.
Extend AudioService to maintain playback information associated
 with the RemoteControlClient information in the stack of
 media button event receivers (mRCStack). The information
 about the active remote is cached so the stack doesn't have
 to be iterated over in order to retrieve remote playback info.
 Events to "adjust" the remote volume based on hardware key
 presses cause the client application to be notified of
 volume updates, and the volume panel to display the volume
 set by the app.
 Revise which stream type is controlled when none is specified
 according to latest guidelines for remote playback.
Update VolumePanel class to support a new pseudo stream type,
 AudioService.STREAM_REMOTE_MUSIC, that corresponds to the
 remote playback volume, and uses the new "media route" icon.
 Enable it to receive asynchronously new volume values for
 the remote that will be displayed if the UI is still up,
 and ignored otherwise.
 Now supports hiding/showing sliders dynamically so remote
 volume only appears when AudioService has a remote control
 client handling remote volume.
Define new java symbols for the two media route icons.
Modify lockscreen behavior: don't automatically control music
 volume when music is active, consider also remote playback.

Still to do:
- playback information set by RemoteControlClient should post
  a message for AudioService to update playback information
  instead of updating it synchronously

Change-Id: I557aa687239f9acfe33a609f05876c67fa7eb967
2012-06-18 18:37:17 -07:00
Adam Powell
4ee1f55ce0 Restrict MediaRouter selection
Actually restrict the programmatic selection of routes by
type. (Oops.)

Change-Id: I91e837f7ecbcddb626c664fb470e8296d563498d
2012-06-18 11:52:17 -07:00
Adam Powell
4599696591 Volume control in MediaRouter dialogs
MediaRouter dialogs now intercept the volume keys for altering the
current volume. The status icon indicates if the slider/buttons are
currently controlling the local device volume or a remote device's
volume.

Group volume for user routes is handled by using the
RemoteControlClient supplied by the first route in the group.

Change-Id: I40a0d054847ed5acce7a4c3b669487841b4dca15
2012-06-16 17:21:57 -07:00
Adam Powell
39d5c61725 Make MediaRouter UI more robust around route count changes
Improve the API around ActionProvider visibility overriding. Allow the
application to notify whatever is hosting the ActionProvider that
visibility has changed in a way that is friendly to alternate support
library-style reimplementations of MenuItem.

Allow MediaRouter.Callback implementations to add or remove themselves
or other Callbacks during dispatch of callback events.

Make MediaRouteActionProvider track the visibility of corresponding
menu items more accurately.

Change-Id: Ic7ddb6a87c3637904750d2661e4a9fa323b09ea0
2012-06-16 14:49:13 -07:00
Adam Powell
130b4572d1 ActionProvider API update
* Add ActionProvider#overridesItemVisibility and isVisible.
  These methods allow an ActionProvider to override the
  visibility of a MenuItem that it is bound to. If a MenuItem
  has been explicitly hidden by the application, it will not
  be visible.

* Change MediaRouteActionProvider to not require a MediaRouter
  callback, to avoid extra lifecycle management headaches.

Change-Id: I606fa98b3a6a3e60a953dd024274f9bf9c67acdd
2012-06-15 20:19:29 -07:00
Dianne Hackborn
87959cdd85 Merge "Add new callback for MediaRouter to found out about device changes." into jb-dev 2012-06-15 14:10:42 -07:00
Eric Laurent
c4f4b0f0a4 Merge "AudioManager: back to old setBluetoothA2dpOn()" into jb-dev 2012-06-15 14:01:49 -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
Eric Laurent
242b33870b AudioManager: back to old setBluetoothA2dpOn()
Come back to old versions of setBluetoothA2dpOn() and isBluetoothA2dpOn().

MediaRouter will call methods on IAudioService directly.

Change-Id: I18f0a3106bad78715ed11a6b7b4ec1d656cdae41
2012-06-15 11:48:50 -07:00
Adam Powell
b5e2af5919 Update MediaRouteChooserDialog grouping UI
Move UserRouteInfo tag support to RouteInfo

Change-Id: Ia753924f8613462d5f74736be93a8d748689eef1
2012-06-15 00:11:34 -07:00
Adam Powell
0d03c042f9 API updates for MediaRouter
* Accept a Context when fetching the names of routes and
  categories. This lets string resources resolve at time of access
  with the correct configuration. The older versions remain available
  that will use the static resources from the application. (There are
  enough cases where applications will populate this from external
  data that requiring it each time even when it was not initialized
  from a resource doesn't seem reasonable.)

* Remove the ability for apps to programmatically select non-user
  routes.

* Make MediaRouter.Callback an abstract class instead of an interface.
  This will make further extensions easier to keep compatible in the
  future.

Change-Id: If981c511dfbdfaf41ef0d1cfe4a377fc14bb5600
2012-06-14 16:16:31 -07:00
Adam Powell
f9b7f9f508 Merge "Support route grouping in the MediaRouter dialog UI." into jb-dev 2012-06-14 11:25:20 -07:00
Ruei-sung Lin
0a4cbc3267 Merge "Add property to override backdropper effect threshold." into jb-dev 2012-06-13 23:41:38 -07:00
Adam Powell
d6d0bddee3 Support route grouping in the MediaRouter dialog UI.
Change-Id: Idcae12cedfb7ca13950e7fa45441fba2029a9f68
2012-06-13 23:27:09 -07:00
Eino-Ville Talvala
4239373aed Add property to override backdropper effect threshold.
Also, change the default background mean to be the first incoming frame.

Bug: 6600585
Change-Id: I2181e75711d48d01f48e3fb1d604eb467f08fda4
2012-06-13 15:51:11 -07:00
Adam Powell
70e11e50ee MediaRouter dialog
Add the dialog behavior for MediaRouteActionProvider/MediaRouteButton.

Still TODO:

* Switch audio icon based on source; speaker/bt/user

* Rig up volume slider

* Rig up item icons

* Rig up group button for groupable categories

* Make grouping work

Change-Id: I3f992516b184d5ae940ddb7bbb7f94ff58914589
2012-06-13 11:42:10 -07:00
James Dong
085c482589 Merge "Add NOTICE and MODULE_LICENSE_APACH2 to libvideoeditor_jni.so" into jb-dev 2012-06-12 14:20:31 -07:00
James Dong
c6693f6fee Add NOTICE and MODULE_LICENSE_APACH2 to libvideoeditor_jni.so
Change-Id: Ibe37c2e6ede6143dc4e27c6072867bc58aa1c08a
related-to-bug: 6647465
2012-06-12 14:05:14 -07:00
Adam Powell
579ec3086c Merge "MediaRouter work" into jb-dev 2012-06-12 12:04:24 -07:00
Adam Powell
b35c445f34 MediaRouter work
Fix a bug where MediaRouter would crash on creation

Add click listener for app-supplied extended settings on the route
selection dialog.

Change-Id: I2991db1720b5c574148e250526984592f4dc3c44
2012-06-12 11:26:39 -07:00
Eric Laurent
dcf33b7315 Merge "Made IAudioService.setBluetoothA2dpOn() not oneway" into jb-dev 2012-06-12 11:10:33 -07:00
Adam Powell
71c69897ad Fix docs
Change-Id: If0215c02abf419d14f28574b751c9dfc2f27bcbe
2012-06-11 20:12:56 -07:00
Adam Powell
ae20ae1a8a More MediaRouter features.
Add RemoteControlClient to user routes. This will allow the UI layered
on top to access info about the remote volume channel associated with
a user route.

Add icons for user routes and route groups.

Change-Id: I438aa60fc8c93f878ec7638897225738155f0746
2012-06-11 19:28:48 -07:00
Eric Laurent
4ab22bb7d0 Made IAudioService.setBluetoothA2dpOn() not oneway
IAudioService.setBluetoothA2dpOn() should not be one way as
IAudioService.isBluetoothA2dpOn() will return inconsistent results
if called just after.

Bug 6572651.

Change-Id: Ib03ae49e6c0041b1b37dcac9e198cd93a4794030
2012-06-11 17:10:02 -07:00
Dianne Hackborn
b58b8f832d Rework media router to be per-context with global process state.
Change-Id: Ic1cb6f13e691d22783bcdafae85b7c75aec0a66f
2012-06-11 15:41:08 -07:00
Adam Powell
d0d2cda9d4 Further work on MediaRouter
Remove volume control and tracking. This will be handled by extensions
to existing audio and media APIs for now.

Tweak/refine other aspects of the API. Pass the router to callbacks for
easier future-proofing. Add group/ungroup callback methods.

Change-Id: Ib69e76e5f46280a9002b545bcf4cbc7b839844ee
2012-06-11 13:17:44 -07:00