Skip to content

Commit 243b12f

Browse files
phantomptrclaude
andcommitted
iPhone: exports, pickers, keep-awake and updates behave as on a phone
- pickSaveDest: every export/save (settings, logs, stats, search, collection, playlists, bug and crash reports, save backups, folder as .zip) opens the save dialog on desktop and Android, and on iPhone writes into the app's Documents folder (Files app) under a free name; the iOS dialog hands back no path this app can write - in-app pickers, no drag-and-drop UI, no reveal buttons, and the screen wake lock on every phone (isMobile), not Android only; RAR stays available on iPhone (unrar builds there) - update check: an "ios" manifest key pointing at the .ipa, with its own button label Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JoFXdUvVCDAG8xRjtp52qt
1 parent 2100af1 commit 243b12f

44 files changed

Lines changed: 180 additions & 51 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎client/src-tauri/src/commands/updates.rs‎

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,12 @@ fn current_platform_key() -> &'static str {
156156
{
157157
return "android";
158158
}
159+
// iPhone: the unsigned .ipa (arm64 only), which the person sideloads again with their tool.
160+
// Keep in sync with the `-ios-unsigned.ipa` pattern in scripts/gen-updater-manifest.py.
161+
#[cfg(target_os = "ios")]
162+
{
163+
return "ios";
164+
}
159165
#[allow(unreachable_code)]
160166
{
161167
"unknown"

‎client/src/components/CaptureViewer.tsx‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ import {
2020
} from "../lib/appCaptures";
2121
import { formatBytes } from "../lib/format";
2222
import { useFormatDate } from "../lib/formatDate";
23-
import { isAndroid } from "../lib/platform";
23+
import { isMobile } from "../lib/platform";
2424
import { useLangStore, useTr } from "../state/lang";
2525

2626
/**
@@ -139,7 +139,7 @@ export function CaptureViewer() {
139139
<span className="me-auto truncate text-xs text-[var(--color-muted)]" title={current.path}>
140140
{current.name} · {formatBytes(current.bytes)}
141141
</span>
142-
{!isAndroid() && (
142+
{!isMobile() && (
143143
<Button
144144
variant="ghost"
145145
size="sm"

‎client/src/i18n/locales/ar.ts‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1676,6 +1676,7 @@ keep_awake_on_mobile: "استمر في تشغيل الشاشة أثناء وجو
16761676
keep_awake_hint_mobile: "يوقف الشاشة عن التعتيم والقفل أثناء ظهور التطبيق — وهو مفيد أثناء التحميلات الطويلة. يتم إصدارها تلقائيًا عند تبديل التطبيقات أو إيقاف تشغيل الشاشة.",
16771677
keep_awake_unsupported_mobile: "قفل تنبيه الشاشة غير متوفر في WebView هذا.",
16781678
update_open_apk_button: "احصل على الإصدار{version} APK في المتصفح",
1679+
update_open_ipa_button: "تنزيل ‎.ipa للإصدار v{version} في المتصفح",
16791680
update_open_release_page: "فتح صفحة التنزيل",
16801681
keep_ps5_awake_mode: "حافظ على جهاز PS5 مستيقظًا",
16811682
keep_awake_mode_off: "إيقاف",

‎client/src/i18n/locales/bn.ts‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1676,6 +1676,7 @@ keep_awake_on_mobile: "PS5 আপলোড অগ্রভাগে থাকা
16761676
keep_awake_hint_mobile: "অ্যাপটি দৃশ্যমান থাকা অবস্থায় ডিমিং এবং লকিং থেকে ডিসপ্লেটি বন্ধ করে দেয় — দীর্ঘ আপলোডের সময় দরকারী । আপনি অ্যাপ্লিকেশনগুলি স্যুইচ করার সময় বা স্ক্রিনটি বন্ধ করার সময় স্বয়ংক্রিয়ভাবে মুক্তি দেওয়া হয় ।",
16771677
keep_awake_unsupported_mobile: "এই WebView-এ স্ক্রিন ওয়েক লক উপলভ্য নয় ।",
16781678
update_open_apk_button: "ব্রাউজারে v{version} APK পান",
1679+
update_open_ipa_button: "ব্রাউজারে v{version} .ipa নিন",
16791680
update_open_release_page: "ডাউনলোড পৃষ্ঠা খুলুন",
16801681
keep_ps5_awake_mode: "PS5 কে জাগিয়ে রাখুন",
16811682
keep_awake_mode_off: "বন্ধ",

‎client/src/i18n/locales/de.ts‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1684,6 +1684,7 @@ settings_section_reset: "Zurücksetzen",
16841684
keep_awake_hint_mobile: "Verhindert, dass das Display dimmt und sperrt, solange die App sichtbar ist — nützlich bei langen Uploads. Wird automatisch freigegeben, wenn du die App wechselst oder den Bildschirm ausschaltest.",
16851685
keep_awake_unsupported_mobile: "Der Bildschirm-Wake-Lock ist in dieser WebView nicht verfügbar.",
16861686
update_open_apk_button: "v{version}-APK im Browser laden",
1687+
update_open_ipa_button: "v{version} .ipa im Browser laden",
16871688
update_open_release_page: "Download-Seite öffnen",
16881689
keep_ps5_awake_mode: "PS5 wach halten",
16891690
keep_awake_mode_off: "Aus",

‎client/src/i18n/locales/en.ts‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2493,6 +2493,7 @@ keep_awake_on_mobile: "Keep the screen on while PS5 Upload is in the foreground"
24932493
keep_awake_hint_mobile: "Stops the display from dimming and locking while the app is visible — useful during long uploads. Released automatically when you switch apps or turn the screen off.",
24942494
keep_awake_unsupported_mobile: "Screen wake lock isn't available in this WebView.",
24952495
update_open_apk_button: "Get v{version} APK in browser",
2496+
update_open_ipa_button: "Get v{version} .ipa in browser",
24962497
update_open_release_page: "Open download page",
24972498
keep_ps5_awake_mode: "Keep the PS5 awake",
24982499
keep_awake_mode_off: "Off",

‎client/src/i18n/locales/es.ts‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1626,6 +1626,7 @@ keep_awake_on_mobile: "Mantener la pantalla encendida mientras PS5 Upload está
16261626
keep_awake_hint_mobile: "Evita que la pantalla se atenúe y se bloquee mientras la app está visible — útil durante subidas largas. Se libera automáticamente al cambiar de app o apagar la pantalla.",
16271627
keep_awake_unsupported_mobile: "El bloqueo de pantalla activa no está disponible en este WebView.",
16281628
update_open_apk_button: "Obtener el APK v{version} en el navegador",
1629+
update_open_ipa_button: "Obtener la .ipa v{version} en el navegador",
16291630
update_open_release_page: "Abrir página de descarga",
16301631
keep_ps5_awake_mode: "Mantener la PS5 despierta",
16311632
keep_awake_mode_off: "Desactivado",

‎client/src/i18n/locales/fa.ts‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2330,6 +2330,7 @@ keep_awake_on_mobile: "تا زمانی که PS5 Upload در پیش‌زمینه
23302330
keep_awake_hint_mobile: "جلوگیری از تار شدن و قفل شدن نمایشگر تا زمانی که برنامه قابل مشاهده است — برای بارگذاری‌های طولانی مفید است. با سوییچ برنامه‌ها یا خاموش کردن صفحه به‌طور خودکار آزاد می‌شود.",
23312331
keep_awake_unsupported_mobile: "قفل بیدار نگه‌داشتن صفحه در این WebView در دسترس نیست.",
23322332
update_open_apk_button: "دریافت APK نسخه‌ی v{version} در مرورگر",
2333+
update_open_ipa_button: "دریافت ‎.ipa نسخه v{version} در مرورگر",
23332334
update_open_release_page: "باز کردن صفحه‌ی دانلود",
23342335
keep_ps5_awake_mode: "بیدار نگه‌داشتن PS5",
23352336
keep_awake_mode_off: "خاموش",

‎client/src/i18n/locales/fr.ts‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1692,6 +1692,7 @@ settings_section_reset: "Réinitialisation",
16921692
"Empêche l'écran de s'assombrir et de se verrouiller tant que l'app est visible — utile pendant les longs envois. Relâché automatiquement quand vous changez d'app ou éteignez l'écran.",
16931693
keep_awake_unsupported_mobile: "Le verrou d'éveil de l'écran n'est pas disponible dans cette WebView.",
16941694
update_open_apk_button: "Obtenir l'APK v{version} dans le navigateur",
1695+
update_open_ipa_button: "Obtenir l’.ipa v{version} dans le navigateur",
16951696
update_open_release_page: "Ouvrir la page de téléchargement",
16961697
keep_ps5_awake_mode: "Garder la PS5 éveillée",
16971698
keep_awake_mode_off: "Désactivé",

‎client/src/i18n/locales/hi.ts‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1690,6 +1690,7 @@ settings_section_reset: "रीसेट",
16901690
keep_awake_unsupported_mobile:
16911691
"इस WebView में स्क्रीन वेक लॉक उपलब्ध नहीं है।",
16921692
update_open_apk_button: "ब्राउज़र में v{version} APK पाएँ",
1693+
update_open_ipa_button: "ब्राउज़र में v{version} .ipa पाएँ",
16931694
update_open_release_page: "डाउनलोड पेज खोलें",
16941695
keep_ps5_awake_mode: "PS5 को जागृत रखें",
16951696
keep_awake_mode_off: "बंद",

0 commit comments

Comments
 (0)