MediaRourter uses main thread for internal operations, and ANR could
happens if AudioService is not running when MediaRouter tried to get
stream volumes. This CL avoids such ANR by caching stream volumes.
Bug: 170327593
Test: manually
(cherry picked from internal master branch)
Change-Id: I7c00b26a3a25f17c877d3ec0e998905ab0b4af28
Use weak reference in the tables to allow objects released by caller
bug: 174685399
bug: 174711353
Test: manual
Change-Id: I760d0a77ad9efe2709a14f0fb8a669f8f16652e1
Merged-In: I760d0a77ad9efe2709a14f0fb8a669f8f16652e1
Allow scan again if callback and executor are same as before.
bug: 173239634
Test: atest -c TunerTest
Change-Id: Iec5ba453b3d3d40c0d96fda5c7288b79898d9aea
Merged-In: Iec5ba453b3d3d40c0d96fda5c7288b79898d9aea
Replaced use of forced usage for communication by set preferred device
for strategy to control communication route in audio policy manager.
Also do not use forced usage for record which was redundant with forced
usage for communication.
Bug: 161358428
Test: audio smoke tests
Change-Id: I665257fc5903b663096104b0424781d9799635a5
Merged-In: I665257fc5903b663096104b0424781d9799635a5
Add new APIs to manage the audio device used for communication
use cases (Cellular calls, VoIP and Video calls).
These APIs are meant to replace specific APIs like setSpeakerPhoneOn()
and provide a single generic way of configuring the audio device selected
for calls.
They will be used for newly added device types (e.g. BLE audio) instead
of adding new specific APIs.
They will also offer more options like for instance allowing to select the
earpiece (handset) device when a wired headset is connected.
The new APIs are:
- boolean setDeviceForCommunication(AudioDeviceInfo)
- void clearDeviceForCommunication()
- AudioDeviceInfo getDeviceForCommunication()
A listener is also added for applications to monitor current communication
device selection:
- OnCommunicationDeviceChangedListener
As well as listener registration and unregistration APIs:
- addOnCommunicationDeviceChangedListener()
- removeOnCommunicationDeviceChangedListener()
Bug: 161358428
Test: make && atest AudioCommunicationDeviceTest
Change-Id: I8028d842e4a8ca1abe0f87d03e3c5d57c46b9362
Merged-In: I8028d842e4a8ca1abe0f87d03e3c5d57c46b9362
Support set/clear/get preferrd device for capture preset. The preferred
device will be used for audio routing when it is availabled. The
preferred device doesn't need to be present when setting.
Bug: 160352965
Test: atest AudioServiceTest
Test: atest AudioServiceHostTest
Test: atest CarAudioZonesHelperTest
Change-Id: Ib7aa142ad4c56a8138c7b440e8efbbf7a7ee38a6
Merged-In: Ib7aa142ad4c56a8138c7b440e8efbbf7a7ee38a6
Add OWNERS file to services/tests/servicestests/src/com/android/server/audio
and add jmtrivi@google.com to media owners file.
Test: N/A
Change-Id: If446eb3f2de07ab1cb3e87715b964a9360ec684c
Adding interface for set/remove/getDevicesRoleForStrategy. This will be
used for setting device(s) role, such as preferred, for strategy.
Set/remove/getPreferreDeviceForStrategy are reimplemented by calling
the new interfaces.
Test: atest AudioHostTest
Test: atest AudioServiceHostTest
Test: atest AudioServiceTest
Test: atest audiopolicy_tests
Bug: 160352965
Change-Id: I2ba02c6b50af80846a25010ead05c4ae364868de
Merged-In: I2ba02c6b50af80846a25010ead05c4ae364868de
MediaRouterService maintained bindings to provider services
once those are established.
With this CL, it only binds services when there is a non-empty
discovery preference set by a foreground app or an app is casting.
This change may break output switcher, which enables transfer media
of background apps.
To alleviate that MediaRouter2Manager#startScan and #stopScan are added
so that system UI can force the service bind to the services and find
remote devices to cast.
Bug: 169575701
Bug: 172920557
Test: manually and CTS
Change-Id: I4a47fdb1c9fe05a04d26950485833c9cbfb91a69
(cherry picked from commit 9f889ca4e6)
(cherry picked from commit 602b168f99)
API standardization and customization for Digital Tuner TV
Input support.
(Channels.COLUMN_COLUMN_REMOTE_CONTROL_KEY_PRESET_NUMBER,
Channels.COLUMN_SCRAMBLED, Channels.COLUMN_VIDEO_RESOLUTION,
Channels.COLUMN_CHANNEL_LIST_ID, Channels.COLUMN_BROADCAST_GENRE)
Bug: 158236748
Test: Manual - confirm tv.db
Change-Id: Id0003b7312327de42a18352a7868eaaa3c1ebcc4
The package name is useful for permission validation. Currently, package
name is required when starting external vibration so that the vibrator
service can verify if the app has the permission to start vibration.
Bug: 175595599
Test: SoundPool tests in cts
Test: play audio-coupled-haptic file using SoundPool.
Change-Id: Ibfe414063a303118a5bb393d65ea5dc2323bf722
Merged-In: Ibfe414063a303118a5bb393d65ea5dc2323bf722
(cherry picked from commit de9005bab1)
The package name is useful for permission validation. Currently, package
name is required when starting external vibration so that the vibrator
service can verify if the app has the permission to start vibration.
Bug: 175595599
Test: SoundPool tests in cts
Test: play audio-coupled-haptic file using SoundPool.
Change-Id: Ibfe414063a303118a5bb393d65ea5dc2323bf722
Merged-In: Ibfe414063a303118a5bb393d65ea5dc2323bf722
(cherry picked from commit de9005bab1)
Due to the limited virtual memory address space it is not practical
to advertise support for more than 4K for 32-bit processes.
Bug: 173488434
Test: atest CtsMediaTestCases -- --module-arg CtsMediaTestCases:size:small
Change-Id: Ibcd7f70f4efd8d696d831769bafe932207640830
As general background, OWNERS files expedite code reviews by helping
code authors quickly find relevant reviewers, and they also ensure
that stakeholders are involved in code changes in their areas.
Some teams under frameworks/base/ have been using OWNERS files
successfully for many years, and we're ready to expand them to cover
more areas. Here's the historical coverage statistics for the last
two years of changes before these new OWNERS changes land:
-- 56% of changes are fully covered by OWNERS
-- 17% of changes are partially covered by OWNERS
-- 25% of changes have no OWNERS coverage
Working closely with team leads, we've now identified clear OWNERS on
a per-package basis, and we're using "include" directives whenever
possible to to simplify future maintenance. With this extensive
effort, we've now improved our coverage as follows:
-- 98% of changes are fully covered by OWNERS
-- 1% of changes are partially covered by OWNERS
-- 1% of changes have no OWNERS coverage
This specific change is automatically generated by a script from
detailed ownership information confirmed by team leads.
Bug: 174932174
Test: manual
Exempt-From-Owner-Approval: refactoring with team leads buy-in
Merged-In: I9789c97c1de8e5d962b48c29c57d82fe83729eba
Change-Id: I9789c97c1de8e5d962b48c29c57d82fe83729eba