From bb1b267cfa01e235ffe731da04a3293acb50a215 Mon Sep 17 00:00:00 2001 From: paregi12 Date: Fri, 13 Mar 2026 01:13:17 +0530 Subject: [PATCH] fix: restore missing imports and fix type errors in MAL services --- src/components/player/AndroidVideoPlayer.tsx | 3 ++- src/components/player/KSPlayerCore.tsx | 6 ++++-- src/components/player/hooks/useWatchProgress.ts | 10 +++++++--- src/services/mal/MalSync.ts | 2 ++ 4 files changed, 15 insertions(+), 6 deletions(-) diff --git a/src/components/player/AndroidVideoPlayer.tsx b/src/components/player/AndroidVideoPlayer.tsx index 13446869..6b06853c 100644 --- a/src/components/player/AndroidVideoPlayer.tsx +++ b/src/components/player/AndroidVideoPlayer.tsx @@ -251,7 +251,8 @@ const AndroidVideoPlayer: React.FC = () => { currentMalId, currentDayIndex, currentTmdbId, - isInPictureInPicture || isPiPTransitionPending + isInPictureInPicture || isPiPTransitionPending, + metadata?.name ); const gestureControls = usePlayerGestureControls({ diff --git a/src/components/player/KSPlayerCore.tsx b/src/components/player/KSPlayerCore.tsx index 6e956ce5..4fc0a9e2 100644 --- a/src/components/player/KSPlayerCore.tsx +++ b/src/components/player/KSPlayerCore.tsx @@ -1,4 +1,4 @@ -import React, { useEffect, useRef, useState, useCallback } from 'react'; +import React, { useEffect, useRef, useState, useCallback, useMemo } from 'react'; import { View, StatusBar, StyleSheet, Animated, Dimensions, ActivityIndicator } from 'react-native'; import { useNavigation, useRoute } from '@react-navigation/native'; import { useSafeAreaInsets } from 'react-native-safe-area-context'; @@ -271,7 +271,9 @@ const KSPlayerCore: React.FC = () => { releaseDate, currentMalId, currentDayIndex, - currentTmdbId + currentTmdbId, + false, // KSPlayer doesn't support PiP yet + metadata?.name ); // Gestures diff --git a/src/components/player/hooks/useWatchProgress.ts b/src/components/player/hooks/useWatchProgress.ts index f5a531e7..99a7b63b 100644 --- a/src/components/player/hooks/useWatchProgress.ts +++ b/src/components/player/hooks/useWatchProgress.ts @@ -23,7 +23,8 @@ export const useWatchProgress = ( malId?: number, dayIndex?: number, tmdbId?: number, - isInPictureInPicture: boolean = false + isInPictureInPicture: boolean = false, + title?: string ) => { const [resumePosition, setResumePosition] = useState(null); const [savedDuration, setSavedDuration] = useState(null); @@ -46,6 +47,7 @@ export const useWatchProgress = ( const dayIndexRef = useRef(dayIndex); const tmdbIdRef = useRef(tmdbId); const isInPictureInPictureRef = useRef(isInPictureInPicture); + const titleRef = useRef(title); // Sync refs useEffect(() => { @@ -57,7 +59,8 @@ export const useWatchProgress = ( dayIndexRef.current = dayIndex; tmdbIdRef.current = tmdbId; isInPictureInPictureRef.current = isInPictureInPicture; - }, [imdbId, season, episode, releaseDate, malId, dayIndex, tmdbId, isInPictureInPicture]); + titleRef.current = title; + }, [imdbId, season, episode, releaseDate, malId, dayIndex, tmdbId, isInPictureInPicture, title]); // Reset scrobble flag when content changes useEffect(() => { @@ -174,6 +177,7 @@ export const useWatchProgress = ( const currentMalId = malIdRef.current; const currentDayIndex = dayIndexRef.current; const currentTmdbId = tmdbIdRef.current; + const currentTitle = titleRef.current; if (type === 'series' && currentImdbId && currentSeason !== undefined && currentEpisode !== undefined) { watchedService.markEpisodeAsWatched( @@ -189,7 +193,7 @@ export const useWatchProgress = ( currentTmdbId ); } else if (type === 'movie' && currentImdbId) { - watchedService.markMovieAsWatched(currentImdbId, new Date(), currentMalId, currentTmdbId, title); + watchedService.markMovieAsWatched(currentImdbId, new Date(), currentMalId, currentTmdbId, currentTitle); } } } catch (error) { diff --git a/src/services/mal/MalSync.ts b/src/services/mal/MalSync.ts index f93fa35b..d89873fd 100644 --- a/src/services/mal/MalSync.ts +++ b/src/services/mal/MalSync.ts @@ -1,8 +1,10 @@ import { mmkvStorage } from '../mmkvStorage'; import { MalApiService } from './MalApi'; +import { MalAuth } from './MalAuth'; import { MalListStatus, MalAnimeNode } from '../../types/mal'; import { catalogService } from '../catalogService'; import { ArmSyncService } from './ArmSyncService'; +import { logger } from '../../utils/logger'; import axios from 'axios'; const MAPPING_PREFIX = 'mal_map_';