From 8be1e2df0cb32c5530e006a6edd79a900103a823 Mon Sep 17 00:00:00 2001 From: Alex Kim Date: Thu, 10 Oct 2024 23:40:01 +1100 Subject: [PATCH] Push to remote repo --- app.json | 3 +- app/(auth)/(tabs)/(home)/index.tsx | 47 ++---------------- bun.lockb | Bin 621635 -> 626558 bytes .../.gradle/8.9/checksums/checksums.lock | Bin 0 -> 17 bytes .../8.9/dependencies-accessors/gc.properties | 0 .../.gradle/8.9/fileChanges/last-build.bin | Bin 0 -> 1 bytes .../.gradle/8.9/fileHashes/fileHashes.lock | Bin 0 -> 17 bytes .../android/.gradle/8.9/gc.properties | 0 .../buildOutputCleanup.lock | Bin 0 -> 17 bytes .../buildOutputCleanup/cache.properties | 2 + .../android/.gradle/vcs-1/gc.properties | 0 modules/vlc-player/android/build.gradle | 43 ++++++++++++++++ .../android/src/main/AndroidManifest.xml | 2 + .../expo/modules/vlcplayer/VlcPlayerModule.kt | 47 ++++++++++++++++++ .../expo/modules/vlcplayer/VlcPlayerView.kt | 7 +++ modules/vlc-player/expo-module.config.json | 9 ++++ modules/vlc-player/index.ts | 26 ++++++++++ modules/vlc-player/ios/VlcPlayer.podspec | 22 ++++++++ modules/vlc-player/ios/VlcPlayerModule.swift | 44 ++++++++++++++++ modules/vlc-player/ios/VlcPlayerView.swift | 7 +++ modules/vlc-player/src/VlcPlayer.types.ts | 7 +++ modules/vlc-player/src/VlcPlayerModule.ts | 5 ++ modules/vlc-player/src/VlcPlayerModule.web.ts | 13 +++++ modules/vlc-player/src/VlcPlayerView.tsx | 11 ++++ modules/vlc-player/src/VlcPlayerView.web.tsx | 11 ++++ package.json | 7 +-- 26 files changed, 266 insertions(+), 47 deletions(-) create mode 100644 modules/vlc-player/android/.gradle/8.9/checksums/checksums.lock create mode 100644 modules/vlc-player/android/.gradle/8.9/dependencies-accessors/gc.properties create mode 100644 modules/vlc-player/android/.gradle/8.9/fileChanges/last-build.bin create mode 100644 modules/vlc-player/android/.gradle/8.9/fileHashes/fileHashes.lock create mode 100644 modules/vlc-player/android/.gradle/8.9/gc.properties create mode 100644 modules/vlc-player/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock create mode 100644 modules/vlc-player/android/.gradle/buildOutputCleanup/cache.properties create mode 100644 modules/vlc-player/android/.gradle/vcs-1/gc.properties create mode 100644 modules/vlc-player/android/build.gradle create mode 100644 modules/vlc-player/android/src/main/AndroidManifest.xml create mode 100644 modules/vlc-player/android/src/main/java/expo/modules/vlcplayer/VlcPlayerModule.kt create mode 100644 modules/vlc-player/android/src/main/java/expo/modules/vlcplayer/VlcPlayerView.kt create mode 100644 modules/vlc-player/expo-module.config.json create mode 100644 modules/vlc-player/index.ts create mode 100644 modules/vlc-player/ios/VlcPlayer.podspec create mode 100644 modules/vlc-player/ios/VlcPlayerModule.swift create mode 100644 modules/vlc-player/ios/VlcPlayerView.swift create mode 100644 modules/vlc-player/src/VlcPlayer.types.ts create mode 100644 modules/vlc-player/src/VlcPlayerModule.ts create mode 100644 modules/vlc-player/src/VlcPlayerModule.web.ts create mode 100644 modules/vlc-player/src/VlcPlayerView.tsx create mode 100644 modules/vlc-player/src/VlcPlayerView.web.tsx diff --git a/app.json b/app.json index da2cee2c..e2f796d0 100644 --- a/app.json +++ b/app.json @@ -106,7 +106,8 @@ { "motionPermission": "Allow Streamyfin to access your device motion for landscape video watching." } - ] + ], + "expo-asset" ], "experiments": { "typedRoutes": true diff --git a/app/(auth)/(tabs)/(home)/index.tsx b/app/(auth)/(tabs)/(home)/index.tsx index 9aecff51..98bfc01e 100644 --- a/app/(auth)/(tabs)/(home)/index.tsx +++ b/app/(auth)/(tabs)/(home)/index.tsx @@ -6,6 +6,7 @@ import { Loader } from "@/components/Loader"; import { MediaListSection } from "@/components/medialists/MediaListSection"; import { Colors } from "@/constants/Colors"; import { TAB_HEIGHT } from "@/constants/Values"; +import { hello } from "@/modules/vlc-player"; import { useDownload } from "@/providers/DownloadProvider"; import { apiAtom, userAtom } from "@/providers/JellyfinProvider"; import { useSettings } from "@/utils/atoms/settings"; @@ -382,49 +383,9 @@ export default function index() { ); return ( - - } - key={"home"} - contentContainerStyle={{ - paddingLeft: insets.left, - paddingRight: insets.right, - paddingBottom: 16, - }} - style={{ - marginBottom: TAB_HEIGHT, - }} - > - - - - {sections.map((section, index) => { - if (section.type === "ScrollingCollectionList") { - return ( - - ); - } else if (section.type === "MediaListSection") { - return ( - - ); - } - return null; - })} - - + + {hello()} + ); } diff --git a/bun.lockb b/bun.lockb index a101897e475cb2332bf53693af8ca2ddfc4e6533..b1e3bd2f96155768278c1d8f69daa4edd39b5c94 100755 GIT binary patch delta 82676 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 literal 0 HcmV?d00001 diff --git a/modules/vlc-player/android/.gradle/buildOutputCleanup/cache.properties b/modules/vlc-player/android/.gradle/buildOutputCleanup/cache.properties new file mode 100644 index 00000000..799d484f --- /dev/null +++ b/modules/vlc-player/android/.gradle/buildOutputCleanup/cache.properties @@ -0,0 +1,2 @@ +#Thu Oct 10 22:31:55 AEDT 2024 +gradle.version=8.9 diff --git a/modules/vlc-player/android/.gradle/vcs-1/gc.properties b/modules/vlc-player/android/.gradle/vcs-1/gc.properties new file mode 100644 index 00000000..e69de29b diff --git a/modules/vlc-player/android/build.gradle b/modules/vlc-player/android/build.gradle new file mode 100644 index 00000000..ccc7cf47 --- /dev/null +++ b/modules/vlc-player/android/build.gradle @@ -0,0 +1,43 @@ +apply plugin: 'com.android.library' + +group = 'expo.modules.vlcplayer' +version = '0.6.0' + +def expoModulesCorePlugin = new File(project(":expo-modules-core").projectDir.absolutePath, "ExpoModulesCorePlugin.gradle") +apply from: expoModulesCorePlugin +applyKotlinExpoModulesCorePlugin() +useCoreDependencies() +useExpoPublishing() + +// If you want to use the managed Android SDK versions from expo-modules-core, set this to true. +// The Android SDK versions will be bumped from time to time in SDK releases and may introduce breaking changes in your module code. +// Most of the time, you may like to manage the Android SDK versions yourself. +def useManagedAndroidSdkVersions = false +if (useManagedAndroidSdkVersions) { + useDefaultAndroidSdkVersions() +} else { + buildscript { + // Simple helper that allows the root project to override versions declared by this library. + ext.safeExtGet = { prop, fallback -> + rootProject.ext.has(prop) ? rootProject.ext.get(prop) : fallback + } + } + project.android { + compileSdkVersion safeExtGet("compileSdkVersion", 34) + defaultConfig { + minSdkVersion safeExtGet("minSdkVersion", 21) + targetSdkVersion safeExtGet("targetSdkVersion", 34) + } + } +} + +android { + namespace "expo.modules.vlcplayer" + defaultConfig { + versionCode 1 + versionName "0.6.0" + } + lintOptions { + abortOnError false + } +} diff --git a/modules/vlc-player/android/src/main/AndroidManifest.xml b/modules/vlc-player/android/src/main/AndroidManifest.xml new file mode 100644 index 00000000..bdae66c8 --- /dev/null +++ b/modules/vlc-player/android/src/main/AndroidManifest.xml @@ -0,0 +1,2 @@ + + diff --git a/modules/vlc-player/android/src/main/java/expo/modules/vlcplayer/VlcPlayerModule.kt b/modules/vlc-player/android/src/main/java/expo/modules/vlcplayer/VlcPlayerModule.kt new file mode 100644 index 00000000..729ccb57 --- /dev/null +++ b/modules/vlc-player/android/src/main/java/expo/modules/vlcplayer/VlcPlayerModule.kt @@ -0,0 +1,47 @@ +package expo.modules.vlcplayer + +import expo.modules.kotlin.modules.Module +import expo.modules.kotlin.modules.ModuleDefinition + +class VlcPlayerModule : Module() { + // Each module class must implement the definition function. The definition consists of components + // that describes the module's functionality and behavior. + // See https://docs.expo.dev/modules/module-api for more details about available components. + override fun definition() = ModuleDefinition { + // Sets the name of the module that JavaScript code will use to refer to the module. Takes a string as an argument. + // Can be inferred from module's class name, but it's recommended to set it explicitly for clarity. + // The module will be accessible from `requireNativeModule('VlcPlayer')` in JavaScript. + Name("VlcPlayer") + + // Sets constant properties on the module. Can take a dictionary or a closure that returns a dictionary. + Constants( + "PI" to Math.PI + ) + + // Defines event names that the module can send to JavaScript. + Events("onChange") + + // Defines a JavaScript synchronous function that runs the native code on the JavaScript thread. + Function("hello") { + "Hello world! 👋" + } + + // Defines a JavaScript function that always returns a Promise and whose native code + // is by default dispatched on the different thread than the JavaScript runtime runs on. + AsyncFunction("setValueAsync") { value: String -> + // Send an event to JavaScript. + sendEvent("onChange", mapOf( + "value" to value + )) + } + + // Enables the module to be used as a native view. Definition components that are accepted as part of + // the view definition: Prop, Events. + View(VlcPlayerView::class) { + // Defines a setter for the `name` prop. + Prop("name") { view: VlcPlayerView, prop: String -> + println(prop) + } + } + } +} diff --git a/modules/vlc-player/android/src/main/java/expo/modules/vlcplayer/VlcPlayerView.kt b/modules/vlc-player/android/src/main/java/expo/modules/vlcplayer/VlcPlayerView.kt new file mode 100644 index 00000000..3f0855ca --- /dev/null +++ b/modules/vlc-player/android/src/main/java/expo/modules/vlcplayer/VlcPlayerView.kt @@ -0,0 +1,7 @@ +package expo.modules.vlcplayer + +import android.content.Context +import expo.modules.kotlin.AppContext +import expo.modules.kotlin.views.ExpoView + +class VlcPlayerView(context: Context, appContext: AppContext) : ExpoView(context, appContext) diff --git a/modules/vlc-player/expo-module.config.json b/modules/vlc-player/expo-module.config.json new file mode 100644 index 00000000..2fbd3167 --- /dev/null +++ b/modules/vlc-player/expo-module.config.json @@ -0,0 +1,9 @@ +{ + "platforms": ["ios", "tvos", "android", "web"], + "ios": { + "modules": ["VlcPlayerModule"] + }, + "android": { + "modules": ["expo.modules.vlcplayer.VlcPlayerModule"] + } +} diff --git a/modules/vlc-player/index.ts b/modules/vlc-player/index.ts new file mode 100644 index 00000000..3d17dbea --- /dev/null +++ b/modules/vlc-player/index.ts @@ -0,0 +1,26 @@ +import { NativeModulesProxy, EventEmitter, Subscription } from 'expo-modules-core'; + +// Import the native module. On web, it will be resolved to VlcPlayer.web.ts +// and on native platforms to VlcPlayer.ts +import VlcPlayerModule from './src/VlcPlayerModule'; +import VlcPlayerView from './src/VlcPlayerView'; +import { ChangeEventPayload, VlcPlayerViewProps } from './src/VlcPlayer.types'; + +// Get the native constant value. +export const PI = VlcPlayerModule.PI; + +export function hello(): string { + return VlcPlayerModule.hello(); +} + +export async function setValueAsync(value: string) { + return await VlcPlayerModule.setValueAsync(value); +} + +const emitter = new EventEmitter(VlcPlayerModule ?? NativeModulesProxy.VlcPlayer); + +export function addChangeListener(listener: (event: ChangeEventPayload) => void): Subscription { + return emitter.addListener('onChange', listener); +} + +export { VlcPlayerView, VlcPlayerViewProps, ChangeEventPayload }; diff --git a/modules/vlc-player/ios/VlcPlayer.podspec b/modules/vlc-player/ios/VlcPlayer.podspec new file mode 100644 index 00000000..d3222c6a --- /dev/null +++ b/modules/vlc-player/ios/VlcPlayer.podspec @@ -0,0 +1,22 @@ +Pod::Spec.new do |s| + s.name = 'VlcPlayer' + s.version = '1.0.0' + s.summary = 'A sample project summary' + s.description = 'A sample project description' + s.author = '' + s.homepage = 'https://docs.expo.dev/modules/' + s.platforms = { :ios => '13.4', :tvos => '13.4' } + s.source = { git: '' } + s.static_framework = true + + s.dependency 'ExpoModulesCore' + s.dependency 'MobileVLCKit' + + # Swift/Objective-C compatibility + s.pod_target_xcconfig = { + 'DEFINES_MODULE' => 'YES', + 'SWIFT_COMPILATION_MODE' => 'wholemodule' + } + + s.source_files = "**/*.{h,m,mm,swift,hpp,cpp}" +end diff --git a/modules/vlc-player/ios/VlcPlayerModule.swift b/modules/vlc-player/ios/VlcPlayerModule.swift new file mode 100644 index 00000000..4097921d --- /dev/null +++ b/modules/vlc-player/ios/VlcPlayerModule.swift @@ -0,0 +1,44 @@ +import ExpoModulesCore + +public class VlcPlayerModule: Module { + // Each module class must implement the definition function. The definition consists of components + // that describes the module's functionality and behavior. + // See https://docs.expo.dev/modules/module-api for more details about available components. + public func definition() -> ModuleDefinition { + // Sets the name of the module that JavaScript code will use to refer to the module. Takes a string as an argument. + // Can be inferred from module's class name, but it's recommended to set it explicitly for clarity. + // The module will be accessible from `requireNativeModule('VlcPlayer')` in JavaScript. + Name("VlcPlayer") + + // Sets constant properties on the module. Can take a dictionary or a closure that returns a dictionary. + Constants([ + "PI": Double.pi + ]) + + // Defines event names that the module can send to JavaScript. + Events("onChange") + + // Defines a JavaScript synchronous function that runs the native code on the JavaScript thread. + Function("hello") { + return "Hello world! 👋" + } + + // Defines a JavaScript function that always returns a Promise and whose native code + // is by default dispatched on the different thread than the JavaScript runtime runs on. + AsyncFunction("setValueAsync") { (value: String) in + // Send an event to JavaScript. + self.sendEvent("onChange", [ + "value": value + ]) + } + + // Enables the module to be used as a native view. Definition components that are accepted as part of the + // view definition: Prop, Events. + View(VlcPlayerView.self) { + // Defines a setter for the `name` prop. + Prop("name") { (view: VlcPlayerView, prop: String) in + print(prop) + } + } + } +} diff --git a/modules/vlc-player/ios/VlcPlayerView.swift b/modules/vlc-player/ios/VlcPlayerView.swift new file mode 100644 index 00000000..70c17d44 --- /dev/null +++ b/modules/vlc-player/ios/VlcPlayerView.swift @@ -0,0 +1,7 @@ +import ExpoModulesCore + +// This view will be used as a native component. Make sure to inherit from `ExpoView` +// to apply the proper styling (e.g. border radius and shadows). +class VlcPlayerView: ExpoView { + +} diff --git a/modules/vlc-player/src/VlcPlayer.types.ts b/modules/vlc-player/src/VlcPlayer.types.ts new file mode 100644 index 00000000..6a86dd3f --- /dev/null +++ b/modules/vlc-player/src/VlcPlayer.types.ts @@ -0,0 +1,7 @@ +export type ChangeEventPayload = { + value: string; +}; + +export type VlcPlayerViewProps = { + name: string; +}; diff --git a/modules/vlc-player/src/VlcPlayerModule.ts b/modules/vlc-player/src/VlcPlayerModule.ts new file mode 100644 index 00000000..1db9b184 --- /dev/null +++ b/modules/vlc-player/src/VlcPlayerModule.ts @@ -0,0 +1,5 @@ +import { requireNativeModule } from 'expo-modules-core'; + +// It loads the native module object from the JSI or falls back to +// the bridge module (from NativeModulesProxy) if the remote debugger is on. +export default requireNativeModule('VlcPlayer'); diff --git a/modules/vlc-player/src/VlcPlayerModule.web.ts b/modules/vlc-player/src/VlcPlayerModule.web.ts new file mode 100644 index 00000000..be76495b --- /dev/null +++ b/modules/vlc-player/src/VlcPlayerModule.web.ts @@ -0,0 +1,13 @@ +import { EventEmitter } from 'expo-modules-core'; + +const emitter = new EventEmitter({} as any); + +export default { + PI: Math.PI, + async setValueAsync(value: string): Promise { + emitter.emit('onChange', { value }); + }, + hello() { + return 'Hello world! 👋'; + }, +}; diff --git a/modules/vlc-player/src/VlcPlayerView.tsx b/modules/vlc-player/src/VlcPlayerView.tsx new file mode 100644 index 00000000..50a7547a --- /dev/null +++ b/modules/vlc-player/src/VlcPlayerView.tsx @@ -0,0 +1,11 @@ +import { requireNativeViewManager } from 'expo-modules-core'; +import * as React from 'react'; + +import { VlcPlayerViewProps } from './VlcPlayer.types'; + +const NativeView: React.ComponentType = + requireNativeViewManager('VlcPlayer'); + +export default function VlcPlayerView(props: VlcPlayerViewProps) { + return ; +} diff --git a/modules/vlc-player/src/VlcPlayerView.web.tsx b/modules/vlc-player/src/VlcPlayerView.web.tsx new file mode 100644 index 00000000..d00682d7 --- /dev/null +++ b/modules/vlc-player/src/VlcPlayerView.web.tsx @@ -0,0 +1,11 @@ +import * as React from 'react'; + +import { VlcPlayerViewProps } from './VlcPlayer.types'; + +export default function VlcPlayerView(props: VlcPlayerViewProps) { + return ( +
+ {props.name} +
+ ); +} diff --git a/package.json b/package.json index ed37651a..edb7f16f 100644 --- a/package.json +++ b/package.json @@ -32,12 +32,13 @@ "@types/lodash": "^4.17.9", "@types/uuid": "^10.0.0", "axios": "^1.7.7", - "expo": "~51.0.36", + "expo": "~51.0.37", + "expo-asset": "~10.0.10", "expo-background-fetch": "~12.0.1", "expo-blur": "~13.0.2", "expo-build-properties": "~0.12.5", "expo-constants": "~16.0.2", - "expo-dev-client": "~4.0.27", + "expo-dev-client": "~4.0.28", "expo-device": "~6.0.2", "expo-font": "~12.0.10", "expo-haptics": "~13.0.1", @@ -55,7 +56,7 @@ "expo-status-bar": "~1.12.1", "expo-system-ui": "~3.0.7", "expo-task-manager": "~11.8.2", - "expo-updates": "~0.25.26", + "expo-updates": "~0.25.27", "expo-web-browser": "~13.0.3", "ffmpeg-kit-react-native": "^6.0.2", "install": "^0.13.0",