mirror of
https://github.com/tapframe/NuvioStreaming.git
synced 2026-04-19 07:42:09 +00:00
1.3.3
This commit is contained in:
parent
47f3cb4b71
commit
5850650713
8 changed files with 24 additions and 22 deletions
|
|
@ -95,8 +95,8 @@ android {
|
|||
applicationId 'com.nuvio.app'
|
||||
minSdkVersion rootProject.ext.minSdkVersion
|
||||
targetSdkVersion rootProject.ext.targetSdkVersion
|
||||
versionCode 30
|
||||
versionName "1.3.2"
|
||||
versionCode 31
|
||||
versionName "1.3.3"
|
||||
|
||||
buildConfigField "String", "REACT_NATIVE_RELEASE_LEVEL", "\"${findProperty('reactNativeReleaseLevel') ?: 'stable'}\""
|
||||
}
|
||||
|
|
@ -118,7 +118,7 @@ android {
|
|||
def abiVersionCodes = ['armeabi-v7a': 1, 'arm64-v8a': 2, 'x86': 3, 'x86_64': 4]
|
||||
applicationVariants.all { variant ->
|
||||
variant.outputs.each { output ->
|
||||
def baseVersionCode = 30 // Current versionCode 30 from defaultConfig
|
||||
def baseVersionCode = 31 // Current versionCode 31 from defaultConfig
|
||||
def abiName = output.getFilter(com.android.build.OutputFile.ABI)
|
||||
|
||||
def versionCode = baseVersionCode * 100 // Base multiplier
|
||||
|
|
|
|||
|
|
@ -3,5 +3,5 @@
|
|||
<string name="expo_splash_screen_resize_mode" translatable="false">contain</string>
|
||||
<string name="expo_splash_screen_status_bar_translucent" translatable="false">false</string>
|
||||
<string name="expo_system_ui_user_interface_style" translatable="false">dark</string>
|
||||
<string name="expo_runtime_version">1.3.2</string>
|
||||
<string name="expo_runtime_version">1.3.3</string>
|
||||
</resources>
|
||||
8
app.json
8
app.json
|
|
@ -2,7 +2,7 @@
|
|||
"expo": {
|
||||
"name": "Nuvio",
|
||||
"slug": "nuvio",
|
||||
"version": "1.3.2",
|
||||
"version": "1.3.3",
|
||||
"orientation": "default",
|
||||
"backgroundColor": "#020404",
|
||||
"icon": "./assets/ios/AppIcon.appiconset/Icon-App-60x60@3x.png",
|
||||
|
|
@ -17,7 +17,7 @@
|
|||
"ios": {
|
||||
"supportsTablet": true,
|
||||
"icon": "./assets/ios/AppIcon.appiconset/Icon-App-60x60@3x.png",
|
||||
"buildNumber": "30",
|
||||
"buildNumber": "31",
|
||||
"infoPlist": {
|
||||
"NSAppTransportSecurity": {
|
||||
"NSAllowsArbitraryLoads": true
|
||||
|
|
@ -51,7 +51,7 @@
|
|||
"android.permission.WRITE_SETTINGS"
|
||||
],
|
||||
"package": "com.nuvio.app",
|
||||
"versionCode": 30,
|
||||
"versionCode": 31,
|
||||
"architectures": [
|
||||
"arm64-v8a",
|
||||
"armeabi-v7a",
|
||||
|
|
@ -98,6 +98,6 @@
|
|||
"fallbackToCacheTimeout": 30000,
|
||||
"url": "https://ota.nuvioapp.space/api/manifest"
|
||||
},
|
||||
"runtimeVersion": "1.3.2"
|
||||
"runtimeVersion": "1.3.3"
|
||||
}
|
||||
}
|
||||
|
|
@ -670,7 +670,7 @@ const ContinueWatchingSection = React.forwardRef<ContinueWatchingRef>((props, re
|
|||
type: 'movie',
|
||||
progress: item.progress,
|
||||
lastUpdated: pausedAt,
|
||||
addonId: progress.addonId,
|
||||
addonId: undefined,
|
||||
} as ContinueWatchingItem);
|
||||
|
||||
logger.log(`📺 [TraktPlayback] Adding movie ${item.movie.title} with ${item.progress.toFixed(1)}% progress`);
|
||||
|
|
@ -704,7 +704,7 @@ const ContinueWatchingSection = React.forwardRef<ContinueWatchingRef>((props, re
|
|||
season: item.episode.season,
|
||||
episode: item.episode.number,
|
||||
episodeTitle: item.episode.title || `Episode ${item.episode.number}`,
|
||||
addonId: progress.addonId,
|
||||
addonId: undefined,
|
||||
} as ContinueWatchingItem);
|
||||
|
||||
processedShows.add(showImdb);
|
||||
|
|
@ -773,7 +773,7 @@ const ContinueWatchingSection = React.forwardRef<ContinueWatchingRef>((props, re
|
|||
season: nextEpisodeVideo.season,
|
||||
episode: nextEpisodeVideo.episode,
|
||||
episodeTitle: `Episode ${nextEpisodeVideo.episode}`,
|
||||
addonId: progress.addonId,
|
||||
addonId: undefined,
|
||||
} as ContinueWatchingItem);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -145,18 +145,18 @@ const KSPlayerCore: React.FC = () => {
|
|||
|
||||
// Track previous video session to reset subtitle offset only when video actually changes
|
||||
const previousVideoRef = useRef<{ uri?: string; episodeId?: string }>({});
|
||||
|
||||
|
||||
// Reset subtitle offset when starting a new video session
|
||||
useEffect(() => {
|
||||
const currentVideo = { uri, episodeId };
|
||||
const previousVideo = previousVideoRef.current;
|
||||
|
||||
|
||||
// Only reset if this is actually a new video (uri or episodeId changed)
|
||||
if (previousVideo.uri !== undefined &&
|
||||
(previousVideo.uri !== currentVideo.uri || previousVideo.episodeId !== currentVideo.episodeId)) {
|
||||
if (previousVideo.uri !== undefined &&
|
||||
(previousVideo.uri !== currentVideo.uri || previousVideo.episodeId !== currentVideo.episodeId)) {
|
||||
customSubs.setSubtitleOffsetSec(0);
|
||||
}
|
||||
|
||||
|
||||
// Update the ref for next comparison
|
||||
previousVideoRef.current = currentVideo;
|
||||
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||
|
|
@ -750,6 +750,7 @@ const KSPlayerCore: React.FC = () => {
|
|||
visible={speedControl.showSpeedActivatedOverlay}
|
||||
opacity={speedControl.speedActivatedOverlayOpacity}
|
||||
speed={speedControl.holdToSpeedValue}
|
||||
screenDimensions={screenDimensions}
|
||||
/>
|
||||
|
||||
<ResumeOverlay
|
||||
|
|
|
|||
|
|
@ -220,7 +220,7 @@ export const useCalendarData = (): UseCalendarDataReturn => {
|
|||
vote_average: tmdbEpisode.vote_average || 0,
|
||||
still_path: tmdbEpisode.still_path || null,
|
||||
season_poster_path: tmdbEpisode.season_poster_path || null,
|
||||
addonId: episodeData.addonId || series.addonId,
|
||||
addonId: (episodeData as any).addonId || series.addonId,
|
||||
};
|
||||
|
||||
|
||||
|
|
@ -247,7 +247,7 @@ export const useCalendarData = (): UseCalendarDataReturn => {
|
|||
vote_average: 0,
|
||||
still_path: null,
|
||||
season_poster_path: null,
|
||||
addonId: episodeData?.addonId || series.addonId,
|
||||
addonId: (episodeData as any)?.addonId || series.addonId,
|
||||
}
|
||||
};
|
||||
}
|
||||
|
|
@ -268,7 +268,7 @@ export const useCalendarData = (): UseCalendarDataReturn => {
|
|||
vote_average: 0,
|
||||
still_path: null,
|
||||
season_poster_path: null,
|
||||
addonId: episodeData?.addonId || series.addonId,
|
||||
addonId: series.addonId,
|
||||
}
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -523,7 +523,7 @@ export function useTraktIntegration() {
|
|||
// Fetch both playback progress and recently watched movies
|
||||
const [traktProgress, watchedMovies, watchedShows] = await Promise.all([
|
||||
getTraktPlaybackProgress(),
|
||||
traktService.getWatchedMovies()
|
||||
traktService.getWatchedMovies(),
|
||||
traktService.getWatchedShows()
|
||||
]);
|
||||
|
||||
|
|
@ -616,7 +616,8 @@ export function useTraktIntegration() {
|
|||
}
|
||||
} catch (error) {
|
||||
logger.error('[useTraktIntegration] Error preparing watched show update:', error);
|
||||
|
||||
}
|
||||
}
|
||||
// Execute all updates in parallel
|
||||
await Promise.all(updatePromises);
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
// Single source of truth for the app version displayed in Settings
|
||||
// Update this when bumping app version
|
||||
|
||||
export const APP_VERSION = '1.3.2';
|
||||
export const APP_VERSION = '1.3.3';
|
||||
|
||||
export function getDisplayedAppVersion(): string {
|
||||
return APP_VERSION;
|
||||
|
|
|
|||
Loading…
Reference in a new issue