From 702a0d9d327f911b832eb9cf37ef8c29f95bbfc1 Mon Sep 17 00:00:00 2001 From: Seyed Mostafa Hasani Date: Sun, 30 Jun 2024 19:04:28 +0330 Subject: [PATCH] refactor(android): migrate ReactVideoPackage to Kotlin (#3955) --- .../brentvatne/react/ReactVideoPackage.java | 50 ------------------- .../com/brentvatne/react/ReactVideoPackage.kt | 29 +++++++++++ 2 files changed, 29 insertions(+), 50 deletions(-) delete mode 100644 android/src/main/java/com/brentvatne/react/ReactVideoPackage.java create mode 100644 android/src/main/java/com/brentvatne/react/ReactVideoPackage.kt diff --git a/android/src/main/java/com/brentvatne/react/ReactVideoPackage.java b/android/src/main/java/com/brentvatne/react/ReactVideoPackage.java deleted file mode 100644 index 6f934858..00000000 --- a/android/src/main/java/com/brentvatne/react/ReactVideoPackage.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.brentvatne.react; - -import com.brentvatne.exoplayer.DefaultReactExoplayerConfig; -import com.brentvatne.exoplayer.ReactExoplayerConfig; -import com.brentvatne.exoplayer.ReactExoplayerViewManager; -import com.facebook.react.ReactPackage; -import com.facebook.react.bridge.JavaScriptModule; -import com.facebook.react.bridge.NativeModule; -import com.facebook.react.bridge.ReactApplicationContext; -import com.facebook.react.uimanager.ViewManager; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; - -public class ReactVideoPackage implements ReactPackage { - - private ReactExoplayerConfig config; - - public ReactVideoPackage() { - } - - public ReactVideoPackage(ReactExoplayerConfig config) { - this.config = config; - } - - @Override - public List createNativeModules(ReactApplicationContext reactContext) { - List modules = new ArrayList(); - - modules.add(new VideoDecoderPropertiesModule(reactContext)); - modules.add(new VideoManagerModule(reactContext)); - - return modules; - } - - // Deprecated RN 0.47 - public List> createJSModules() { - return Collections.emptyList(); - } - - - @Override - public List createViewManagers(ReactApplicationContext reactContext) { - if (config == null) { - config = new DefaultReactExoplayerConfig(reactContext); - } - return Collections.singletonList(new ReactExoplayerViewManager(config)); - } -} diff --git a/android/src/main/java/com/brentvatne/react/ReactVideoPackage.kt b/android/src/main/java/com/brentvatne/react/ReactVideoPackage.kt new file mode 100644 index 00000000..99aed985 --- /dev/null +++ b/android/src/main/java/com/brentvatne/react/ReactVideoPackage.kt @@ -0,0 +1,29 @@ +package com.brentvatne.react + +import com.brentvatne.exoplayer.DefaultReactExoplayerConfig +import com.brentvatne.exoplayer.ReactExoplayerConfig +import com.brentvatne.exoplayer.ReactExoplayerViewManager +import com.facebook.react.ReactPackage +import com.facebook.react.bridge.JavaScriptModule +import com.facebook.react.bridge.NativeModule +import com.facebook.react.bridge.ReactApplicationContext +import com.facebook.react.uimanager.ViewManager + +class ReactVideoPackage @JvmOverloads constructor(private var config: ReactExoplayerConfig? = null) : ReactPackage { + + override fun createNativeModules(reactContext: ReactApplicationContext): List = + listOf( + VideoDecoderPropertiesModule(reactContext), + VideoManagerModule(reactContext) + ) + + // Deprecated RN 0.47 + fun createJSModules(): List> = emptyList() + + override fun createViewManagers(reactContext: ReactApplicationContext): List> { + if (config == null) { + config = DefaultReactExoplayerConfig(reactContext) + } + return listOf(ReactExoplayerViewManager(config!!)) + } +}