diff --git a/front/apps/mobile/app.json b/front/apps/mobile/app.json index bb736b11..b5485261 100644 --- a/front/apps/mobile/app.json +++ b/front/apps/mobile/app.json @@ -21,6 +21,7 @@ "supportsTablet": true }, "android": { + "package": "moe.sdg.kyoo", "adaptiveIcon": { "foregroundImage": "./assets/adaptive-icon.png", "backgroundColor": "#FFFFFF" @@ -28,6 +29,21 @@ }, "web": { "favicon": "./assets/favicon.png" - } + }, + "extra": { + "eas": { + "projectId": "55de6b52-c649-4a15-9a45-569ff5ed036c" + } + }, + "plugins": [ + [ + "expo-build-properties", + { + "android": { + "compileSdkVersion": 31 + } + } + ] + ] } } diff --git a/front/apps/mobile/eas.json b/front/apps/mobile/eas.json new file mode 100644 index 00000000..6ecbe0d0 --- /dev/null +++ b/front/apps/mobile/eas.json @@ -0,0 +1,18 @@ +{ + "cli": { + "version": ">= 3.0.0" + }, + "build": { + "development": { + "developmentClient": true, + "distribution": "internal" + }, + "preview": { + "distribution": "internal" + }, + "production": {} + }, + "submit": { + "production": {} + } +} diff --git a/front/apps/mobile/package.json b/front/apps/mobile/package.json index 97d5dd9c..69fcf26a 100644 --- a/front/apps/mobile/package.json +++ b/front/apps/mobile/package.json @@ -16,10 +16,11 @@ "@tanstack/react-query": "^4.19.1", "babel-plugin-transform-inline-environment-variables": "^0.4.4", "expo": "^47.0.0", - "expo-av": "file:///home/anonymus-raccoon/projects/expo/packages/expo-av/", + "expo-build-properties": "~0.4.1", "expo-constants": "~14.0.2", + "expo-dev-client": "~2.0.1", "expo-linear-gradient": "~12.0.1", - "expo-linking": "~3.2.3", + "expo-linking": "~3.3.0", "expo-localization": "~14.0.0", "expo-navigation-bar": "~2.0.1", "expo-router": "^0.0.36", @@ -36,6 +37,7 @@ "react-native-safe-area-context": "4.4.1", "react-native-screens": "~3.18.0", "react-native-svg": "13.4.0", + "react-native-video": "alpha", "yoshiki": "0.3.2" }, "devDependencies": { @@ -45,5 +47,8 @@ "react-native-svg-transformer": "^1.0.0", "typescript": "^4.6.3" }, + "installConfig": { + "hoistingLimits": "workspaces" + }, "private": true } diff --git a/front/apps/web/package.json b/front/apps/web/package.json index 1ee0c3af..1d69f907 100644 --- a/front/apps/web/package.json +++ b/front/apps/web/package.json @@ -24,7 +24,6 @@ "@tanstack/react-query": "^4.19.1", "clsx": "^1.2.1", "csstype": "^3.1.1", - "expo-av": "file:///home/anonymus-raccoon/projects/expo/packages/expo-av/", "expo-linear-gradient": "^12.0.1", "hls.js": "^1.2.8", "i18next": "^22.0.6", @@ -40,6 +39,7 @@ "react-i18next": "^12.0.0", "react-native-reanimated": "^2.13.0", "react-native-svg": "13.4.0", + "react-native-video": "alpha", "react-native-web": "^0.18.10", "solito": "^2.0.5", "superjson": "^1.11.0", @@ -51,6 +51,7 @@ "@types/node": "18.11.9", "@types/react": "18.0.25", "@types/react-dom": "18.0.9", + "@types/react-native-video": "^5.0.14", "copy-webpack-plugin": "^11.0.0", "eslint": "^8.30.0", "eslint-config-next": "13.0.5", diff --git a/front/eas.json b/front/eas.json new file mode 100644 index 00000000..7e1e78cd --- /dev/null +++ b/front/eas.json @@ -0,0 +1,18 @@ +{ + "cli": { + "version": ">= 3.1.1" + }, + "build": { + "development": { + "developmentClient": true, + "distribution": "internal" + }, + "preview": { + "distribution": "internal" + }, + "production": {} + }, + "submit": { + "production": {} + } +} diff --git a/front/packages/models/src/traits/images.ts b/front/packages/models/src/traits/images.ts index c733d832..8a712c26 100644 --- a/front/packages/models/src/traits/images.ts +++ b/front/packages/models/src/traits/images.ts @@ -21,8 +21,10 @@ import { Platform } from "react-native"; import { z } from "zod"; -export const imageFn = (url: string) => - Platform.OS === "web" ? `/api/${url}` : process.env.PUBLIC_BACK_URL + url; +export const imageFn = (url: string) => { + console.log(process.env.PUBLIC_BACK_URL) + return Platform.OS === "web" ? `/api/${url}` : process.env.PUBLIC_BACK_URL + url; +} export const ImagesP = z.object({ /** diff --git a/front/packages/ui/src/player/state.tsx b/front/packages/ui/src/player/state.tsx index 8969111b..2fe5b468 100644 --- a/front/packages/ui/src/player/state.tsx +++ b/front/packages/ui/src/player/state.tsx @@ -22,7 +22,7 @@ import { Font, Track, WatchItem } from "@kyoo/models"; import { atom, useAtom, useAtomValue, useSetAtom } from "jotai"; import { RefObject, useEffect, useLayoutEffect, useRef, useState } from "react"; import { createParam } from "solito"; -import { ResizeMode, Video as NativeVideo, VideoProps } from "expo-av"; +import NativeVideo, { VideoProperties as VideoProps } from "react-native-video"; import SubtitleOctopus from "libass-wasm"; import Hls from "hls.js"; import { bakedAtom } from "../jotai-utils"; @@ -92,9 +92,9 @@ export const Video = ({ const setPrivateProgress = useSetAtom(privateProgressAtom); const setBuffered = useSetAtom(bufferedAtom); const setDuration = useSetAtom(durationAtom); - useEffect(() => { - ref.current?.setStatusAsync({ positionMillis: publicProgress }); - }, [publicProgress]); + // useEffect(() => { + // ref.current?.setStatusAsync({ positionMillis: publicProgress }); + // }, [publicProgress]); const volume = useAtomValue(volumeAtom); const isMuted = useAtomValue(mutedAtom); @@ -144,22 +144,24 @@ export const Video = ({ { - if (!status.isLoaded) { - setLoad(true); - if (status.error) setError(status.error); - return; - } + // resizeMode={ResizeMode.CONTAIN} + // onPlaybackStatusUpdate={(status) => { + // if (!status.isLoaded) { + // setLoad(true); + // if (status.error) setError(status.error); + // return; + // } + + // setLoad(status.isPlaying !== status.shouldPlay); + // setPrivateProgress(status.positionMillis); + // setBuffered(status.playableDurationMillis ?? 0); + // setDuration(status.durationMillis); + // }} - setLoad(status.isPlaying !== status.shouldPlay); - setPrivateProgress(status.positionMillis); - setBuffered(status.playableDurationMillis ?? 0); - setDuration(status.durationMillis); - }} // ref: player, // shouldPlay: isPlaying, // onDoubleClick: () => { @@ -186,7 +188,6 @@ export const Video = ({ // setVolume(player.current.volume * 100); // setMuted(player?.current.muted); // }, - resizeMode={ResizeMode.CONTAIN} useNativeControls={false} /> ); diff --git a/front/yarn.lock b/front/yarn.lock index 34831054..604d867b 100644 --- a/front/yarn.lock +++ b/front/yarn.lock @@ -3434,6 +3434,13 @@ __metadata: languageName: node linkType: hard +"@react-native/normalize-color@npm:*, @react-native/normalize-color@npm:^2.0.0": + version: 2.1.0 + resolution: "@react-native/normalize-color@npm:2.1.0" + checksum: 8ccbd40b3c7629f1dc97b3e9aadd95fd3507fcf2e37535a6299a70436ab891c34cbdc4240b07380553d6e85dd909e23d5773b5be1da2906b026312e0b0768838 + languageName: node + linkType: hard + "@react-native/normalize-color@npm:2.0.0": version: 2.0.0 resolution: "@react-native/normalize-color@npm:2.0.0" @@ -3441,13 +3448,6 @@ __metadata: languageName: node linkType: hard -"@react-native/normalize-color@npm:^2.0.0": - version: 2.1.0 - resolution: "@react-native/normalize-color@npm:2.1.0" - checksum: 8ccbd40b3c7629f1dc97b3e9aadd95fd3507fcf2e37535a6299a70436ab891c34cbdc4240b07380553d6e85dd909e23d5773b5be1da2906b026312e0b0768838 - languageName: node - linkType: hard - "@react-native/polyfills@npm:2.0.0": version: 2.0.0 resolution: "@react-native/polyfills@npm:2.0.0" @@ -3978,7 +3978,17 @@ __metadata: languageName: node linkType: hard -"@types/react-native@npm:>= 0.70.0, @types/react-native@npm:~0.70.6": +"@types/react-native-video@npm:^5.0.14": + version: 5.0.14 + resolution: "@types/react-native-video@npm:5.0.14" + dependencies: + "@types/react": "*" + "@types/react-native": "*" + checksum: 9b58ab6651d541172dd8f91387165c16c2081b6c5eb4719eaf205aec4f38903dd3e1689aefb7dab34feefb9f5d9feee35ff8d190bc0538ed183a985aae2ee6eb + languageName: node + linkType: hard + +"@types/react-native@npm:*, @types/react-native@npm:>= 0.70.0, @types/react-native@npm:~0.70.6": version: 0.70.8 resolution: "@types/react-native@npm:0.70.8" dependencies: @@ -4471,7 +4481,7 @@ __metadata: languageName: node linkType: hard -"ajv@npm:^8.0.0, ajv@npm:^8.8.0": +"ajv@npm:^8.0.0, ajv@npm:^8.11.0, ajv@npm:^8.8.0": version: 8.11.2 resolution: "ajv@npm:8.11.2" dependencies: @@ -6164,6 +6174,17 @@ __metadata: languageName: node linkType: hard +"deprecated-react-native-prop-types@npm:^2.2.0": + version: 2.3.0 + resolution: "deprecated-react-native-prop-types@npm:2.3.0" + dependencies: + "@react-native/normalize-color": "*" + invariant: "*" + prop-types: "*" + checksum: d14f4be1dfe780a7fa9197a31b4a9a2b409c8cf1bf677713fd92d06733dee1043578662d1a8858541cf06164ae91d295db6e595f29bf13e808d9fb37bc58c90b + languageName: node + linkType: hard + "dequal@npm:^2.0.0": version: 2.0.3 resolution: "dequal@npm:2.0.3" @@ -6934,21 +6955,15 @@ __metadata: languageName: node linkType: hard -"expo-av@file:///home/anonymus-raccoon/projects/expo/packages/expo-av/::locator=mobile%40workspace%3Aapps%2Fmobile": - version: 13.0.1 - resolution: "expo-av@file:///home/anonymus-raccoon/projects/expo/packages/expo-av/#///home/anonymus-raccoon/projects/expo/packages/expo-av/::hash=6acf81&locator=mobile%40workspace%3Aapps%2Fmobile" +"expo-build-properties@npm:~0.4.1": + version: 0.4.1 + resolution: "expo-build-properties@npm:0.4.1" + dependencies: + ajv: ^8.11.0 + semver: ^7.3.5 peerDependencies: expo: "*" - checksum: 89c23346fcf8cc3ed50b523969dad76c14e9bb3f526c7cc0032783fca9aeacc1c14a1aca86b84cb5ebd51d4ee2142f7fb507ed47d7430e12b71733858a70acc9 - languageName: node - linkType: hard - -"expo-av@file:///home/anonymus-raccoon/projects/expo/packages/expo-av/::locator=web%40workspace%3Aapps%2Fweb": - version: 13.0.1 - resolution: "expo-av@file:///home/anonymus-raccoon/projects/expo/packages/expo-av/#///home/anonymus-raccoon/projects/expo/packages/expo-av/::hash=6acf81&locator=web%40workspace%3Aapps%2Fweb" - peerDependencies: - expo: "*" - checksum: 89c23346fcf8cc3ed50b523969dad76c14e9bb3f526c7cc0032783fca9aeacc1c14a1aca86b84cb5ebd51d4ee2142f7fb507ed47d7430e12b71733858a70acc9 + checksum: c62f994cb995c62a9e358eb192f7a43caceac25c0a36913f8d31bad70b8cd5f4f23c4169b340c60c651bb4c7487910e0b9911562cc6a15c208fa44b7ee271bc5 languageName: node linkType: hard @@ -6964,6 +6979,55 @@ __metadata: languageName: node linkType: hard +"expo-dev-client@npm:~2.0.1": + version: 2.0.1 + resolution: "expo-dev-client@npm:2.0.1" + dependencies: + expo-dev-launcher: 2.0.2 + expo-dev-menu: 2.0.2 + expo-dev-menu-interface: 1.0.0 + expo-manifests: ~0.4.0 + expo-updates-interface: ~0.8.0 + peerDependencies: + expo: "*" + checksum: 017b8056e9cd708ea35093386bfb39ad6220bf5db4f3f9a0576380ce97896965c657d31a480b2b57e7e6b215b337da4a994e08e350fe1bf0fd6ab6125d1e7e88 + languageName: node + linkType: hard + +"expo-dev-launcher@npm:2.0.2": + version: 2.0.2 + resolution: "expo-dev-launcher@npm:2.0.2" + dependencies: + expo-dev-menu: 2.0.2 + resolve-from: ^5.0.0 + semver: ^7.3.5 + peerDependencies: + expo: "*" + checksum: 919342c5e372f4440922e7b39d0d989a3e1a7998c9e74bb30648d86846efb2bf750d776845f2dac5470d7d9beab695222615b213f5711e2b827b2891a32d0f79 + languageName: node + linkType: hard + +"expo-dev-menu-interface@npm:1.0.0": + version: 1.0.0 + resolution: "expo-dev-menu-interface@npm:1.0.0" + peerDependencies: + expo: "*" + checksum: e138e7362d3210c3ef66b9c263752442fd36c48f17d62e73314305d5318fdf7a3ca0f21ffa62b9221c07966798372ca49177597a87546820450d9f829a57ab04 + languageName: node + linkType: hard + +"expo-dev-menu@npm:2.0.2": + version: 2.0.2 + resolution: "expo-dev-menu@npm:2.0.2" + dependencies: + expo-dev-menu-interface: 1.0.0 + semver: ^7.3.5 + peerDependencies: + expo: "*" + checksum: 3bf510a267ed952b88ec671d40c67a2921efb8e83f3dccfa2f7a52788cc6b4941d4046f334cc88737806b36c9390fb9eca94e23473fc496a85bb99e02a8c6d83 + languageName: node + linkType: hard + "expo-error-recovery@npm:~4.0.1": version: 4.0.1 resolution: "expo-error-recovery@npm:4.0.1" @@ -6995,6 +7059,13 @@ __metadata: languageName: node linkType: hard +"expo-json-utils@npm:~0.4.0": + version: 0.4.0 + resolution: "expo-json-utils@npm:0.4.0" + checksum: fd8713f2040dcdac5cbe6f9dab186012c57fdcd2a3ed243d1d07dc2ccf2654eff3f98dc2e3e3a0bc1b5b9bbe68e94c633095a9112428d371da28d61265b61047 + languageName: node + linkType: hard + "expo-keep-awake@npm:~11.0.1": version: 11.0.1 resolution: "expo-keep-awake@npm:11.0.1" @@ -7013,16 +7084,16 @@ __metadata: languageName: node linkType: hard -"expo-linking@npm:~3.2.3": - version: 3.2.3 - resolution: "expo-linking@npm:3.2.3" +"expo-linking@npm:~3.3.0": + version: 3.3.0 + resolution: "expo-linking@npm:3.3.0" dependencies: "@types/qs": ^6.5.3 expo-constants: ~14.0.0 invariant: ^2.2.4 qs: ^6.9.1 url-parse: ^1.5.9 - checksum: 248b09b9ee38def1666bb1e221617c67329387f7f1e5214a427526b574495cf8d9b7204c6b69b8dde0bc5c32ff6d0ecb20e25606a04f16de609fddaf4c21a6e7 + checksum: ff4beff24a971fce24baa5423bab7ef0caabda64f87c9c55d32c409cd8f0e48ea46cc08ab1e54978e51476d7a6dadca05a5ba4ab74e982063d64ddfc8230cb5e languageName: node linkType: hard @@ -7037,6 +7108,15 @@ __metadata: languageName: node linkType: hard +"expo-manifests@npm:~0.4.0": + version: 0.4.0 + resolution: "expo-manifests@npm:0.4.0" + dependencies: + expo-json-utils: ~0.4.0 + checksum: 4d0f5ca50f4d659a752de11139cc358564071699455945d5b86c5f3f59464435c66fbccbc269449f1ecbad74401fa7dbccf66b57c022e33ba01be3a1f378b176 + languageName: node + linkType: hard + "expo-modules-autolinking@npm:*, expo-modules-autolinking@npm:1.0.0": version: 1.0.0 resolution: "expo-modules-autolinking@npm:1.0.0" @@ -7135,6 +7215,15 @@ __metadata: languageName: node linkType: hard +"expo-updates-interface@npm:~0.8.0": + version: 0.8.1 + resolution: "expo-updates-interface@npm:0.8.1" + peerDependencies: + expo: "*" + checksum: 5a626fb60e06fac00c81caef19d6b0e16e46950fc4b08a484339c6c461cc7106c25c93c110108fd367b23a13ccb06a3c03da518a6d43dfb2a5f8c7f28f94b5b9 + languageName: node + linkType: hard + "expo@npm:*, expo@npm:^47.0.0": version: 47.0.8 resolution: "expo@npm:47.0.8" @@ -8342,7 +8431,7 @@ __metadata: languageName: node linkType: hard -"invariant@npm:^2.2.4": +"invariant@npm:*, invariant@npm:^2.2.4": version: 2.2.4 resolution: "invariant@npm:2.2.4" dependencies: @@ -9151,6 +9240,13 @@ __metadata: languageName: node linkType: hard +"keymirror@npm:^0.1.1": + version: 0.1.1 + resolution: "keymirror@npm:0.1.1" + checksum: be8f0bc5ff7d561d729f935ef55b4dbbea7b56a4714f044a2212088730f4d52f73935c38c5a9604e0f1157611725ee493cb7d08d1f3eb34151c0aa999236206a + languageName: node + linkType: hard + "kind-of@npm:^3.0.2, kind-of@npm:^3.0.3, kind-of@npm:^3.2.0": version: 3.2.2 resolution: "kind-of@npm:3.2.2" @@ -10369,10 +10465,11 @@ __metadata: "@types/react-native": ~0.70.6 babel-plugin-transform-inline-environment-variables: ^0.4.4 expo: ^47.0.0 - expo-av: "file:///home/anonymus-raccoon/projects/expo/packages/expo-av/" + expo-build-properties: ~0.4.1 expo-constants: ~14.0.2 + expo-dev-client: ~2.0.1 expo-linear-gradient: ~12.0.1 - expo-linking: ~3.2.3 + expo-linking: ~3.3.0 expo-localization: ~14.0.0 expo-navigation-bar: ~2.0.1 expo-router: ^0.0.36 @@ -10390,6 +10487,7 @@ __metadata: react-native-screens: ~3.18.0 react-native-svg: 13.4.0 react-native-svg-transformer: ^1.0.0 + react-native-video: alpha typescript: ^4.6.3 yoshiki: 0.3.2 languageName: unknown @@ -11439,7 +11537,7 @@ __metadata: languageName: node linkType: hard -"prop-types@npm:15.8.1, prop-types@npm:^15.6.2, prop-types@npm:^15.8.1": +"prop-types@npm:*, prop-types@npm:15.8.1, prop-types@npm:^15.6.2, prop-types@npm:^15.7.2, prop-types@npm:^15.8.1": version: 15.8.1 resolution: "prop-types@npm:15.8.1" dependencies: @@ -11758,6 +11856,17 @@ __metadata: languageName: node linkType: hard +"react-native-video@npm:alpha": + version: 6.0.0-alpha.4 + resolution: "react-native-video@npm:6.0.0-alpha.4" + dependencies: + deprecated-react-native-prop-types: ^2.2.0 + keymirror: ^0.1.1 + prop-types: ^15.7.2 + checksum: 0dcd4a0eb4ba5d92a5a2ad2a0b75a195f1ce2f97bc472264295ff8879df1b835c4d849eedc8be45b900013eaf5ba40de0d021300716c14fb8d72252cdeb1bc6d + languageName: node + linkType: hard + "react-native-web@npm:^0.18.10": version: 0.18.10 resolution: "react-native-web@npm:0.18.10" @@ -14146,12 +14255,12 @@ __metadata: "@types/node": 18.11.9 "@types/react": 18.0.25 "@types/react-dom": 18.0.9 + "@types/react-native-video": ^5.0.14 clsx: ^1.2.1 copy-webpack-plugin: ^11.0.0 csstype: ^3.1.1 eslint: ^8.30.0 eslint-config-next: 13.0.5 - expo-av: "file:///home/anonymus-raccoon/projects/expo/packages/expo-av/" expo-linear-gradient: ^12.0.1 hls.js: ^1.2.8 i18next: ^22.0.6 @@ -14167,6 +14276,7 @@ __metadata: react-i18next: ^12.0.0 react-native-reanimated: ^2.13.0 react-native-svg: 13.4.0 + react-native-video: alpha react-native-web: ^0.18.10 solito: ^2.0.5 superjson: ^1.11.0