From 4af5178f571ac31f60655aa95f43f5dc770da55a Mon Sep 17 00:00:00 2001 From: Yiyi Shen Date: Fri, 12 Jan 2024 16:51:25 +0800 Subject: [PATCH] [Audiosharing] Support play test sound Test: manual Bug: 305620450 Change-Id: Id3f3b99f94a8a91d76fb9442310789b87c39bca0 --- res/drawable/ic_audio_play_sample.xml | 32 ++++++ res/xml/bluetooth_audio_sharing.xml | 7 ++ .../AudioSharingDashboardFragment.java | 4 + ...oSharingPlaySoundPreferenceController.java | 98 +++++++++++++++++++ 4 files changed, 141 insertions(+) create mode 100644 res/drawable/ic_audio_play_sample.xml create mode 100644 src/com/android/settings/connecteddevice/audiosharing/AudioSharingPlaySoundPreferenceController.java diff --git a/res/drawable/ic_audio_play_sample.xml b/res/drawable/ic_audio_play_sample.xml new file mode 100644 index 00000000000..3666c22ce96 --- /dev/null +++ b/res/drawable/ic_audio_play_sample.xml @@ -0,0 +1,32 @@ + + + + + + + diff --git a/res/xml/bluetooth_audio_sharing.xml b/res/xml/bluetooth_audio_sharing.xml index d5e08bbc7e4..9ffa2b27798 100644 --- a/res/xml/bluetooth_audio_sharing.xml +++ b/res/xml/bluetooth_audio_sharing.xml @@ -31,6 +31,13 @@ android:title="@string/calls_and_alarms_device_title" settings:controller="com.android.settings.connecteddevice.audiosharing.CallsAndAlarmsPreferenceController" /> + + { + if (mRingtone == null) { + Log.d(TAG, "Skip onClick due to ringtone is null"); + return true; + } + try { + mRingtone.setAudioAttributes( + new AudioAttributes.Builder(mRingtone.getAudioAttributes()) + .setFlags(AudioAttributes.FLAG_BYPASS_MUTE) + .addTag("VX_AOSP_SAMPLESOUND") + .build()); + if (!mRingtone.isPlaying()) { + mRingtone.play(); + } + } catch (Throwable e) { + Log.w(TAG, "Fail to play sample, error = " + e); + } + return true; + }); + } + + @Override + public void onStop(@NonNull LifecycleOwner owner) { + super.onStop(owner); + if (mRingtone != null && mRingtone.isPlaying()) { + mRingtone.stop(); + } + } + + @Override + public String getPreferenceKey() { + return PREF_KEY; + } + + private Uri getMediaVolumeUri() { + return Uri.parse( + ContentResolver.SCHEME_ANDROID_RESOURCE + + "://" + + mContext.getPackageName() + + "/" + + R.raw.media_volume); + } +}