* changes:
Request new Bluetooth runtime permissions.
Default grants for "Nearby devices" permission.
Add BLUETOOTH_SCAN and BLUETOOTH_CONNECT app ops
Split new NEARBY_DEVICES permissions
Define new NEARBY_DEVICES permission group
This CL adds registerCallback(executor, callback) as @SystemApi
for system MediaRouter2.
Bug: 183453134
Test: Passed CTS
Change-Id: I50e942714946ae8af7ad69432cefcd8015040d4d
An upcoming platform change is introducing a new "Nearby devices"
runtime permission which contains the new BLUETOOTH_CONNECT and
BLUETOOTH_SCAN permissions.
We have logic in place to use <split-permission> to translate the
older BLUETOOTH and BLUETOOTH_ADMIN permissions into these new
runtime permissions, but modern apps will need to pivot to
requesting them directly as part of targeting Android S.
This change requests both the old and new permissions to avoid
breakage while the new permission enforcement is being phased in.
Bug: 181813006
Test: atest CtsPermission2TestCases
Test: atest CtsPermission3TestCases
Test: atest CtsStatsdAtomHostTestCases
Change-Id: I39f45e7d22d132d44c84017cd98e6d9e98533c7f
Before this change, the MediaPlayer javadoc referenced VideoView's
javadoc, even though it was not relevant. The link can be removed
because a correct link is provided further down in MediaPlayer's
javadoc to the MediaPlayer guide.
Bug: 182880215
Bug: 182798119
Change-Id: Ife353257e10f73ef319f1913c9e59046e4ec10ce
setStartThresholdInFrames is used to set the start threshold
in frames for streaming AudioTrack playback.
Normally this is the entire buffer capacity in frames
but may be reduced for low latency playback,
compressed formats, and direct tracks.
See CTS test AudioTrackTest#testStartThresholdInFrames
for example calling details and behavior.
Test: atest AudioTrackTest#testStartThresholdInFrames
Test: atest AudioTrackTest#testStartThresholdInFramesExceptions
Bug: 183003720
Change-Id: I5064d04961e48b530c49071ff84c2e0d2065f41b
A stream on the restart queue can cause the StreamManager to
busy-wait. This was introduced by a fix
commit ba04dbe773.
Test: Verbose log on StreamManager.cpp, run SoundPool CTS tests.
Bug: 182923919
Merged-In: Iae794bc957869426a4e1e27cd3c088aa9dd83208
Change-Id: Iae794bc957869426a4e1e27cd3c088aa9dd83208
* Created isFullVolumeDevice to replace usage of dumpsys audio in cts
tests.
* Added a new permission QUERY_AUDIO_STATE to the newly created API and
the existing API that it depends on:
- getDevicesForAttributes
- getDeviceVolumeBehavior
Test: The new API is accessible from cts tests
Bug: 182260585
Change-Id: I9d6bd24695ae306930b2518b1b12288aca46ebe9
libmedia_jni is the non-updatable part of the platform. However, it has
been built with `min_sdk_version: "29"` inherited from
libcodec2-internal-defaults and then again from libcodec2-impl-defaults.
The setting is for the codec2 cc_* modules that are part of the media
APEX.
So far, this however, hasn't caused a problem because the build system
ignored min_sdk_version for the platform variants. This will change
starting from I88f64c5a35f1b5276c3350e177b116932011a940. Then
libmedia_jni will actually be built with min_sdk_verison: 29, and it
will be enforced that any APIs above the API level 29 should be guarded
with __builtin_available.
Adding the guards will not only be cumbersome, but also wouldn't give
any benefit because libmedia_jni is tied to the platform. The check will
always be true.
Instead, this change resets the min_sdk_version of libmedia_jni, so that
it can keep the existing behavior.
Bug: N/A
Test: m libmedia_jni
Change-Id: Ie963d71f60cbfe849b5400a5ecf2d52119078554
By design, the StreamManager ramps down volume
on a Stream stop to prevent pops and glitches.
When the SoundPool is configured only with a single stream,
there may be a short period of unavailability of that stream
while stop is called by the worker thread; an immediate
play after a stop may return 0 (failure).
To allow immediate play after stop for a *single* Stream configured
SoundPool, we lock the StreamManager worker thread so that the
stop call is processed and the stream is visible to the client for use.
We prefer not to keep this lock for the multiple Stream case as it
prevents concurrent initiation of sounds from multiple StreamManager
worker threads and such blocking is not appropriate for games.
Test: SoundPoolAacTest SoundPoolHapticTest
Test: SoundPoolMidiTest SoundPoolOggTest
Bug: 175097719
Bug: 177287876
Merged-In: Iec777d6319d5ed76000d4c5b12336b106dacede4
Change-Id: Iec777d6319d5ed76000d4c5b12336b106dacede4
A stream on the restart queue can cause the StreamManager to
busy-wait. This was introduced by a fix
commit ba04dbe773.
Test: Verbose log on StreamManager.cpp, run SoundPool CTS tests.
Bug: 182923919
Change-Id: Iae794bc957869426a4e1e27cd3c088aa9dd83208