mirror of
https://github.com/streamyfin/streamyfin.git
synced 2026-04-21 08:14:42 +01:00
Compare commits
6 Commits
v0.27.0
...
feat/bette
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
587d419502 | ||
|
|
bc081b535e | ||
|
|
62d2d1f7ca | ||
|
|
66aab5b771 | ||
|
|
5c89100afd | ||
|
|
f1a3b48017 |
1
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
1
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
@@ -43,6 +43,7 @@ body:
|
|||||||
label: Version
|
label: Version
|
||||||
description: What version of Streamyfin are you running?
|
description: What version of Streamyfin are you running?
|
||||||
options:
|
options:
|
||||||
|
- 0.28.0
|
||||||
- 0.27.0
|
- 0.27.0
|
||||||
- 0.26.1
|
- 0.26.1
|
||||||
- 0.26.0
|
- 0.26.0
|
||||||
|
|||||||
@@ -123,6 +123,10 @@ Streamyfin is developed by [Fredrik Burmester](https://github.com/fredrikburmest
|
|||||||
|
|
||||||
## ✨ Acknowledgements
|
## ✨ Acknowledgements
|
||||||
|
|
||||||
|
We would like to thank the Jellyfin team for their great software and awesome support on discord.
|
||||||
|
|
||||||
|
Special shoutout to the JF official clients for being an inspiration to ours.
|
||||||
|
|
||||||
### Core Developers
|
### Core Developers
|
||||||
|
|
||||||
Thanks to the following contributors for their significant contributions:
|
Thanks to the following contributors for their significant contributions:
|
||||||
|
|||||||
4
app.json
4
app.json
@@ -2,7 +2,7 @@
|
|||||||
"expo": {
|
"expo": {
|
||||||
"name": "Streamyfin",
|
"name": "Streamyfin",
|
||||||
"slug": "streamyfin",
|
"slug": "streamyfin",
|
||||||
"version": "0.27.0",
|
"version": "0.28.0",
|
||||||
"orientation": "default",
|
"orientation": "default",
|
||||||
"icon": "./assets/images/icon.png",
|
"icon": "./assets/images/icon.png",
|
||||||
"scheme": "streamyfin",
|
"scheme": "streamyfin",
|
||||||
@@ -31,7 +31,7 @@
|
|||||||
},
|
},
|
||||||
"android": {
|
"android": {
|
||||||
"jsEngine": "hermes",
|
"jsEngine": "hermes",
|
||||||
"versionCode": 53,
|
"versionCode": 54,
|
||||||
"adaptiveIcon": {
|
"adaptiveIcon": {
|
||||||
"foregroundImage": "./assets/images/adaptive_icon.png",
|
"foregroundImage": "./assets/images/adaptive_icon.png",
|
||||||
"backgroundColor": "#464646"
|
"backgroundColor": "#464646"
|
||||||
|
|||||||
@@ -32,6 +32,7 @@ const BackgroundFetch = !Platform.isTV
|
|||||||
? require("expo-background-fetch")
|
? require("expo-background-fetch")
|
||||||
: null;
|
: null;
|
||||||
import * as FileSystem from "expo-file-system";
|
import * as FileSystem from "expo-file-system";
|
||||||
|
import * as Device from "expo-device";
|
||||||
const Notifications = !Platform.isTV ? require("expo-notifications") : null;
|
const Notifications = !Platform.isTV ? require("expo-notifications") : null;
|
||||||
import * as ScreenOrientation from "@/packages/expo-screen-orientation";
|
import * as ScreenOrientation from "@/packages/expo-screen-orientation";
|
||||||
import { Stack, router, useSegments } from "expo-router";
|
import { Stack, router, useSegments } from "expo-router";
|
||||||
@@ -331,9 +332,12 @@ function Layout() {
|
|||||||
await registerBackgroundFetchAsyncSessions();
|
await registerBackgroundFetchAsyncSessions();
|
||||||
}
|
}
|
||||||
|
|
||||||
Notifications?.getExpoPushTokenAsync()
|
// only create push token for real devices (pointless for emulators)
|
||||||
.then((token: ExpoPushToken) => token && setExpoPushToken(token))
|
if(Device.isDevice) {
|
||||||
.catch((reason: any) => console.log("Failed to get token", reason));
|
Notifications?.getExpoPushTokenAsync()
|
||||||
|
.then((token: ExpoPushToken) => token && setExpoPushToken(token))
|
||||||
|
.catch((reason: any) => console.log("Failed to get token", reason));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
@@ -352,7 +356,39 @@ function Layout() {
|
|||||||
responseListener.current =
|
responseListener.current =
|
||||||
Notifications?.addNotificationResponseReceivedListener(
|
Notifications?.addNotificationResponseReceivedListener(
|
||||||
(response: NotificationResponse) => {
|
(response: NotificationResponse) => {
|
||||||
console.log("Notification interacted with", response);
|
// Currently the notifications supported by the plugin will send data for deep links.
|
||||||
|
const data = response.notification.request.content.data;
|
||||||
|
|
||||||
|
if (data && Object.keys(data).length > 0) {
|
||||||
|
const type = data["type"].toLower();
|
||||||
|
const itemId = data["id"];
|
||||||
|
|
||||||
|
switch (type) {
|
||||||
|
case "movie":
|
||||||
|
router.push(`/(auth)/(tabs)/home/items/page?id=${itemId}`)
|
||||||
|
break;
|
||||||
|
case "episode":
|
||||||
|
const episodeId = data.id;
|
||||||
|
|
||||||
|
// We just clicked a notification for an individual episode.
|
||||||
|
if (episodeId) {
|
||||||
|
router.push(`/(auth)/(tabs)/home/items/page?id=${itemId}`)
|
||||||
|
}
|
||||||
|
// summarized season notification for multiple episodes. Bring them to series season
|
||||||
|
else {
|
||||||
|
const seriesId = data.seriesId;
|
||||||
|
const seasonIndex = data.seasonIndex;
|
||||||
|
|
||||||
|
if (seasonIndex) {
|
||||||
|
router.push(`/(auth)/(tabs)/home/series/${seriesId}?seasonIndex=${seasonIndex}`)
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
router.push(`/(auth)/(tabs)/home/series/${seriesId}`)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
6
eas.json
6
eas.json
@@ -32,20 +32,20 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"production": {
|
"production": {
|
||||||
"channel": "0.27.0",
|
"channel": "0.28.0",
|
||||||
"android": {
|
"android": {
|
||||||
"image": "latest"
|
"image": "latest"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"production-apk": {
|
"production-apk": {
|
||||||
"channel": "0.27.0",
|
"channel": "0.28.0",
|
||||||
"android": {
|
"android": {
|
||||||
"buildType": "apk",
|
"buildType": "apk",
|
||||||
"image": "latest"
|
"image": "latest"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"production-apk-tv": {
|
"production-apk-tv": {
|
||||||
"channel": "0.27.0",
|
"channel": "0.28.0",
|
||||||
"android": {
|
"android": {
|
||||||
"buildType": "apk",
|
"buildType": "apk",
|
||||||
"image": "latest"
|
"image": "latest"
|
||||||
|
|||||||
@@ -64,7 +64,7 @@ export const JellyfinProvider: React.FC<{ children: ReactNode }> = ({
|
|||||||
setJellyfin(
|
setJellyfin(
|
||||||
() =>
|
() =>
|
||||||
new Jellyfin({
|
new Jellyfin({
|
||||||
clientInfo: { name: "Streamyfin", version: "0.27.0" },
|
clientInfo: { name: "Streamyfin", version: "0.28.0" },
|
||||||
deviceInfo: {
|
deviceInfo: {
|
||||||
name: deviceName,
|
name: deviceName,
|
||||||
id,
|
id,
|
||||||
@@ -93,7 +93,7 @@ export const JellyfinProvider: React.FC<{ children: ReactNode }> = ({
|
|||||||
return {
|
return {
|
||||||
authorization: `MediaBrowser Client="Streamyfin", Device=${
|
authorization: `MediaBrowser Client="Streamyfin", Device=${
|
||||||
Platform.OS === "android" ? "Android" : "iOS"
|
Platform.OS === "android" ? "Android" : "iOS"
|
||||||
}, DeviceId="${deviceId}", Version="0.27.0"`,
|
}, DeviceId="${deviceId}", Version="0.28.0"`,
|
||||||
};
|
};
|
||||||
}, [deviceId]);
|
}, [deviceId]);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user