Explorar o código

Merge pull request #3254 from parneet-guraya/technicalDebt/3152/migrateToMedia3

migrate to media3
Marcel Hibbe hai 1 ano
pai
achega
9a60e3e7fc

+ 4 - 1
app/build.gradle

@@ -152,6 +152,7 @@ ext {
     roomVersion = "2.5.2"
     workVersion = "2.8.1"
     espressoVersion = "3.5.1"
+    media3_version = "1.1.1"
 }
 
 configurations.all {
@@ -263,7 +264,9 @@ dependencies {
     implementation "com.afollestad.material-dialogs:lifecycle:${materialDialogsVersion}"
 
     implementation 'com.google.code.gson:gson:2.10.1'
-    implementation 'com.google.android.exoplayer:exoplayer:2.19.0'
+
+    implementation "androidx.media3:media3-exoplayer:$media3_version"
+    implementation "androidx.media3:media3-ui:$media3_version"
 
     implementation 'com.github.chrisbanes:PhotoView:2.3.0'
     implementation 'pl.droidsonroids.gif:android-gif-drawable:1.2.27'

+ 10 - 7
app/src/main/java/com/nextcloud/talk/activities/FullScreenMediaActivity.kt

@@ -30,13 +30,15 @@ import android.view.Menu
 import android.view.MenuItem
 import android.view.View
 import android.view.WindowManager
+import androidx.annotation.OptIn
 import androidx.appcompat.app.AppCompatActivity
 import androidx.core.content.FileProvider
+import androidx.media3.common.MediaItem
+import androidx.media3.common.Player
+import androidx.media3.common.util.UnstableApi
+import androidx.media3.exoplayer.ExoPlayer
+import androidx.media3.ui.PlayerView
 import autodagger.AutoInjector
-import com.google.android.exoplayer2.MediaItem
-import com.google.android.exoplayer2.Player
-import com.google.android.exoplayer2.SimpleExoPlayer
-import com.google.android.exoplayer2.ui.StyledPlayerView
 import com.nextcloud.talk.BuildConfig
 import com.nextcloud.talk.R
 import com.nextcloud.talk.application.NextcloudTalkApplication
@@ -49,7 +51,7 @@ class FullScreenMediaActivity : AppCompatActivity(), Player.Listener {
     lateinit var binding: ActivityFullScreenMediaBinding
 
     private lateinit var path: String
-    private lateinit var player: SimpleExoPlayer
+    private lateinit var player: ExoPlayer
 
     override fun onCreateOptionsMenu(menu: Menu): Boolean {
         menuInflater.inflate(R.menu.menu_preview, menu)
@@ -81,6 +83,7 @@ class FullScreenMediaActivity : AppCompatActivity(), Player.Listener {
         }
     }
 
+    @OptIn(UnstableApi::class)
     override fun onCreate(savedInstanceState: Bundle?) {
         super.onCreate(savedInstanceState)
 
@@ -104,7 +107,7 @@ class FullScreenMediaActivity : AppCompatActivity(), Player.Listener {
         }
 
         binding.playerView.setControllerVisibilityListener(
-            StyledPlayerView.ControllerVisibilityListener { v ->
+            PlayerView.ControllerVisibilityListener { v ->
                 if (v != 0) {
                     hideSystemUI()
                     supportActionBar?.hide()
@@ -132,7 +135,7 @@ class FullScreenMediaActivity : AppCompatActivity(), Player.Listener {
     }
 
     private fun initializePlayer() {
-        player = SimpleExoPlayer.Builder(applicationContext).build()
+        player = ExoPlayer.Builder(applicationContext).build()
         binding.playerView.player = player
         player.playWhenReady = true
         player.addListener(this)

+ 1 - 1
app/src/main/res/layout/activity_full_screen_media.xml

@@ -36,7 +36,7 @@
         android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
         app:popupTheme="@style/ThemeOverlay.AppCompat.Dark" />
 
-    <com.google.android.exoplayer2.ui.StyledPlayerView
+    <androidx.media3.ui.PlayerView
         android:id="@+id/player_view"
         android:layout_width="match_parent"
         android:layout_height="match_parent"