5692 Commits

Author SHA1 Message Date
Conrad Chen
558acf96db TIF: add TvInputManager methods to notify apps
Adds TvInputManager methods to notify apps with protected broadcasts
for:
1. Disabling browsable state of preview and watch next programs.
2. Adding preview programs to watch next programs.

Test: build and verify manually to check if notifications are
      broadcasted.
Bug: 35881266

Change-Id: I20fd5b63f42b2c74277315bbbd251b71c649e5c1
2017-04-11 12:03:04 -07:00
TreeHugger Robot
8d84e4cd1c Merge "TIF: hide BaseProgramColumns and BasePreviewColumns" into oc-dev 2017-04-04 19:23:25 +00:00
Jean-Michel Trivi
6cf445bd3d Merge "Revert "AudioAttributes: remove static getVolumeControlStream method"" into oc-dev 2017-04-04 19:08:37 +00:00
Jean-Michel Trivi
e4a9911b68 Revert "AudioAttributes: remove static getVolumeControlStream method"
This reverts commit e0b5bf50d6cf4621e483d0c85898a61a19ff6d45.

Change-Id: I2f3f10c149b205d22c41d5c9767ea10b0dee7682
2017-04-04 18:26:44 +00:00
Dongwon Kang
0a1c6a54d2 TIF: hide BaseProgramColumns and BasePreviewColumns
Note: BaseColumns(API 1) and BaseTvColumns(API 21) remains public due to
the backward compatability. Plus, inheritence between BaseProgramColumns
and BasePreviewColumns is also removed to follow patterns in other
Contracts.

Test: cts-tradefed run cts -m CtsTvTestCases -t android.media.tv.cts.TvContractTest
Bug: 36395855
Change-Id: Ie73a2e48217676be53f373f8524afd04f7d8fc37
2017-04-04 10:11:45 -07:00
TreeHugger Robot
adc1605530 Merge "AudioAttributes: remove static getVolumeControlStream method" into oc-dev 2017-04-04 15:32:25 +00:00
TreeHugger Robot
4d52ae9707 Merge "Audio focus: API for external audio focus policy" into oc-dev 2017-04-04 02:40:02 +00:00
TreeHugger Robot
b43a5305bd Merge "TIF: use integer for constants instead of string" into oc-dev 2017-04-04 01:10:44 +00:00
TreeHugger Robot
99442d3427 Merge "media: unhide mediarecorder's setVideoEncodingProfileLevel api." into oc-dev 2017-04-04 00:33:46 +00:00
Jean-Michel Trivi
126cf03f7c Audio focus: API for external audio focus policy
System API for an external audio focus policy. Extends
 the system focus listener with interception of
 focus requests and abandons. Adds method for the focus
 policy to dispatch focus grants and losses.

Test: gts-tradefed run gts -m GtsGmscoreHostTestCases -t 'com.google.android.gts.audio.AudioHostTest#testFocusPolicy'
Bug: 30258418
Change-Id: If408569a2dce07a774e0e2f1be9f1af8e426d2d3
2017-04-03 14:44:47 -07:00
Hangyu Kuang
9ef7fe43c9 media: unhide mediarecorder's setVideoEncodingProfileLevel api.
Test: GoogleCmaera app.
bug: 35151543
Change-Id: I37dee948298a14d338bca670af0bc01450c83529
2017-04-03 12:56:39 -07:00
Dongwon Kang
f9bbac1daf TIF: use integer for constants instead of string
Test: cts-tradefed run cts -m CtsTvTestCases
Bug: 36395855
Change-Id: I9f0d62acb73883f543219a1ee4ed961140221a11
2017-04-03 12:51:53 -07:00
Dongwon Kang
70fb40c17a TIF: Rename COLUMN_APP_LINK_INTENT_URI to COLUMN_INTENT_URI
Test: cts-tradefed run cts -m CtsTvTestCases
Bug: 35856179
Change-Id: I284cb1b764203c646e3edb3f105d90d59a7688d1
2017-04-03 12:51:52 -07:00
Jean-Michel Trivi
e0b5bf50d6 AudioAttributes: remove static getVolumeControlStream method
Remove (unreleased) getVolumeControlStream static method.

