This commit is contained in:
tapframe 2026-01-01 03:49:32 +05:30
parent 47f3cb4b71
commit 5850650713
8 changed files with 24 additions and 22 deletions

View file

@ -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

View file

@ -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>

View file

@ -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"
}
}

View file

@ -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);
}
}

View file

@ -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

View file

@ -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,
}
};
}

View file

@ -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);

View file

@ -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;