From fa55062510030369730504e1cce98a8829c65a8d Mon Sep 17 00:00:00 2001 From: Greyson Parrelli Date: Fri, 19 Aug 2022 11:30:05 -0400 Subject: [PATCH] Update ExoPlayer to 2.18.1 --- .../voice/VoiceNotePlaybackController.kt | 8 +- .../voice/VoiceNotePlaybackPreparer.java | 2 - .../video/exo/SignalMediaSourceFactory.java | 25 ----- .../voice/VoiceNotePlaybackControllerTest.kt | 10 +- dependencies.gradle | 2 +- gradle/verification-metadata.xml | 106 ++++++++++++++++++ 6 files changed, 114 insertions(+), 39 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/voice/VoiceNotePlaybackController.kt b/app/src/main/java/org/thoughtcrime/securesms/components/voice/VoiceNotePlaybackController.kt index b6821a39c..5584090d7 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/voice/VoiceNotePlaybackController.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/voice/VoiceNotePlaybackController.kt @@ -4,7 +4,6 @@ import android.media.AudioManager import android.os.Bundle import android.os.ResultReceiver import com.google.android.exoplayer2.C -import com.google.android.exoplayer2.ControlDispatcher import com.google.android.exoplayer2.PlaybackParameters import com.google.android.exoplayer2.Player import com.google.android.exoplayer2.SimpleExoPlayer @@ -22,8 +21,7 @@ class VoiceNotePlaybackController( private val TAG = Log.tag(VoiceNoteMediaController::class.java) } - @Suppress("deprecation") - override fun onCommand(p: Player, controlDispatcher: ControlDispatcher, command: String, extras: Bundle?, cb: ResultReceiver?): Boolean { + override fun onCommand(p: Player, command: String, extras: Bundle?, cb: ResultReceiver?): Boolean { Log.d(TAG, "[onCommand] Received player command $command (extras? ${extras != null})") if (command == VoiceNotePlaybackService.ACTION_NEXT_PLAYBACK_SPEED) { @@ -37,8 +35,8 @@ class VoiceNotePlaybackController( val currentStreamType = Util.getStreamTypeForAudioUsage(player.audioAttributes.usage) if (newStreamType != currentStreamType) { val attributes = when (newStreamType) { - AudioManager.STREAM_MUSIC -> AudioAttributes.Builder().setContentType(C.CONTENT_TYPE_MUSIC).setUsage(C.USAGE_MEDIA).build() - AudioManager.STREAM_VOICE_CALL -> AudioAttributes.Builder().setContentType(C.CONTENT_TYPE_SPEECH).setUsage(C.USAGE_VOICE_COMMUNICATION).build() + AudioManager.STREAM_MUSIC -> AudioAttributes.Builder().setContentType(C.AUDIO_CONTENT_TYPE_MUSIC).setUsage(C.USAGE_MEDIA).build() + AudioManager.STREAM_VOICE_CALL -> AudioAttributes.Builder().setContentType(C.AUDIO_CONTENT_TYPE_SPEECH).setUsage(C.USAGE_VOICE_COMMUNICATION).build() else -> throw AssertionError() } diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/voice/VoiceNotePlaybackPreparer.java b/app/src/main/java/org/thoughtcrime/securesms/components/voice/VoiceNotePlaybackPreparer.java index cd5955c7d..b292b4b07 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/voice/VoiceNotePlaybackPreparer.java +++ b/app/src/main/java/org/thoughtcrime/securesms/components/voice/VoiceNotePlaybackPreparer.java @@ -13,7 +13,6 @@ import androidx.annotation.Nullable; import androidx.annotation.WorkerThread; import com.annimon.stream.Stream; -import com.google.android.exoplayer2.ControlDispatcher; import com.google.android.exoplayer2.MediaItem; import com.google.android.exoplayer2.MediaMetadata; import com.google.android.exoplayer2.Player; @@ -291,7 +290,6 @@ final class VoiceNotePlaybackPreparer implements MediaSessionConnector.PlaybackP @SuppressWarnings("deprecation") @Override public boolean onCommand(@NonNull Player player, - @NonNull ControlDispatcher controlDispatcher, @NonNull String command, @Nullable Bundle extras, @Nullable ResultReceiver cb) diff --git a/app/src/main/java/org/thoughtcrime/securesms/video/exo/SignalMediaSourceFactory.java b/app/src/main/java/org/thoughtcrime/securesms/video/exo/SignalMediaSourceFactory.java index 5509005a6..9e59a562a 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/video/exo/SignalMediaSourceFactory.java +++ b/app/src/main/java/org/thoughtcrime/securesms/video/exo/SignalMediaSourceFactory.java @@ -51,31 +51,11 @@ public final class SignalMediaSourceFactory implements MediaSourceFactory { ); } - @Override - public MediaSourceFactory setStreamKeys(@Nullable List streamKeys) { - return progressiveMediaSourceFactory.setStreamKeys(streamKeys); - } - @Override public MediaSourceFactory setDrmSessionManagerProvider(@Nullable DrmSessionManagerProvider drmSessionManagerProvider) { return progressiveMediaSourceFactory.setDrmSessionManagerProvider(drmSessionManagerProvider); } - @Override - public MediaSourceFactory setDrmSessionManager(@Nullable DrmSessionManager drmSessionManager) { - return progressiveMediaSourceFactory.setDrmSessionManager(drmSessionManager); - } - - @Override - public MediaSourceFactory setDrmHttpDataSourceFactory(@Nullable HttpDataSource.Factory drmHttpDataSourceFactory) { - return progressiveMediaSourceFactory.setDrmHttpDataSourceFactory(drmHttpDataSourceFactory); - } - - @Override - public MediaSourceFactory setDrmUserAgent(@Nullable String userAgent) { - return progressiveMediaSourceFactory.setDrmUserAgent(userAgent); - } - @Override public MediaSourceFactory setLoadErrorHandlingPolicy(@Nullable LoadErrorHandlingPolicy loadErrorHandlingPolicy) { return progressiveMediaSourceFactory.setLoadErrorHandlingPolicy(loadErrorHandlingPolicy); @@ -90,9 +70,4 @@ public final class SignalMediaSourceFactory implements MediaSourceFactory { public MediaSource createMediaSource(MediaItem mediaItem) { return progressiveMediaSourceFactory.createMediaSource(mediaItem); } - - @Override - public MediaSource createMediaSource(Uri uri) { - return progressiveMediaSourceFactory.createMediaSource(uri); - } } diff --git a/app/src/test/java/org/thoughtcrime/securesms/components/voice/VoiceNotePlaybackControllerTest.kt b/app/src/test/java/org/thoughtcrime/securesms/components/voice/VoiceNotePlaybackControllerTest.kt index 53f7f6930..df02f3401 100644 --- a/app/src/test/java/org/thoughtcrime/securesms/components/voice/VoiceNotePlaybackControllerTest.kt +++ b/app/src/test/java/org/thoughtcrime/securesms/components/voice/VoiceNotePlaybackControllerTest.kt @@ -5,7 +5,6 @@ import android.media.AudioManager import android.os.Bundle import android.support.v4.media.session.MediaSessionCompat import com.google.android.exoplayer2.C -import com.google.android.exoplayer2.ControlDispatcher import com.google.android.exoplayer2.SimpleExoPlayer import com.google.android.exoplayer2.audio.AudioAttributes import org.junit.Test @@ -27,7 +26,6 @@ class VoiceNotePlaybackControllerTest { private val playbackParameters = VoiceNotePlaybackParameters(mediaSessionCompat) private val mediaAudioAttributes = AudioAttributes.Builder().setContentType(C.CONTENT_TYPE_MUSIC).setUsage(C.USAGE_MEDIA).build() private val callAudioAttributes = AudioAttributes.Builder().setContentType(C.CONTENT_TYPE_SPEECH).setUsage(C.USAGE_VOICE_COMMUNICATION).build() - private val controlDispatcher = mock(ControlDispatcher::class.java) private val player: SimpleExoPlayer = mock(SimpleExoPlayer::class.java) private val testSubject = VoiceNotePlaybackController(player, playbackParameters) @@ -41,7 +39,7 @@ class VoiceNotePlaybackControllerTest { val expected = callAudioAttributes // WHEN - testSubject.onCommand(player, controlDispatcher, command, extras, null) + testSubject.onCommand(player, command, extras, null) // THEN verify(player).playWhenReady = false @@ -59,7 +57,7 @@ class VoiceNotePlaybackControllerTest { val expected = mediaAudioAttributes // WHEN - testSubject.onCommand(player, controlDispatcher, command, extras, null) + testSubject.onCommand(player, command, extras, null) // THEN verify(player).playWhenReady = false @@ -76,7 +74,7 @@ class VoiceNotePlaybackControllerTest { val extras = Bundle().apply { putInt(VoiceNotePlaybackService.ACTION_SET_AUDIO_STREAM, AudioManager.STREAM_VOICE_CALL) } // WHEN - testSubject.onCommand(player, controlDispatcher, command, extras, null) + testSubject.onCommand(player, command, extras, null) // THEN verify(player, Mockito.never()).playWhenReady = anyBoolean() @@ -92,7 +90,7 @@ class VoiceNotePlaybackControllerTest { val extras = Bundle().apply { putInt(VoiceNotePlaybackService.ACTION_SET_AUDIO_STREAM, AudioManager.STREAM_MUSIC) } // WHEN - testSubject.onCommand(player, controlDispatcher, command, extras, null) + testSubject.onCommand(player, command, extras, null) // THEN verify(player, Mockito.never()).playWhenReady = anyBoolean() diff --git a/dependencies.gradle b/dependencies.gradle index 958ff0300..1bb49afab 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -5,7 +5,7 @@ dependencyResolutionManagement { versionCatalogs { libs { version('libsignal-client', '0.20.0') - version('exoplayer', '2.15.0') + version('exoplayer', '2.18.1') version('androidx-camera', '1.1.0') version('androidx-lifecycle', '2.3.1') version('mp4parser', '1.9.39') diff --git a/gradle/verification-metadata.xml b/gradle/verification-metadata.xml index c54340cde..cc7764af7 100644 --- a/gradle/verification-metadata.xml +++ b/gradle/verification-metadata.xml @@ -234,6 +234,22 @@ https://docs.gradle.org/current/userguide/dependency_verification.html + + + + + + + + + + + + + + + + @@ -554,6 +570,14 @@ https://docs.gradle.org/current/userguide/dependency_verification.html + + + + + + + + @@ -1496,6 +1520,14 @@ https://docs.gradle.org/current/userguide/dependency_verification.html + + + + + + + + @@ -1504,6 +1536,38 @@ https://docs.gradle.org/current/userguide/dependency_verification.html + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1512,6 +1576,14 @@ https://docs.gradle.org/current/userguide/dependency_verification.html + + + + + + + + @@ -1520,6 +1592,14 @@ https://docs.gradle.org/current/userguide/dependency_verification.html + + + + + + + + @@ -1528,6 +1608,14 @@ https://docs.gradle.org/current/userguide/dependency_verification.html + + + + + + + + @@ -1686,6 +1774,11 @@ https://docs.gradle.org/current/userguide/dependency_verification.html + + + + + @@ -1781,6 +1874,11 @@ https://docs.gradle.org/current/userguide/dependency_verification.html + + + + + @@ -2623,6 +2721,14 @@ https://docs.gradle.org/current/userguide/dependency_verification.html + + + + + + + +