Test: cts-tradefed run cts -m CtsMediaTestCases -t android.media.cts.AudioAttributesTest
Bug: 36724262
Change-Id: Ieab0f61eb0ce032d9dd6716bf78f7cfc59b6eb51
2017-04-03 12:02:19 -07:00
TreeHugger Robot
0a198d1034 Merge "Add TYPE_PREVIEW in the javadoc of Channels.COLUMN_TYPE" into oc-dev 2017-04-01 03:01:04 +00:00
TreeHugger Robot
32e45042c9 Merge "TIF: Remove redundant modifiers in TvContract" into oc-dev 2017-03-30 23:20:55 +00:00
Dongwon Kang
c871434468 TIF: Remove redundant modifiers in TvContract
Test: build
Bug: 36138179
Change-Id: I313bdf421bc2af956a8b08933e5a86141a90a52f
2017-03-29 13:35:20 -07:00
TreeHugger Robot
bf6b4efa6d Merge "AudioAttributes: make getVolumeControlStream() non static" into oc-dev 2017-03-29 17:40:01 +00:00
Chulwoo Lee
5e038e5428 Add TYPE_PREVIEW in the javadoc of Channels.COLUMN_TYPE
Adding missing value in the javadoc.

Test: build
Change-Id: I1904c36b8fcc39acaf404101b198bafa7d92fbdc
2017-03-29 02:22:42 +00:00
Jean-Michel Trivi
e67bc4d484 AudioAttributes: make getVolumeControlStream() non static
In AudioAttributes class:
 - deprecate static getVolumeControlStream(AudioAttributes) method,
 - add non-static getVolumeControlStream() method.

Test: cts-tradefed run cts -m CtsMediaTestCases -t android.media.cts.AudioAttributesTest
Change-Id: Ic2276cb7367e0bcb0c07e1fe63de68dafddbccb5
2017-03-28 21:37:35 +00:00
Conrad Chen
e710843fc7 TIF: open transient columns to public
Test: build
Bug: 36557756
Change-Id: Ieb45ee5e6bd27fb33d84799ec1510a410ff7b027
2017-03-28 18:41:45 +00:00
Phil Weaver
668c34444d Merge "Fix permission checking for a11y volume." 2017-03-28 03:58:16 +00:00
TreeHugger Robot
b567b580a8 Merge "Sync the constants in HAL and framework" 2017-03-28 00:02:23 +00:00
Shubang
39f285d5a7 Sync the constants in HAL and framework
Test: Build and flash device

Bug: 36233336
Change-Id: Ie81862825b601bdafd7653564d7393686d54f531
2017-03-27 15:15:46 -07:00
Phil Weaver
f1a9aff962 Fix permission checking for a11y volume.
Adding new permission for changing accessibility volume
to allow system UI to change it. Also providing audio
manager with a whitelist of bound accessibility service
uids so it can allow servics to change the volume.

Bug: 36569297
Test: Adding CTS test in linked CL.
Change-Id: I4f327e3a251fc3780c5957f41217c2ef5bb8b16e
2017-03-27 14:59:26 -07:00
Jaewan Kim
92dea33bfe Simplify the media button handling logic
Here's the new media handling logic.

1. If the foreground app consumes the media key event
  (Activity.onKeyDown/Up() or Activity.setMediaController()),
  we stop here.
2. Find the media app whose AudioPlaybackConfiguration becomes
  PLAYER_STATE_STARTED lastly across the boot. The media app is the app
  with the media session.
  - If its session is still alive, send the media key event
    to the media session.
  - If its session has been released but the session set the media
    button receiver, send the media key event through the media button
    receiver.
  - If it has multiple media sessions, pick the media session whose
    PlaybackState matches with the AudioPlaybackConfiguration's player
    state.
