diff --git a/assets/rating-icons/imdb.png b/assets/rating-icons/imdb.png
deleted file mode 100644
index 716db22..0000000
Binary files a/assets/rating-icons/imdb.png and /dev/null differ
diff --git a/src/assets/dolbyvision.png b/src/assets/dolbyvision.png
deleted file mode 100644
index b72abea..0000000
Binary files a/src/assets/dolbyvision.png and /dev/null differ
diff --git a/src/assets/qualitybadge/VISION.svg b/src/assets/qualitybadge/VISION.svg
deleted file mode 100644
index f5783ac..0000000
--- a/src/assets/qualitybadge/VISION.svg
+++ /dev/null
@@ -1,10 +0,0 @@
-
diff --git a/src/assets/tmdb_logo.png b/src/assets/tmdb_logo.png
new file mode 100644
index 0000000..47b79fd
Binary files /dev/null and b/src/assets/tmdb_logo.png differ
diff --git a/src/components/metadata/MetadataDetails.tsx b/src/components/metadata/MetadataDetails.tsx
index 666a9b1..a51e53c 100644
--- a/src/components/metadata/MetadataDetails.tsx
+++ b/src/components/metadata/MetadataDetails.tsx
@@ -233,21 +233,10 @@ const MetadataDetails: React.FC = ({
)}
{metadata.imdbRating && !isMDBEnabled && (
-
{metadata.imdbRating}
diff --git a/src/components/metadata/QualityBadge.tsx b/src/components/metadata/QualityBadge.tsx
index b0b445a..88fd27a 100644
--- a/src/components/metadata/QualityBadge.tsx
+++ b/src/components/metadata/QualityBadge.tsx
@@ -1,6 +1,5 @@
import React from 'react';
import HDSvg from '../../assets/qualitybadge/HD.svg';
-import VISIONSvg from '../../assets/qualitybadge/VISION.svg';
import ADSvg from '../../assets/qualitybadge/AD.svg';
interface QualityBadgeProps {
@@ -17,8 +16,6 @@ const QualityBadge: React.FC = ({ type }) => {
switch (type) {
case 'HD':
return ;
- case 'VISION':
- return ;
case 'AD':
return ;
default:
diff --git a/src/components/metadata/RatingsSection.tsx b/src/components/metadata/RatingsSection.tsx
index 1ff2c6b..d22d573 100644
--- a/src/components/metadata/RatingsSection.tsx
+++ b/src/components/metadata/RatingsSection.tsx
@@ -1,5 +1,6 @@
import React, { useEffect, useState, useRef, useCallback, useMemo } from 'react';
import { View, Text, StyleSheet, ActivityIndicator, Image, Animated, Dimensions } from 'react-native';
+import { MaterialIcons as MaterialIconsWrapper } from '@expo/vector-icons';
import { useTheme } from '../../contexts/ThemeContext';
import { useMDBListRatings } from '../../hooks/useMDBListRatings';
import { mmkvStorage } from '../../services/mmkvStorage';
@@ -158,42 +159,49 @@ export const RatingsSection: React.FC = ({ imdbId, type })
// Define the order and icons/colors for the ratings
const ratingConfig = {
imdb: {
- icon: require('../../../assets/rating-icons/imdb.png'),
- isImage: true,
+ name: 'IMDb',
+ icon: null, // No icon for IMDb
+ isImage: false,
color: '#F5C518',
transform: (value: number) => value.toFixed(1)
},
tmdb: {
+ name: 'TMDB',
icon: TMDBIcon,
isImage: false,
color: '#01B4E4',
transform: (value: number) => value.toFixed(0)
},
trakt: {
+ name: 'Trakt',
icon: TraktIcon,
isImage: false,
color: '#ED1C24',
transform: (value: number) => value.toFixed(0)
},
letterboxd: {
+ name: 'Letterboxd',
icon: LetterboxdIcon,
isImage: false,
color: '#00E054',
transform: (value: number) => value.toFixed(1)
},
tomatoes: {
+ name: 'Rotten Tomatoes',
icon: RottenTomatoesIcon,
isImage: false,
color: '#FA320A',
transform: (value: number) => Math.round(value).toString() + '%'
},
audience: {
+ name: 'Audience Score',
icon: AudienceScoreIcon,
isImage: true,
color: '#FA320A',
transform: (value: number) => Math.round(value).toString() + '%'
},
metacritic: {
+ name: 'Metacritic',
icon: MetacriticIcon,
isImage: true,
color: '#FFCC33',
@@ -240,13 +248,23 @@ export const RatingsSection: React.FC = ({ imdbId, type })
style={[styles.compactRatingIcon, { width: iconSize, height: iconSize, marginRight: iconTextGap }]}
resizeMode="contain"
/>
- ) : (
+ ) : config.icon ? (
{React.createElement(config.icon as any, {
width: iconSize,
height: iconSize,
})}
+ ) : (
+ // Text fallback
+
+ {config.name}
+
)}
{displayValue}
diff --git a/src/components/metadata/SeriesContent.tsx b/src/components/metadata/SeriesContent.tsx
index 3ef7042..56b15c0 100644
--- a/src/components/metadata/SeriesContent.tsx
+++ b/src/components/metadata/SeriesContent.tsx
@@ -40,8 +40,7 @@ interface SeriesContentProps {
// Add placeholder constant at the top
const DEFAULT_PLACEHOLDER = 'https://via.placeholder.com/300x450/1a1a1a/666666?text=No+Image';
const EPISODE_PLACEHOLDER = 'https://via.placeholder.com/500x280/1a1a1a/666666?text=No+Preview';
-const TMDB_LOGO = 'https://upload.wikimedia.org/wikipedia/commons/thumb/8/89/Tmdb.new.logo.svg/512px-Tmdb.new.logo.svg.png?20200406190906';
-const IMDb_LOGO = 'https://upload.wikimedia.org/wikipedia/commons/thumb/6/69/IMDB_Logo_2016.svg/575px-IMDB_Logo_2016.svg.png';
+
const SeriesContentComponent: React.FC = ({
episodes,
@@ -1167,17 +1166,7 @@ const SeriesContentComponent: React.FC = ({
{isImdbRating ? (
<>
-
+
= ({
>
) : (
<>
-
{effectiveVote.toFixed(1)}
@@ -1433,17 +1412,7 @@ const SeriesContentComponent: React.FC = ({
{isImdbRating ? (
<>
-
+
= ({
>
) : (
<>
-
{effectiveVote.toFixed(1)}
@@ -2001,16 +1970,8 @@ const styles = StyleSheet.create({
alignItems: 'center',
// chip background removed
},
- tmdbLogo: {
- width: 20,
- height: 14,
- },
- imdbLogo: {
- width: 35,
- height: 18,
- },
ratingText: {
- color: '#01b4e4',
+ // color set dynamically or removed from here if unused
fontSize: 13,
fontWeight: '700',
marginLeft: 4,
@@ -2196,10 +2157,7 @@ const styles = StyleSheet.create({
// chip background removed
gap: 2,
},
- imdbLogoHorizontal: {
- width: 35,
- height: 18,
- },
+
ratingTextHorizontal: {
color: '#FFD700',
fontSize: 11,
diff --git a/src/components/player/cards/EpisodeCard.tsx b/src/components/player/cards/EpisodeCard.tsx
index 33834d6..9ec49c2 100644
--- a/src/components/player/cards/EpisodeCard.tsx
+++ b/src/components/player/cards/EpisodeCard.tsx
@@ -4,7 +4,7 @@ import FastImage from '@d11/react-native-fast-image';
import { MaterialIcons } from '@expo/vector-icons';
import { Episode } from '../../../types/metadata';
-const TMDB_LOGO = 'https://upload.wikimedia.org/wikipedia/commons/thumb/8/89/Tmdb.new.logo.svg/512px-Tmdb.new.logo.svg.png?20200406190906';
+
const EPISODE_PLACEHOLDER = 'https://via.placeholder.com/500x280/1a1a1a/666666?text=No+Preview';
interface EpisodeCardProps {
@@ -28,7 +28,7 @@ export const EpisodeCard: React.FC = ({
}) => {
const { width } = Dimensions.get('window');
const isTablet = width >= 768;
-
+
// Get episode image
let episodeImage = EPISODE_PLACEHOLDER;
if (episode.still_path) {
@@ -42,11 +42,11 @@ export const EpisodeCard: React.FC = ({
} else if (metadata?.poster) {
episodeImage = metadata.poster;
}
-
+
const episodeNumber = typeof episode.episode_number === 'number' ? episode.episode_number.toString() : '';
const seasonNumber = typeof episode.season_number === 'number' ? episode.season_number.toString() : '';
const episodeString = seasonNumber && episodeNumber ? `S${seasonNumber.padStart(2, '0')}E${episodeNumber.padStart(2, '0')}` : '';
-
+
// Get episode progress
const episodeId = episode.stremioId || `${metadata?.id}:${episode.season_number}:${episode.episode_number}`;
const tmdbOverride = tmdbEpisodeOverrides?.[`${metadata?.id}:${episode.season_number}:${episode.episode_number}`];
@@ -60,7 +60,7 @@ export const EpisodeCard: React.FC = ({
const progress = episodeProgress?.[episodeId];
const progressPercent = progress ? (progress.currentTime / progress.duration) * 100 : 0;
const showProgress = progress && progressPercent < 85;
-
+
const formatRuntime = (runtime: number) => {
if (!runtime) return null;
const hours = Math.floor(runtime / 60);
@@ -70,7 +70,7 @@ export const EpisodeCard: React.FC = ({
}
return `${minutes}m`;
};
-
+
const formatDate = (dateString: string) => {
const date = new Date(dateString);
return date.toLocaleDateString('en-US', {
@@ -106,11 +106,11 @@ export const EpisodeCard: React.FC = ({
{showProgress && (
-
)}
@@ -135,12 +135,7 @@ export const EpisodeCard: React.FC = ({
{effectiveVote > 0 && (
-
-
+
{effectiveVote.toFixed(1)}
@@ -234,10 +229,7 @@ const styles = StyleSheet.create({
flexDirection: 'row',
alignItems: 'center',
},
- tmdbLogo: {
- width: 20,
- height: 14,
- },
+
ratingText: {
fontSize: 13,
fontWeight: '700',
diff --git a/src/screens/TMDBSettingsScreen.tsx b/src/screens/TMDBSettingsScreen.tsx
index 09546cf..b96a92c 100644
--- a/src/screens/TMDBSettingsScreen.tsx
+++ b/src/screens/TMDBSettingsScreen.tsx
@@ -1037,6 +1037,23 @@ const TMDBSettingsScreen = () => {
+ {/* TMDB Attribution */}
+
+
+
+
+ This product uses the TMDB API but is not
+
+
+ endorsed or certified by TMDB.
+
+
+
+
{/* Language Picker Modal */}