Ios #14
7 changed files with 19 additions and 19 deletions
|
|
@ -100,10 +100,10 @@ const ContinueWatchingSection = React.forwardRef<ContinueWatchingRef>((props, re
|
|||
const episodeId = episodeIdParts.length > 0 ? episodeIdParts.join(':') : undefined;
|
||||
const progress = allProgress[key];
|
||||
|
||||
// Skip items that are more than 95% complete (effectively finished)
|
||||
// Skip items that are more than 85% complete (effectively finished)
|
||||
const progressPercent = (progress.currentTime / progress.duration) * 100;
|
||||
|
||||
if (progressPercent >= 95) {
|
||||
if (progressPercent >= 85) {
|
||||
continue;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -332,7 +332,7 @@ const WatchProgressDisplay = React.memo(({
|
|||
}
|
||||
|
||||
// Enhanced display text with Trakt integration
|
||||
let displayText = progressPercent >= 95 ? 'Watched' : `${Math.round(progressPercent)}% watched`;
|
||||
let displayText = progressPercent >= 85 ? 'Watched' : `${Math.round(progressPercent)}% watched`;
|
||||
let syncStatus = '';
|
||||
|
||||
// Show Trakt sync status if user is authenticated
|
||||
|
|
@ -373,7 +373,7 @@ const WatchProgressDisplay = React.memo(({
|
|||
progressBoxScale.value = withTiming(1, { duration: 400 });
|
||||
progressBoxTranslateY.value = withTiming(0, { duration: 400 });
|
||||
|
||||
if (progressData.isWatched || (progressData.progressPercent && progressData.progressPercent >= 95)) {
|
||||
if (progressData.isWatched || (progressData.progressPercent && progressData.progressPercent >= 85)) {
|
||||
// Celebration animation sequence
|
||||
celebrationScale.value = withRepeat(
|
||||
withTiming(1.05, { duration: 200 }),
|
||||
|
|
@ -426,7 +426,7 @@ const WatchProgressDisplay = React.memo(({
|
|||
|
||||
if (!progressData) return null;
|
||||
|
||||
const isCompleted = progressData.isWatched || progressData.progressPercent >= 95;
|
||||
const isCompleted = progressData.isWatched || progressData.progressPercent >= 85;
|
||||
|
||||
return (
|
||||
<Animated.View style={[styles.watchProgressContainer, animatedStyle]}>
|
||||
|
|
@ -704,7 +704,7 @@ const HeroSection: React.FC<HeroSectionProps> = ({
|
|||
// Memoized play button text
|
||||
const playButtonText = useMemo(() => getPlayButtonText(), [getPlayButtonText]);
|
||||
|
||||
// Calculate if content is watched (>=95% progress) - check both local and Trakt progress
|
||||
// Calculate if content is watched (>=85% progress) - check both local and Trakt progress
|
||||
const isWatched = useMemo(() => {
|
||||
if (!watchProgress) return false;
|
||||
|
||||
|
|
@ -718,7 +718,7 @@ const HeroSection: React.FC<HeroSectionProps> = ({
|
|||
// Fall back to local progress
|
||||
if (watchProgress.duration === 0) return false;
|
||||
const progressPercent = (watchProgress.currentTime / watchProgress.duration) * 100;
|
||||
const localWatched = progressPercent >= 95;
|
||||
const localWatched = progressPercent >= 85;
|
||||
logger.log(`[HeroSection] Local progress: ${progressPercent.toFixed(1)}%, Watched: ${localWatched}`);
|
||||
return localWatched;
|
||||
}, [watchProgress, isTraktAuthenticated]);
|
||||
|
|
|
|||
|
|
@ -285,8 +285,8 @@ export const SeriesContent: React.FC<SeriesContentProps> = ({
|
|||
const progress = episodeProgress[episodeId];
|
||||
const progressPercent = progress ? (progress.currentTime / progress.duration) * 100 : 0;
|
||||
|
||||
// Don't show progress bar if episode is complete (>= 95%)
|
||||
const showProgress = progress && progressPercent < 95;
|
||||
// Don't show progress bar if episode is complete (>= 85%)
|
||||
const showProgress = progress && progressPercent < 85;
|
||||
|
||||
return (
|
||||
<TouchableOpacity
|
||||
|
|
@ -318,7 +318,7 @@ export const SeriesContent: React.FC<SeriesContentProps> = ({
|
|||
/>
|
||||
</View>
|
||||
)}
|
||||
{progressPercent >= 95 && (
|
||||
{progressPercent >= 85 && (
|
||||
<View style={[styles.completedBadge, { backgroundColor: currentTheme.colors.primary }]}>
|
||||
<MaterialIcons name="check" size={12} color={currentTheme.colors.white} />
|
||||
</View>
|
||||
|
|
@ -395,8 +395,8 @@ export const SeriesContent: React.FC<SeriesContentProps> = ({
|
|||
const progress = episodeProgress[episodeId];
|
||||
const progressPercent = progress ? (progress.currentTime / progress.duration) * 100 : 0;
|
||||
|
||||
// Don't show progress bar if episode is complete (>= 95%)
|
||||
const showProgress = progress && progressPercent < 95;
|
||||
// Don't show progress bar if episode is complete (>= 85%)
|
||||
const showProgress = progress && progressPercent < 85;
|
||||
|
||||
return (
|
||||
<TouchableOpacity
|
||||
|
|
@ -517,7 +517,7 @@ export const SeriesContent: React.FC<SeriesContentProps> = ({
|
|||
)}
|
||||
|
||||
{/* Completed Badge */}
|
||||
{progressPercent >= 95 && (
|
||||
{progressPercent >= 85 && (
|
||||
<View style={[styles.completedBadgeHorizontal, {
|
||||
backgroundColor: currentTheme.colors.primary,
|
||||
}]}>
|
||||
|
|
|
|||
|
|
@ -268,7 +268,7 @@ const AndroidVideoPlayer: React.FC = () => {
|
|||
const progressPercent = (savedProgress.currentTime / savedProgress.duration) * 100;
|
||||
logger.log(`[AndroidVideoPlayer] Progress: ${progressPercent.toFixed(1)}% (${savedProgress.currentTime}/${savedProgress.duration})`);
|
||||
|
||||
if (progressPercent < 95) {
|
||||
if (progressPercent < 85) {
|
||||
setResumePosition(savedProgress.currentTime);
|
||||
logger.log(`[AndroidVideoPlayer] Set resume position to: ${savedProgress.currentTime}`);
|
||||
|
||||
|
|
|
|||
|
|
@ -263,7 +263,7 @@ const VideoPlayer: React.FC = () => {
|
|||
const progressPercent = (savedProgress.currentTime / savedProgress.duration) * 100;
|
||||
logger.log(`[VideoPlayer] Progress: ${progressPercent.toFixed(1)}% (${savedProgress.currentTime}/${savedProgress.duration})`);
|
||||
|
||||
if (progressPercent < 95) {
|
||||
if (progressPercent < 85) {
|
||||
setResumePosition(savedProgress.currentTime);
|
||||
logger.log(`[VideoPlayer] Set resume position to: ${savedProgress.currentTime}`);
|
||||
|
||||
|
|
|
|||
|
|
@ -156,9 +156,9 @@ export const useWatchProgress = (
|
|||
return 'Play';
|
||||
}
|
||||
|
||||
// Consider episode complete if progress is >= 95%
|
||||
// Consider episode complete if progress is >= 85%
|
||||
const progressPercent = (watchProgress.currentTime / watchProgress.duration) * 100;
|
||||
if (progressPercent >= 95) {
|
||||
if (progressPercent >= 85) {
|
||||
return 'Play';
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -666,11 +666,11 @@ const HomeScreen = () => {
|
|||
console.log('[HomeScreen] All watch progress in storage:', Object.keys(allProgress).length, 'items');
|
||||
console.log('[HomeScreen] Watch progress items:', allProgress);
|
||||
|
||||
// Check if any items are being filtered out due to >95% progress
|
||||
// Check if any items are being filtered out due to >85% progress
|
||||
let filteredCount = 0;
|
||||
for (const [key, progress] of Object.entries(allProgress)) {
|
||||
const progressPercent = (progress.currentTime / progress.duration) * 100;
|
||||
if (progressPercent >= 95) {
|
||||
if (progressPercent >= 85) {
|
||||
filteredCount++;
|
||||
console.log(`[HomeScreen] Filtered out ${key}: ${progressPercent.toFixed(1)}% complete`);
|
||||
} else {
|
||||
|
|
|
|||
Loading…
Reference in a new issue