3. Stop here. Don't try revive any other app.

This approach has two limitations.
1. If an app has multiple AudioPlaybackConfigurations and/or
   media sessions, the MediaSessionService may pick the wrong media
   session to send media key events.
2. If an app with a media session plays sound effects differently from
   the SoundPool class, the MediaSessionService would consider the app
   as the lastly played media app.

Bug: 33032080
Test: Manual tests as follows
  1. Checked that the lastly played app receives the media key events
     although the app's media session doesn't report its playback state.
  2. Checked that the lastly played app receives the media key events
     although the app's media session is released.
  3. Checked that the lastly played app doesn't receive the media key
     events if its playback is remote.
Change-Id: I1fd6f9eee0750da4dea9fcc7401fdb1c3f249a72
2017-03-27 14:58:43 -07:00
TreeHugger Robot
b3544c1565 Merge "MediaCas: rethrow MediaCas specific exception" 2017-03-27 20:17:15 +00:00
Chong Zhang
dadee0c33e MediaCas: rethrow MediaCas specific exception
Translate ServiceSpecificException from aidl to CAS-specific
exceptions. Also, throw CAS specific exception for descramble().

bug: 22804304

Change-Id: I6d68c335c87fbb95fd8cc227e432eed4e5951550
2017-03-24 14:28:43 -07:00
TreeHugger Robot
4750321738 Merge "MediaBrowser: Add a disconnecting state" 2017-03-24 05:57:32 +00:00
Sungsoo Lim
17142506bb Merge "Set volume handling of the default route properly" 2017-03-24 04:40:40 +00:00
Conrad Chen
ca47020270 Merge "TIF: Make COLUMN_LOCKED of channels table public" 2017-03-23 22:31:09 +00:00
Conrad Chen
3afa1de7ab TIF: Make COLUMN_LOCKED of channels table public
Test: cts-tradefed run cts -m CtsTvTestCases
Bug: 31340604
Change-Id: I5bf155cb2bdea02f0841ecba0872077cc6609c06
2017-03-23 10:53:58 -07:00
Jean-Michel Trivi
ce48965cf2 Merge "Audio focus: SDK/System API updates" 2017-03-23 15:11:53 +00:00
Sungsoo
01d3c73576 MediaBrowser: Add a disconnecting state
By adding a CONNECT_STATE_DISCONNECTING, we could prevent
the ConnectionCallback to be called after disconnect().

Bug: 36106103
Test: manual using Support4Demos
Change-Id: Ia6f9864dce90b1e58437c07bbcaf6300e162ab92
2017-03-23 13:50:38 +09:00
TreeHugger Robot
0f04917d21 Merge "Revisit logging in MediaRouter and MediaSessionRecord" 2017-03-23 02:34:31 +00:00
TreeHugger Robot
55c85cadf6 Merge "Add missing type for USB headset devices" 2017-03-23 02:22:54 +00:00
Jaewan Kim
742e379863 Revisit logging in MediaRouter and MediaSessionRecord
This limits excessive logs from MediaRouter and MediaSessionRecord
- MediaRouter: Leave log only if there's change in the audio route.
- MediaSessionRecord: Leave log for the controller callback instead of
    dumping verbose stack traces.

Bug: 36497125
Test: Manual test
Change-Id: Ie0fe9f33388d1aa9f25c26b3b3f7c71fec409ba8
2017-03-23 09:39:35 +09:00
Jean-Michel Trivi
50750ff162 Audio focus: SDK/System API updates
Addressed API council notes: document some missing default values
  of AudioFocusRequest builder, remove getters on lister and
  handler.
Fix missing support of custom Handler for focus listener.
Integrate focus lock feature from AudioManager SystemAPI into
  new AudioFocusRequest class and builder. Deprecate system
  methods for focus requests that don't use AudioFocusRequest
