Merge branch 'tapframe:main' into main
|
|
@ -1,6 +1,6 @@
|
|||
<div align="center">
|
||||
|
||||
<img src="assets/nuviotext.png" alt="Nuvio" width="300" />
|
||||
<img src="https://github.com/tapframe/NuvioTV/blob/main/assets/brand/app_logo_wordmark.png" alt="Nuvio" width="300" />
|
||||
<br />
|
||||
<br />
|
||||
|
||||
|
|
|
|||
|
|
@ -95,8 +95,8 @@ android {
|
|||
applicationId 'com.nuvio.app'
|
||||
minSdkVersion rootProject.ext.minSdkVersion
|
||||
targetSdkVersion rootProject.ext.targetSdkVersion
|
||||
versionCode 35
|
||||
versionName "1.3.7"
|
||||
versionCode 36
|
||||
versionName "1.4.0"
|
||||
|
||||
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 = 35 // Current versionCode 35 from defaultConfig
|
||||
def baseVersionCode = 36 // Current versionCode 36 from defaultConfig
|
||||
def abiName = output.getFilter(com.android.build.OutputFile.ABI)
|
||||
|
||||
def versionCode = baseVersionCode * 100 // Base multiplier
|
||||
|
|
|
|||
|
|
@ -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.7</string>
|
||||
<string name="expo_runtime_version">1.4.0</string>
|
||||
</resources>
|
||||
8
app.json
|
|
@ -2,7 +2,7 @@
|
|||
"expo": {
|
||||
"name": "Nuvio",
|
||||
"slug": "nuvio",
|
||||
"version": "1.3.7",
|
||||
"version": "1.4.0",
|
||||
"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": "35",
|
||||
"buildNumber": "36",
|
||||
"infoPlist": {
|
||||
"NSAppTransportSecurity": {
|
||||
"NSAllowsArbitraryLoads": true
|
||||
|
|
@ -52,7 +52,7 @@
|
|||
"android.permission.WRITE_SETTINGS"
|
||||
],
|
||||
"package": "com.nuvio.app",
|
||||
"versionCode": 35,
|
||||
"versionCode": 36,
|
||||
"architectures": [
|
||||
"arm64-v8a",
|
||||
"armeabi-v7a",
|
||||
|
|
@ -105,6 +105,6 @@
|
|||
"fallbackToCacheTimeout": 30000,
|
||||
"url": "https://ota.nuvioapp.space/api/manifest"
|
||||
},
|
||||
"runtimeVersion": "1.3.7"
|
||||
"runtimeVersion": "1.4.0"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 4 KiB After Width: | Height: | Size: 4.1 KiB |
|
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 2.5 KiB |
|
Before Width: | Height: | Size: 6.1 KiB After Width: | Height: | Size: 5.7 KiB |
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 9.4 KiB |
|
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 46 KiB After Width: | Height: | Size: 49 KiB |
|
Before Width: | Height: | Size: 3 KiB After Width: | Height: | Size: 4.1 KiB |
|
Before Width: | Height: | Size: 8.2 KiB After Width: | Height: | Size: 10 KiB |
|
Before Width: | Height: | Size: 3 KiB After Width: | Height: | Size: 4.1 KiB |
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 3.4 KiB After Width: | Height: | Size: 4.3 KiB |
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 2.5 KiB |
|
Before Width: | Height: | Size: 4.9 KiB After Width: | Height: | Size: 6 KiB |
|
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 2.5 KiB |
|
Before Width: | Height: | Size: 4.3 KiB After Width: | Height: | Size: 5.7 KiB |
|
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 4.3 KiB After Width: | Height: | Size: 5.7 KiB |
|
Before Width: | Height: | Size: 7 KiB After Width: | Height: | Size: 9.4 KiB |
|
Before Width: | Height: | Size: 23 KiB After Width: | Height: | Size: 24 KiB |
|
Before Width: | Height: | Size: 7 KiB After Width: | Height: | Size: 9.4 KiB |
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 36 KiB After Width: | Height: | Size: 35 KiB |
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 46 KiB After Width: | Height: | Size: 49 KiB |
|
Before Width: | Height: | Size: 968 B After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 2 KiB |
|
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 3.2 KiB |
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 3.1 KiB |
|
Before Width: | Height: | Size: 3.8 KiB After Width: | Height: | Size: 5.1 KiB |
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 2 KiB |
|
Before Width: | Height: | Size: 3.4 KiB After Width: | Height: | Size: 4.6 KiB |
|
Before Width: | Height: | Size: 5.5 KiB After Width: | Height: | Size: 7.5 KiB |
|
Before Width: | Height: | Size: 5.5 KiB After Width: | Height: | Size: 7.5 KiB |
|
Before Width: | Height: | Size: 9.6 KiB After Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 3.2 KiB After Width: | Height: | Size: 4.3 KiB |
|
Before Width: | Height: | Size: 7.6 KiB After Width: | Height: | Size: 10 KiB |
|
Before Width: | Height: | Size: 8.5 KiB After Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 132 KiB After Width: | Height: | Size: 125 KiB |
|
Before Width: | Height: | Size: 46 KiB After Width: | Height: | Size: 49 KiB |
|
Before Width: | Height: | Size: 132 KiB After Width: | Height: | Size: 125 KiB |
|
Before Width: | Height: | Size: 71 KiB After Width: | Height: | Size: 133 KiB |
15
eas.json
|
|
@ -5,13 +5,22 @@
|
|||
},
|
||||
"build": {
|
||||
"development": {
|
||||
"env": {
|
||||
"SENTRY_DISABLE_AUTO_UPLOAD": "true"
|
||||
},
|
||||
"developmentClient": true,
|
||||
"distribution": "internal"
|
||||
},
|
||||
"preview": {
|
||||
"env": {
|
||||
"SENTRY_DISABLE_AUTO_UPLOAD": "true"
|
||||
},
|
||||
"distribution": "internal"
|
||||
},
|
||||
"production": {
|
||||
"env": {
|
||||
"SENTRY_DISABLE_AUTO_UPLOAD": "true"
|
||||
},
|
||||
"autoIncrement": true,
|
||||
"extends": "apk",
|
||||
"android": {
|
||||
|
|
@ -21,12 +30,18 @@
|
|||
}
|
||||
},
|
||||
"release": {
|
||||
"env": {
|
||||
"SENTRY_DISABLE_AUTO_UPLOAD": "true"
|
||||
},
|
||||
"distribution": "store",
|
||||
"android": {
|
||||
"buildType": "app-bundle"
|
||||
}
|
||||
},
|
||||
"apk": {
|
||||
"env": {
|
||||
"SENTRY_DISABLE_AUTO_UPLOAD": "true"
|
||||
},
|
||||
"android": {
|
||||
"buildType": "apk",
|
||||
"gradleCommand": ":app:assembleRelease"
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 127 KiB After Width: | Height: | Size: 125 KiB |
|
|
@ -39,7 +39,7 @@
|
|||
</dict>
|
||||
</array>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>35</string>
|
||||
<string>36</string>
|
||||
<key>LSMinimumSystemVersion</key>
|
||||
<string>12.0</string>
|
||||
<key>LSRequiresIPhoneOS</key>
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
"start": "expo start",
|
||||
"android": "expo run:android",
|
||||
"ios": "expo run:ios",
|
||||
"build": "export NODE_ENV=production && cd android && ./gradlew assembleRelease",
|
||||
"build": "export NODE_ENV=production && export SENTRY_DISABLE_AUTO_UPLOAD=true && cd android && ./gradlew assembleRelease",
|
||||
"postinstall": "patch-package"
|
||||
},
|
||||
"dependencies": {
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 77 KiB After Width: | Height: | Size: 153 KiB |
|
|
@ -1424,4 +1424,5 @@
|
|||
"no_logs_captured": "Нема снимено логови."
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -625,8 +625,7 @@
|
|||
"enter_custom_key": "Voer je eigen TMDb API key in en sla op.",
|
||||
"key_verified": "API key geverifieerd en succesvol opgeslagen."
|
||||
},
|
||||
{
|
||||
"settings": {
|
||||
"settings": {
|
||||
"language": "Taal",
|
||||
"select_language": "Selecteer taal",
|
||||
"english": "Engels",
|
||||
|
|
@ -650,7 +649,7 @@
|
|||
"slovenian": "Sloveens",
|
||||
"macedonian": "Macedonisch",
|
||||
"russian": "Russisch",
|
||||
"filipino": "Filipijns"
|
||||
"filipino": "Filipijns",
|
||||
"dutch_nl": "Nederlands (Nederland)",
|
||||
"romanian": "Roemeens",
|
||||
"albanian": "Albanees",
|
||||
|
|
@ -1029,8 +1028,7 @@
|
|||
"no_upcoming_found": "Geen aankomende afleveringen gevonden",
|
||||
"add_series_desc": "Voeg series toe aan je bibliotheek om ze hier te zien"
|
||||
},
|
||||
{
|
||||
"mdblist": {
|
||||
"mdblist": {
|
||||
"title": "Beoordelingsbronnen",
|
||||
"status_disabled": "MDBList uitgeschakeld",
|
||||
"status_active": "API-key actief",
|
||||
|
|
@ -1429,4 +1427,4 @@
|
|||
"no_logs_captured": "Geen logs vastgelegd."
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -625,8 +625,7 @@
|
|||
"enter_custom_key": "Te rugăm să introduci și să salvezi cheia personalizată.",
|
||||
"key_verified": "Cheia API a fost verificată și salvată cu succes."
|
||||
},
|
||||
{
|
||||
"settings": {
|
||||
"settings": {
|
||||
"language": "Limbă",
|
||||
"select_language": "Selectează limba",
|
||||
"english": "Engleză",
|
||||
|
|
@ -1029,8 +1028,7 @@
|
|||
"no_upcoming_found": "Niciun episod viitor găsit",
|
||||
"add_series_desc": "Adaugă seriale în bibliotecă pentru a vedea episoadele lor viitoare aici"
|
||||
},
|
||||
{
|
||||
"mdblist": {
|
||||
"mdblist": {
|
||||
"title": "Surse de evaluare",
|
||||
"status_disabled": "MDBList dezactivat",
|
||||
"status_active": "Cheie API activă",
|
||||
|
|
@ -1429,4 +1427,4 @@
|
|||
"no_logs_captured": "Niciun log capturat."
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -625,8 +625,7 @@
|
|||
"enter_custom_key": "Ju lutem jepni dhe ruani çelësin tuaj personal.",
|
||||
"key_verified": "Çelësi API u verifikua dhe u ruajt me sukses."
|
||||
},
|
||||
{
|
||||
"settings": {
|
||||
"settings": {
|
||||
"language": "Gjuha",
|
||||
"select_language": "Zgjidh Gjuhën",
|
||||
"english": "Anglisht",
|
||||
|
|
@ -973,8 +972,7 @@
|
|||
"alert_disconnect_title": "Shkëput Torbox",
|
||||
"alert_disconnect_msg": "Jeni të sigurt? Kjo do të fshijë çelësin API të ruajtur."
|
||||
},
|
||||
{
|
||||
"home_screen": {
|
||||
"home_screen": {
|
||||
"title": "Cilësimet e Ekranit Kryesor",
|
||||
"changes_applied": "Ndryshimet u aplikuan",
|
||||
"display_options": "OPSIONET E SHFAQJES",
|
||||
|
|
@ -1429,4 +1427,4 @@
|
|||
"no_logs_captured": "Nuk u kap asnjë log."
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ import { useToast } from '../contexts/ToastContext';
|
|||
import { useSafeAreaInsets } from 'react-native-safe-area-context';
|
||||
|
||||
const EMAIL_CONFIRMATION_REQUIRED_PREFIX = '__EMAIL_CONFIRMATION__';
|
||||
const AUTH_BG_GRADIENT = ['#07090F', '#0D1020', '#140B24'];
|
||||
const AUTH_BG_GRADIENT = ['#07090F', '#0D1020', '#140B24'] as const;
|
||||
|
||||
const normalizeAuthErrorMessage = (input: string): string => {
|
||||
const raw = (input || '').trim();
|
||||
|
|
|
|||
|
|
@ -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.7';
|
||||
export const APP_VERSION = '1.4.0';
|
||||
|
||||
export function getDisplayedAppVersion(): string {
|
||||
return APP_VERSION;
|
||||
|
|
|
|||