Loading src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamMediaService.java +58 −30 Original line number Diff line number Diff line Loading @@ -36,6 +36,7 @@ import android.media.session.PlaybackState; import android.os.Bundle; import android.os.IBinder; import android.util.Log; import android.view.KeyEvent; import androidx.annotation.IntRange; import androidx.annotation.NonNull; Loading Loading @@ -432,6 +433,25 @@ public class AudioStreamMediaService extends Service { } private class MediaSessionCallback extends MediaSession.Callback { @Override public boolean onMediaButtonEvent(@NonNull Intent mediaButtonIntent) { KeyEvent keyEvent = mediaButtonIntent.getParcelableExtra(Intent.EXTRA_KEY_EVENT); if (keyEvent != null) { Log.d(TAG, "onMediaButtonEvent(): triggered by MediaSessionCallback"); switch (keyEvent.getKeyCode()) { case KeyEvent.KEYCODE_MEDIA_PLAY: handleOnPlay(); break; case KeyEvent.KEYCODE_MEDIA_PAUSE: handleOnPause(); break; default: // fall out } } return super.onMediaButtonEvent(mediaButtonIntent); } @Override public void onSeekTo(long pos) { Log.d(TAG, "onSeekTo: " + pos); synchronized (mLocalSessionLock) { Loading @@ -443,18 +463,27 @@ public class AudioStreamMediaService extends Service { @Override public void onPause() { if (mDevices == null || mDevices.isEmpty()) { Log.w(TAG, "active device or device has source is null!"); return; } Log.d( TAG, "onPause() setting volume for device : " + mDevices.get(0) + " volume: " + 0); setDeviceVolume(mDevices.get(0), /* volume= */ 0); handleOnPause(); } @Override public void onPlay() { handleOnPlay(); } @Override public void onCustomAction(@NonNull String action, Bundle extras) { Log.d(TAG, "onCustomAction: " + action); if (action.equals(LEAVE_BROADCAST_ACTION) && mAudioStreamsHelper != null) { mAudioStreamsHelper.removeSource(mBroadcastId); mMetricsFeatureProvider.action( getApplicationContext(), SettingsEnums.ACTION_AUDIO_STREAM_NOTIFICATION_LEAVE_BUTTON_CLICK); } } } private void handleOnPlay() { if (mDevices == null || mDevices.isEmpty()) { Log.w(TAG, "active device or device has source is null!"); return; Loading @@ -462,21 +491,21 @@ public class AudioStreamMediaService extends Service { Log.d( TAG, "onPlay() setting volume for device : " + mDevices.get(0) + mDevices.getFirst() + " volume: " + mLatestPositiveVolume.get()); setDeviceVolume(mDevices.get(0), mLatestPositiveVolume.get()); setDeviceVolume(mDevices.getFirst(), mLatestPositiveVolume.get()); } @Override public void onCustomAction(@NonNull String action, Bundle extras) { Log.d(TAG, "onCustomAction: " + action); if (action.equals(LEAVE_BROADCAST_ACTION) && mAudioStreamsHelper != null) { mAudioStreamsHelper.removeSource(mBroadcastId); mMetricsFeatureProvider.action( getApplicationContext(), SettingsEnums.ACTION_AUDIO_STREAM_NOTIFICATION_LEAVE_BUTTON_CLICK); private void handleOnPause() { if (mDevices == null || mDevices.isEmpty()) { Log.w(TAG, "active device or device has source is null!"); return; } Log.d( TAG, "onPause() setting volume for device : " + mDevices.getFirst() + " volume: " + 0); setDeviceVolume(mDevices.getFirst(), /* volume= */ 0); } private void setDeviceVolume(BluetoothDevice device, int volume) { Loading @@ -492,4 +521,3 @@ public class AudioStreamMediaService extends Service { }); } } } Loading
src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamMediaService.java +58 −30 Original line number Diff line number Diff line Loading @@ -36,6 +36,7 @@ import android.media.session.PlaybackState; import android.os.Bundle; import android.os.IBinder; import android.util.Log; import android.view.KeyEvent; import androidx.annotation.IntRange; import androidx.annotation.NonNull; Loading Loading @@ -432,6 +433,25 @@ public class AudioStreamMediaService extends Service { } private class MediaSessionCallback extends MediaSession.Callback { @Override public boolean onMediaButtonEvent(@NonNull Intent mediaButtonIntent) { KeyEvent keyEvent = mediaButtonIntent.getParcelableExtra(Intent.EXTRA_KEY_EVENT); if (keyEvent != null) { Log.d(TAG, "onMediaButtonEvent(): triggered by MediaSessionCallback"); switch (keyEvent.getKeyCode()) { case KeyEvent.KEYCODE_MEDIA_PLAY: handleOnPlay(); break; case KeyEvent.KEYCODE_MEDIA_PAUSE: handleOnPause(); break; default: // fall out } } return super.onMediaButtonEvent(mediaButtonIntent); } @Override public void onSeekTo(long pos) { Log.d(TAG, "onSeekTo: " + pos); synchronized (mLocalSessionLock) { Loading @@ -443,18 +463,27 @@ public class AudioStreamMediaService extends Service { @Override public void onPause() { if (mDevices == null || mDevices.isEmpty()) { Log.w(TAG, "active device or device has source is null!"); return; } Log.d( TAG, "onPause() setting volume for device : " + mDevices.get(0) + " volume: " + 0); setDeviceVolume(mDevices.get(0), /* volume= */ 0); handleOnPause(); } @Override public void onPlay() { handleOnPlay(); } @Override public void onCustomAction(@NonNull String action, Bundle extras) { Log.d(TAG, "onCustomAction: " + action); if (action.equals(LEAVE_BROADCAST_ACTION) && mAudioStreamsHelper != null) { mAudioStreamsHelper.removeSource(mBroadcastId); mMetricsFeatureProvider.action( getApplicationContext(), SettingsEnums.ACTION_AUDIO_STREAM_NOTIFICATION_LEAVE_BUTTON_CLICK); } } } private void handleOnPlay() { if (mDevices == null || mDevices.isEmpty()) { Log.w(TAG, "active device or device has source is null!"); return; Loading @@ -462,21 +491,21 @@ public class AudioStreamMediaService extends Service { Log.d( TAG, "onPlay() setting volume for device : " + mDevices.get(0) + mDevices.getFirst() + " volume: " + mLatestPositiveVolume.get()); setDeviceVolume(mDevices.get(0), mLatestPositiveVolume.get()); setDeviceVolume(mDevices.getFirst(), mLatestPositiveVolume.get()); } @Override public void onCustomAction(@NonNull String action, Bundle extras) { Log.d(TAG, "onCustomAction: " + action); if (action.equals(LEAVE_BROADCAST_ACTION) && mAudioStreamsHelper != null) { mAudioStreamsHelper.removeSource(mBroadcastId); mMetricsFeatureProvider.action( getApplicationContext(), SettingsEnums.ACTION_AUDIO_STREAM_NOTIFICATION_LEAVE_BUTTON_CLICK); private void handleOnPause() { if (mDevices == null || mDevices.isEmpty()) { Log.w(TAG, "active device or device has source is null!"); return; } Log.d( TAG, "onPause() setting volume for device : " + mDevices.getFirst() + " volume: " + 0); setDeviceVolume(mDevices.getFirst(), /* volume= */ 0); } private void setDeviceVolume(BluetoothDevice device, int volume) { Loading @@ -492,4 +521,3 @@ public class AudioStreamMediaService extends Service { }); } } }