Switch to a ConcurrentHashMap in AudioManager instead of a
  lock and HashMap to maintain the list of focus listeners
  for each AudioManager instance.
Clean up: all local IAudioService references can be made final.
  Add missing @Override for the Stub implementations.

Test: cts-tradefed run cts -m CtsMediaTestCases -t android.media.cts.AudioFocusTest
Bug: 30258418

Change-Id: I9e903379a607c723a2620821200547de679231d1
2017-03-22 15:12:05 -07:00
Jean-Michel Trivi
a00f86009e PlayerBase: more general exception catching in release
When stopping AppOps watching in the player release, catch
  any exception to be safer.

Test: see bug repro steps
Bug: 36240191
Change-Id: I8e11cfc12c305878699dc57131e35e2a98eb7b16
2017-03-22 08:39:42 -07:00
Sungsoo
bd6118ffb4 Set volume handling of the default route properly
The volume handling of the default route of the devices which use
fixed volume should be set PLAYBACK_VOLUME_FIXED instead of
PLAYBACK_VOLUME_VARIABLE.

Bug: 36492333
Test: passed CTS of MediaRouterTest
Change-Id: I4bc42063b71ae9087b36f1529b7689b96d9e53e7
2017-03-22 13:53:35 +09:00
Jerry Zhang
e30d5723e4 Merge "Add support for MTP perceived device type property." am: b6ed343e85 am: 7644b885c7
am: 136f37b88f

Change-Id: I446cd52e5fd8cda48e9af46ee3faee5578cae286
2017-03-20 21:54:28 +00:00
Jerry Zhang
7644b885c7 Merge "Add support for MTP perceived device type property."
am: b6ed343e85

Change-Id: I58417625aa6c669eb82af3a11a4e35c77952f539
2017-03-20 21:39:17 +00:00
Eric Laurent
2eb39497bc Add missing type for USB headset devices
Change-Id: Ib3195442bfefd00edf46592e743617fe37b81a33
Test: audio playback and capture regression tests
2017-03-17 17:25:15 -07:00
Conrad Chen
96f6a1a7d6 Merge "Block modifying types of channels" 2017-03-17 19:39:44 +00:00
Conrad Chen
fcc884005a Block modifying types of channels
The type of channels should not be changed once it's set.
Blocks this column from being modified.

Test: cts-tradefed run cts -m CtsTvTestCases
Change-Id: I9f7c99b4693db5553e85a1cab5cf1130425630c7
2017-03-16 11:49:01 -07:00
Ray Essick
5204ad0a2a Merge "Integrate API Council feedback into Media Metrics APIs" 2017-03-16 01:02:25 +00:00
Conrad Chen
287a68e62a Merge "Deprecate settingsActivity field in TvInputService" 2017-03-16 00:16:15 +00:00
TreeHugger Robot
32eb4602c1 Merge "AudioRecord: more information in text of IllegalArgumentException" 2017-03-16 00:10:33 +00:00
Ray Essick
f2d0e40bf0 Integrate API Council feedback into Media Metrics APIs
Integrates the API Council's feedback into the Media Metrics
related APIs.
-- return types for the getMetrics() calls
-- definition of keys in the set of data that comes back

Bug: 35811992
Test: booted, CTS subset, checked dumpsys media.metrics output
Change-Id: Ib750f9631bd3453be3132760273ccfff0a891f88
2017-03-15 11:43:08 -07:00
Jean-Michel Trivi
6b7a4f7b95 AudioRecord: more information in text of IllegalArgumentException
Add more debug information inside the IAEs thrown during
  audio parameter check.

Test: try invalid params for recording, read exception text
Bug: 34119793

Change-Id: Ic4f36fd6ef99c18107e3204ef5e25cc1bc9e704d
2017-03-15 10:40:08 -07:00