In Q, these APIs were either:
- removed from the greylist entirely without good reason
- Moved to the restricted greylist without any public alternative
information added
So they are being moved back to the greylist for Q.
Test: Treehugger
Bug: 136102585
Change-Id: I6518440a7b0de8292ad05b4df9f0f9580d18b2a5
Add content observer for RTT mode: when RTT is ON during a call,
The assistant is allowed to capture audio similarly to when an
accessibility service is in the foreground.
Bug: 132976361
Test: use voice input during a call with RTT enabled.
Change-Id: Ief04d886370b50ae3dac0a72dbd1a4ea5f2c66a3
MPEG4Writer::writeGeoDataBox() has always written latitude
before longitude since it was introduced. And the ISO-6709
is also to have +-{latitude}+-{longitude}/ so we should have
the correct information here.
This is likely to be important for Q since lat/long are no
longer accessible via MediaStore.
Bug: 134100244
Test: documentation change only
Change-Id: If157e3b0a639da9e012c0dd23fcfacfa0a59c28e
video files with mimetype “video/x-ms-asf” are considered as PlayList
file type due to below check in MediaFile.Java
Do not consider it as playlist file and remove case of “video/x-ms-asf”
Bug: 133940458
Test: The video is show in gallery
Change-Id: I6af45b597d9b8d9b277e1ae89f2afe019ee2eead
These APIs are used by older versions of the unity game engine, and many
of these games are not in a position where they are able to update
unity. To keep these games working now and in the future, leave these
APIs on the derestricted greylist.
Bug: 134049522
Test: m
Change-Id: I541ed6fbacfc1e405a319af5c2ff785625afb26a
USAGE_VOICE_COMMUNICATION_SIGNALLING shouldn't be considered
SUPPRESSIBLE_SYSTEM. It includes the ring tone sound when in a call.
Instead, it should not be suppressible like USAGE_VOICE_COMMUNICATION.
Test: manual
Fixes: 131756661
Change-Id: Ide8aafafe58c421f3b699e6de9358b4e73ad01c5
MediaHTTPConnection.seek() was creating new connections in a while
loop without checking whether another thread was busy concurrently
disconnecting.
When a new connection was created between the time the disconnect()ing
thread had disconnected the old one and acquired the synchronized
block, the new connection wouldn't be disconnected and therefore
seek() would not encounter an IOException; therefore, seek() would
not return quickly, leaving the disconnecting thread waiting to
acquire the synchronized block for a long time.
This CL fixes this by making seek() throw IOException quickly if
it discovers that another thread is trying to disconnect. This
is checked shortly before and after the new connection is created,
to avoid a race based on the order between the new connection
being created and the disconnecting thread reading the old
connection value. Note that this still doesn't stop a new
connection being created shortly after the previous one was torn
down - it only stops the disconnecting thread waiting for a long
time to acquire the synchronized lock.
Fixes: 131894499
Test: The following command hang 3/3 times before this CL, but
succeeded 3/3 times afterwards:
atest android.media.cts.NativeDecoderTest#testAMediaDataSourceClose
Change-Id: I3862a4367d0e46c64c0cbf7bcaa369aca5692871
Remove dead BT code that supported the implementation of
AudioManager.handleBluetoothA2dpActiveDeviceChange() but
was made obsolete with d7c9598 ("Restructure A2DP active device
change").
Bug: 132416679
Test: m -j (no functional changes)
Change-Id: Iedca8a5225548f205920ef50bb3ad8865eb99d1d
This CL adds MediaRouter.setRouterGroupId() methods to set the "group id"
of a media router.
Media routers that have the same group id synchronize their
selected route.
For example, if System UI and Settings use the group id, you can see
"connected" status from System UI even if the cast begins from Settings
, and vice versa.
Bug: 112826114
Bug: 131385091
Bug: 130345243
Test: manually w/ setting the same group id for Settings and System UI.
Change-Id: I9d4e061b57f52d7b2bec622b5f02068f3d11c133
* changes:
System apps are not allowed to record better then 16kHz mono
Fix permission check when registering an audio policy
Refactor security checks to register policies
This privacy requirement was documented but was not implemented.
Test: atest android.media.cts.AudioPlaybackCaptureTest#testCaptureMediaUsage
Bug: 129948989
Change-Id: I256e6ed1965263416a893393d5462ec73099751e
Signed-off-by: Kevin Rocard <krocard@google.com>
- If we do full file decoding, we should not handle orientation by
ourselves.
- If we decode the thumbnail from ExifInterface.getThumbnailBytes()
or MediaMetadataRetriever, we should handle the orientation.
Change-Id: I632b0b0ed41710401192dfb12f407eaf74c480ba
Fix: 130446058
Test: manual
Comparing by constructing full Uris doesn't work when one of the
values has been canonicalized.
Bug: 132816653
Test: atest android.media.cts.RingtoneManagerTest#testAccessMethods
Change-Id: Id4b26820e76ec3d1d56ba6cf3c76375dafcf92c0
remove mBypassInterruptionPolicy unused since
app ops are managed by PlayerBase.
Bug: 131873101
Test: make
Change-Id: Ifb07fd0f4e5a14384b71ac010a35614969b9761e
Clients must unregister themselves when client-side AudioRecord
goes away. This allows removing the tracking record sooner than
the client app goes away.
"DEATH" event has been renamed to "RELEASE". Client death is handled
the same way as regular release.
Bug: 123312504
Test: start and stop audio recording, check "dumpsys audio"
Change-Id: I6a9578b29ab3c41bac2bf4c823224276efbe1beb
If audioRecord.release() is called explicitly, APC DP is released.
When the AudioRecord.finalizer() is called by the JVM, the APC DP would
be released again, leading to misleading error message.
Bug: 131064451
Test: call AudioRecord release and check that the finalizer do not log a
release failure
Change-Id: Ia7092274ea8ac8e0a6754dfe2541f823f650384d
Signed-off-by: Kevin Rocard <krocard@google.com>
Client port ID must not be anonymized as it is used by
AudioRecord class to filter out the corresponding
recording configuration.
Bug: 123312504
Bug: 131756086
Test: atest CtsMediaTestCases:AudioRecordTest#testAudioRecordInfoCallback
atest CtsMediaTestCases:AudioRecordTest#testGetActiveRecordingConfiguration
Change-Id: I3e32395e9df107db76cfc940fecda8d066c05d97
Reproduced the failing case, even without thread pool changes.
Since RingtoneManager was blocking on the call anyways, changing it
to use the synchronous scanFile method directly should be fine.
Bug: 131882699
Test: manual add MP3 with RingtonePickerActivity
Change-Id: I53b49ed17403cda93ecfefb6985133b161a96983
This CL also makes throw IllegalArgumentException when controller
tries to set the speed to zero.
Bug: 131873534
Test: atest CtsMediaTestCases:android.media.cts.MediaSessionTest;
atest CtsMediaTestCases:android.media.cts.MediaControllerTest;
atest CtsMediaTestCases:android.media.cts.MediaBrowserTest;
atest CtsMediaTestCases:android.media.cts.MediaSessionManagerTest;
Change-Id: I78f775df369de48b1ebda66fdb6e251b6e0865c1