Synchronize changes to mIPlayerShell after release of corresponding
player.
Flush binder commands when a player is released, in AudioService
and in the clients that have an AudioPlaybackCallback implementation.
Do the same in MediaSessionService, which directly implements
the IPlaybackConfigDispatcher interface, without going through
the AudioPlaybackCallback registration and notification
mechanisms.
Test: adb shell /system/bin/write_sine_callback -m2 -pl
Bug: 65450109
Change-Id: I2f0697e0e164283284ce30d2cc736c4f8df270c4
setCallback(null) is supposed to clear registered callbacks.
Previously, setCallback(null) doesn't remove pending callback messages
and so belated callbacks are called quite frequently after
setCallback(null) is done. This CL reduces major number of such cases by
removing pending callback messages.
Bug: 63446360
Test: Ran cts test
adb shell am instrument -w -e class \
android.media.cts.MediaSessionTest#testSetCallbackWithNull \
android.media.cts/android.support.test.runner.AndroidJUnitRunner
Change-Id: I7192b0a61a2114390f10734bbb48aeac56a19fe3
This CL cleans up connectionRecords when binder dead and the connection
is lost.
Bug: 65132577
Test: check the number of ConnectionRecord, kill the media app, check
the number again.
Change-Id: I8b31745bcee220b9e70c3f43d7fc9d8dc3f6b83a
As part of migrating native binder services to AIDL, this moves IPlayer.aidl to
the frameworks/av/ project and links in the new AIDL generated binder library to
the JNI libraries.
Test: run cts --module CtsMediaTestCases
Bug: 64223827
Change-Id: I7e346a471b98c78ceb35dceed9e6c0df1000cfb1
The default phone speaker, bluetooth audio devices, and wired audio
devices are handled as system audio routes. When an app starts to
make sound to a system audio route, the system audio route will be
selected with the following order.
1. The slected route by the app after the latest connection of
an audio device.
2. The lastly connected audio device.
3. The default phone speaker if not connected.
Bug: 64811580
Test: Passed MediaRouterTest, manual
Change-Id: I77badb14596bc661c44237957504164f5476e595
Log changes to AppOpsManager.OP_PLAY_AUDIO in live player
Test: "adb shell dumpsys audio" after entering silence mode
Bug: 62258749
Bug: 64286665
Change-Id: Ia1c202c5b8b25e14f7c2e85060a256dc69433909
Change mimetype of PPT file to match MS specification.
(MimeUtils.java matched the MS specification)
Test: Check mimetype of DB after saving PPT file.
Change-Id: Ie559499ae39bc527fcc656ba37f28845af209e6c
Signed-off-by: bokyung.kim <bokyung.kim@lge.com>
Add permission annotations on audio focus @SystemApi methods.
Ignore REQUIRE_PERMISSION error (125) for:
- deprecated abandonAudioFocus() method: the check is on the
request call
- isHdmiSystemAudioSupported() method, it's not clear if it's
being used.
Test: remove "-hide 125" in Android.mk and make, verify no errors\
on AudioManager.java
Bug: 62343127
Change-Id: I62526db0c6dabcc34224c589506d611519de6abc
Bug: 64686424
Test: Connect to carkit and see that NowPlayingChanged only gets sent when
the queue changes, run cts test
Change-Id: I58c9dd0bf976485a2efefd042cd667ee433e07e1
New class AudioEventLogger to store a configurable number of the
last audio events. It hosts a circular buffer of lightweight
event objects, an abstract class whose implementations are
event-specific, and does the heavier string manipulations
at the time of the dump, not during normal operation.
Add logging for:
- phone state (a.k.a. audio mode) changes
- wired device connections
- playback activity monitor
- force use
Test: adb shell dumpsys audio
Bug: 64470715
Change-Id: I8dbd936e2ffec39134f1a8837191c74f5cb9fc56
MtpService has been changed to a singleton service
running in user 0, so the original context will
be that of user 0. Accesses to MediaProvider and
MediaScanner should use the new passed in user context
in order to access user data, while the broadcast
receiver for battery data will use the original context.
Bug: 64822515
Test: Use Mtp and switch users.
Change-Id: Ic181258337944db7dc6f6097c967cb104df938d3