TMDB Settings Localization Patch

This commit is contained in:
cyberalby2 2026-03-06 19:36:49 +01:00
parent d840b06ca7
commit e3f95f75e5
8 changed files with 6583 additions and 5867 deletions

View file

@ -2,12 +2,12 @@
<uses-sdk tools:overrideLibrary="dev.jdtech.mpv"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES"/>
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
<uses-permission android:name="android.permission.VIBRATE"/>
<uses-permission android:name="android.permission.WAKE_LOCK"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_SETTINGS"/>
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES"/>
<queries>
<intent>
<action android:name="android.intent.action.VIEW"/>
@ -21,7 +21,7 @@
<meta-data android:name="expo.modules.updates.ENABLED" android:value="true"/>
<meta-data android:name="expo.modules.updates.EXPO_RUNTIME_VERSION" android:value="@string/expo_runtime_version"/>
<meta-data android:name="expo.modules.updates.EXPO_UPDATES_CHECK_ON_LAUNCH" android:value="ERROR_RECOVERY_ONLY"/>
<meta-data android:name="expo.modules.updates.EXPO_UPDATES_LAUNCH_WAIT_MS" android:value="5000"/>
<meta-data android:name="expo.modules.updates.EXPO_UPDATES_LAUNCH_WAIT_MS" android:value="30000"/>
<meta-data android:name="expo.modules.updates.EXPO_UPDATE_URL" android:value="https://ota.nuvioapp.space/api/manifest"/>
<activity android:name=".MainActivity" android:configChanges="keyboard|keyboardHidden|orientation|screenSize|screenLayout|uiMode|locale|layoutDirection" android:launchMode="singleTask" android:windowSoftInputMode="adjustResize" android:theme="@style/Theme.App.SplashScreen" android:exported="true" android:screenOrientation="unspecified">
<intent-filter>
@ -37,4 +37,4 @@
</intent-filter>
</activity>
</application>
</manifest>
</manifest>

View file

@ -1,4 +1,4 @@
defaults.url=https://sentry.io/
defaults.org=tapframe
defaults.org=fatticazzituoi
defaults.project=react-native
auth.token=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
# Using SENTRY_AUTH_TOKEN environment variable

View file

@ -1599,29 +1599,6 @@ public class ReactExoplayerView extends FrameLayout implements
Track audioTrack = exoplayerTrackToGenericTrack(format, groupIndex, selection, group);
audioTrack.setBitrate(format.bitrate == Format.NO_VALUE ? 0 : format.bitrate);
audioTrack.setSelected(isSelected);
// Encode channel count, bitrate and mimeType into title so JS can read them reliably
// e.g. "English|ch:6|br:640000|mt:audio/ac3"
String existing = audioTrack.getTitle() != null ? audioTrack.getTitle() : "";
if (format.channelCount != Format.NO_VALUE && format.channelCount > 0) {
existing = existing + "|ch:" + format.channelCount;
}
// Use bitrate, fall back to averageBitrate then peakBitrate
int effectiveBitrate = format.bitrate;
if (effectiveBitrate == Format.NO_VALUE || effectiveBitrate <= 0) {
effectiveBitrate = format.averageBitrate;
}
if (effectiveBitrate == Format.NO_VALUE || effectiveBitrate <= 0) {
effectiveBitrate = format.peakBitrate;
}
if (effectiveBitrate != Format.NO_VALUE && effectiveBitrate > 0) {
existing = existing + "|br:" + effectiveBitrate;
}
if (format.sampleMimeType != null && !format.sampleMimeType.isEmpty()) {
existing = existing + "|mt:" + format.sampleMimeType;
}
if (!existing.isEmpty()) {
audioTrack.setTitle(existing);
}
audioTracks.add(audioTrack);
}
@ -1817,25 +1794,7 @@ public class ReactExoplayerView extends FrameLayout implements
Track track = new Track();
track.setIndex(groupIndex);
track.setLanguage(format.language != null ? format.language : "unknown");
String baseTitle = format.label != null ? format.label : "";
if (format.channelCount != Format.NO_VALUE && format.channelCount > 0) {
baseTitle = baseTitle + "|ch:" + format.channelCount;
}
// Use bitrate, fall back to averageBitrate then peakBitrate
int effectiveBitrate = format.bitrate;
if (effectiveBitrate == Format.NO_VALUE || effectiveBitrate <= 0) {
effectiveBitrate = format.averageBitrate;
}
if (effectiveBitrate == Format.NO_VALUE || effectiveBitrate <= 0) {
effectiveBitrate = format.peakBitrate;
}
if (effectiveBitrate != Format.NO_VALUE && effectiveBitrate > 0) {
baseTitle = baseTitle + "|br:" + effectiveBitrate;
}
if (format.sampleMimeType != null && !format.sampleMimeType.isEmpty()) {
baseTitle = baseTitle + "|mt:" + format.sampleMimeType;
}
track.setTitle(baseTitle);
track.setTitle(format.label != null ? format.label : "Track " + (groupIndex + 1));
track.setSelected(false); // Don't report selection status - let PlayerView handle it
if (format.sampleMimeType != null)
track.setMimeType(format.sampleMimeType);

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -595,7 +595,7 @@ const TraktSettingsScreen: React.FC = () => {
</View>
)}
<Text style={[styles.disclaimer, { color: isDarkMode ? currentTheme.colors.mediumEmphasis : currentTheme.colors.textMutedDark }]}>
This product uses the Trakt API but is not endorsed or certified by Trakt.
{t('trakt.disclaimer')}
</Text>
</ScrollView>