diff --git a/core/presentation/src/commonMain/composeResources/files/whatsnew/18.json b/core/presentation/src/commonMain/composeResources/files/whatsnew/18.json index 1790bed2a..e84b73dac 100644 --- a/core/presentation/src/commonMain/composeResources/files/whatsnew/18.json +++ b/core/presentation/src/commonMain/composeResources/files/whatsnew/18.json @@ -36,7 +36,8 @@ "SVG images in README and release notes now render natively (diagrams, hero images). Theme-only images respect light/dark — no more both-variants-stacked. Browser-like User-Agent fixes hotlink-blocked badges from common CDNs.", "Code blocks in README and release notes now have syntax highlighting — Kotlin, Java, Python, JS/TS, Rust, Swift, C#, Ruby, Shell, and more. Theme-aware colors for light + dark.", "Markdown polish — HTML blockquotes and
 fences now render correctly. Sub/superscript convert to unicode (H₂O, x²). Named HTML entities (©, ™, —, “curly quotes”, etc.) decoded.",
-        "Collapsible 
/ sections render as tap-to-expand cards. Adjacent badge / button images (Play Store, GitHub Releases, etc.) flow in a single row instead of stacking." + "Collapsible
/ sections render as tap-to-expand cards. Adjacent badge / button images (Play Store, GitHub Releases, etc.) flow in a single row instead of stacking.", + "Manual app matching no longer re-downloads to verify — your selected version is trusted as-is. Details banner notes when an app was manually linked." ] } ] diff --git a/core/presentation/src/commonMain/composeResources/files/whatsnew/ar/18.json b/core/presentation/src/commonMain/composeResources/files/whatsnew/ar/18.json index bb4df0f27..51ccaac97 100644 --- a/core/presentation/src/commonMain/composeResources/files/whatsnew/ar/18.json +++ b/core/presentation/src/commonMain/composeResources/files/whatsnew/ar/18.json @@ -36,7 +36,8 @@ "صور SVG في README وملاحظات الإصدار تظهر الآن أصلياً (مخططات، صور رئيسية). الصور الخاصة بسمة معينة تحترم الفاتح/الداكن. User-Agent يشبه المتصفح يصلح شارات CDN المحجوبة.", "كتل الكود في README وملاحظات الإصدار أصبحت ملونة الآن — Kotlin وJava وPython وJS/TS وRust وSwift وC# وRuby وShell وغيرها. ألوان متجاوبة مع الفاتح والداكن.", "تحسينات Markdown — اقتباسات HTML وكتل
 تظهر صحيحة. النصوص العلوية/السفلية تتحول إلى Unicode (H₂O، x²). كيانات HTML المسماة (©، ™، —، الاقتباسات المنحنية) تُفك ترميزها.",
-        "أقسام 
/ القابلة للطي تظهر كبطاقات قابلة للتوسيع بنقرة. صور الشارات/الأزرار المتجاورة (Play Store وGitHub Releases وغيرها) تتدفق في صف واحد بدلاً من التكدس." + "أقسام
/ القابلة للطي تظهر كبطاقات قابلة للتوسيع بنقرة. صور الشارات/الأزرار المتجاورة (Play Store وGitHub Releases وغيرها) تتدفق في صف واحد بدلاً من التكدس.", + "المطابقة اليدوية للتطبيقات لم تعد تتطلب إعادة التنزيل — يتم اعتماد إصدارك المختار كما هو. لافتة على التفاصيل توضح أن التطبيق تم ربطه يدوياً." ] } ] diff --git a/core/presentation/src/commonMain/composeResources/files/whatsnew/bn/18.json b/core/presentation/src/commonMain/composeResources/files/whatsnew/bn/18.json index fe5e2c47a..f747628cd 100644 --- a/core/presentation/src/commonMain/composeResources/files/whatsnew/bn/18.json +++ b/core/presentation/src/commonMain/composeResources/files/whatsnew/bn/18.json @@ -36,7 +36,8 @@ "README ও রিলিজ নোটে SVG ছবি এখন নেটিভভাবে রেন্ডার হয় (ডায়াগ্রাম, হিরো ইমেজ)। থিম-নির্দিষ্ট ছবি লাইট/ডার্ক মেনে চলে। ব্রাউজারের মতো User-Agent CDN-ব্লকড ব্যাজ ঠিক করে।", "README ও রিলিজ নোটে কোড ব্লকে সিনট্যাক্স হাইলাইটিং — Kotlin, Java, Python, JS/TS, Rust, Swift, C#, Ruby, Shell ইত্যাদি। লাইট/ডার্ক থিম-সচেতন রং।", "Markdown উন্নতি — HTML blockquote ও
 ব্লক সঠিক রেন্ডার। Sub/superscript ইউনিকোডে রূপান্তর (H₂O, x²)। নামধারী HTML entities (©, ™, —, কার্ভড কোটেশন) ডিকোড।",
-        "ভাঁজযোগ্য 
/ সেকশন ট্যাপ-টু-এক্সপ্যান্ড কার্ড হিসেবে দেখায়। পাশাপাশি ব্যাজ/বোতাম ছবি (Play Store, GitHub Releases) এক সারিতে আসে, আলাদা স্ট্যাক হয় না।" + "ভাঁজযোগ্য
/ সেকশন ট্যাপ-টু-এক্সপ্যান্ড কার্ড হিসেবে দেখায়। পাশাপাশি ব্যাজ/বোতাম ছবি (Play Store, GitHub Releases) এক সারিতে আসে, আলাদা স্ট্যাক হয় না।", + "ম্যানুয়াল অ্যাপ ম্যাচিংয়ে আর পুনঃডাউনলোড লাগে না — আপনার বেছে নেওয়া সংস্করণ অবিকল ট্রাস্ট হয়। Details ব্যানার দেখায় কোন অ্যাপ ম্যানুয়ালি লিঙ্ক করা।" ] } ] diff --git a/core/presentation/src/commonMain/composeResources/files/whatsnew/es/18.json b/core/presentation/src/commonMain/composeResources/files/whatsnew/es/18.json index 5482ca4a1..d08bab208 100644 --- a/core/presentation/src/commonMain/composeResources/files/whatsnew/es/18.json +++ b/core/presentation/src/commonMain/composeResources/files/whatsnew/es/18.json @@ -36,7 +36,8 @@ "Imágenes SVG en README y notas de versión ahora se renderizan nativamente (diagramas, hero). Imágenes de tema único respetan claro/oscuro. User-Agent de navegador desbloquea badges de CDN.", "Los bloques de código en README y notas de versión tienen resaltado de sintaxis — Kotlin, Java, Python, JS/TS, Rust, Swift, C#, Ruby, Shell, etc. Colores adaptados a claro/oscuro.", "Pulido de Markdown — blockquotes HTML y bloques
 renderizan bien. Sub/superíndices convierten a Unicode (H₂O, x²). Entidades HTML con nombre (©, ™, —, comillas curvas) decodificadas.",
-        "Secciones 
/ colapsables como tarjetas tap-to-expand. Imágenes de insignia/botón adyacentes (Play Store, GitHub Releases, etc.) fluyen en una fila en vez de apilarse." + "Secciones
/ colapsables como tarjetas tap-to-expand. Imágenes de insignia/botón adyacentes (Play Store, GitHub Releases, etc.) fluyen en una fila en vez de apilarse.", + "Vincular apps manualmente ya no requiere re-descargar — tu versión seleccionada se acepta tal cual. Un banner en Detalles indica cuando una app fue vinculada manualmente." ] } ] diff --git a/core/presentation/src/commonMain/composeResources/files/whatsnew/fr/18.json b/core/presentation/src/commonMain/composeResources/files/whatsnew/fr/18.json index 3586eaf88..9d284e4af 100644 --- a/core/presentation/src/commonMain/composeResources/files/whatsnew/fr/18.json +++ b/core/presentation/src/commonMain/composeResources/files/whatsnew/fr/18.json @@ -36,7 +36,8 @@ "Les images SVG dans README et notes de version s'affichent maintenant nativement (diagrammes, héros). Les images mono-thème respectent clair/sombre. User-Agent navigateur débloque les badges CDN.", "Les blocs de code dans README et notes de version ont une coloration syntaxique — Kotlin, Java, Python, JS/TS, Rust, Swift, C#, Ruby, Shell, etc. Couleurs adaptées au thème clair/sombre.", "Polish Markdown — blockquotes HTML et blocs
 rendus correctement. Sub/superscripts en Unicode (H₂O, x²). Entités HTML nommées (©, ™, —, guillemets courbes) décodées.",
-        "Sections 
/ dépliables en cartes tap-to-expand. Images de badges/boutons adjacents (Play Store, GitHub Releases, etc.) flottent sur une seule ligne au lieu d'être empilées." + "Sections
/ dépliables en cartes tap-to-expand. Images de badges/boutons adjacents (Play Store, GitHub Releases, etc.) flottent sur une seule ligne au lieu d'être empilées.", + "Lier une app manuellement ne nécessite plus de re-télécharger — ta version sélectionnée est acceptée telle quelle. Un bandeau sur Détails indique qu'une app a été liée manuellement." ] } ] diff --git a/core/presentation/src/commonMain/composeResources/files/whatsnew/hi/18.json b/core/presentation/src/commonMain/composeResources/files/whatsnew/hi/18.json index 9fff6e706..a6c2082bc 100644 --- a/core/presentation/src/commonMain/composeResources/files/whatsnew/hi/18.json +++ b/core/presentation/src/commonMain/composeResources/files/whatsnew/hi/18.json @@ -36,7 +36,8 @@ "README और रिलीज़ नोट्स में SVG इमेज अब नेटिव रूप से रेंडर होती हैं (डायग्राम, हीरो)। थीम-विशिष्ट इमेज लाइट/डार्क का सम्मान करती हैं। ब्राउज़र-समान User-Agent CDN-ब्लॉक्ड बैज ठीक करता है।", "README और रिलीज़ नोट्स के कोड ब्लॉक में सिंटैक्स हाइलाइटिंग — Kotlin, Java, Python, JS/TS, Rust, Swift, C#, Ruby, Shell आदि। लाइट/डार्क थीम-संगत रंग।", "Markdown पॉलिश — HTML blockquote और
 ब्लॉक सही रेंडर। Sub/superscript यूनिकोड में (H₂O, x²)। नामित HTML entities (©, ™, —, कर्व्ड कोट्स) डिकोड।",
-        "
/ कोलैप्सिबल सेक्शन टैप-टू-एक्सपैंड कार्ड के रूप में रेंडर। आसन्न बैज/बटन इमेज (Play Store, GitHub Releases) स्टैक होने के बजाय एक पंक्ति में आती हैं।" + "
/ कोलैप्सिबल सेक्शन टैप-टू-एक्सपैंड कार्ड के रूप में रेंडर। आसन्न बैज/बटन इमेज (Play Store, GitHub Releases) स्टैक होने के बजाय एक पंक्ति में आती हैं।", + "मैन्युअल ऐप मैचिंग के लिए अब पुनः डाउनलोड नहीं — आपका चयनित संस्करण वैसा का वैसा भरोसा किया जाता है। Details पर एक बैनर बताता है कि ऐप मैन्युअली लिंक किया गया।" ] } ] diff --git a/core/presentation/src/commonMain/composeResources/files/whatsnew/it/18.json b/core/presentation/src/commonMain/composeResources/files/whatsnew/it/18.json index 1f3f7f17e..bae71456c 100644 --- a/core/presentation/src/commonMain/composeResources/files/whatsnew/it/18.json +++ b/core/presentation/src/commonMain/composeResources/files/whatsnew/it/18.json @@ -36,7 +36,8 @@ "Le immagini SVG in README e note di rilascio ora si renderizzano nativamente (diagrammi, hero). Le immagini per tema rispettano chiaro/scuro. User-Agent da browser sblocca i badge CDN.", "I blocchi di codice in README e note di rilascio hanno l'evidenziazione della sintassi — Kotlin, Java, Python, JS/TS, Rust, Swift, C#, Ruby, Shell e altri. Colori adattati a chiaro/scuro.", "Rifinitura Markdown — blockquote HTML e
 renderizzano correttamente. Sub/apice in Unicode (H₂O, x²). Entità HTML nominate (©, ™, —, virgolette curve) decodificate.",
-        "Sezioni 
/ espandibili come card tap-to-expand. Immagini di badge/pulsante adiacenti (Play Store, GitHub Releases, ecc.) scorrono su una riga invece di impilarsi." + "Sezioni
/ espandibili come card tap-to-expand. Immagini di badge/pulsante adiacenti (Play Store, GitHub Releases, ecc.) scorrono su una riga invece di impilarsi.", + "Il collegamento manuale delle app non richiede più il re-download — la versione che scegli viene accettata così com'è. Un banner sui Dettagli segnala quando un'app è stata collegata manualmente." ] } ] diff --git a/core/presentation/src/commonMain/composeResources/files/whatsnew/ja/18.json b/core/presentation/src/commonMain/composeResources/files/whatsnew/ja/18.json index b39713bbb..ca9a9e1e1 100644 --- a/core/presentation/src/commonMain/composeResources/files/whatsnew/ja/18.json +++ b/core/presentation/src/commonMain/composeResources/files/whatsnew/ja/18.json @@ -36,7 +36,8 @@ "README とリリースノートの SVG 画像をネイティブに描画(図、ヒーロー画像)。テーマ専用画像はライト/ダークを尊重。ブラウザ風 User-Agent で CDN ホットリンクブロックを回避。", "README とリリースノートのコードブロックにシンタックスハイライト — Kotlin、Java、Python、JS/TS、Rust、Swift、C#、Ruby、Shell など。ライト/ダーク対応の配色。", "Markdown 微調整 — HTML の blockquote と
 が正しく描画。上付き/下付き文字を Unicode に変換(H₂O、x²)。名前付き HTML エンティティ(©、™、—、カーリークォート)をデコード。",
-        "
/ 折りたたみ可能セクションをタップで展開できるカードに。隣接するバッジ/ボタン画像(Play Store、GitHub Releases など)が縦に積まれず一行に並びます。" + "
/ 折りたたみ可能セクションをタップで展開できるカードに。隣接するバッジ/ボタン画像(Play Store、GitHub Releases など)が縦に積まれず一行に並びます。", + "アプリの手動マッチングで再ダウンロードが不要に — 選んだバージョンをそのまま信頼します。詳細画面に手動リンクである旨のバナーを表示。" ] } ] diff --git a/core/presentation/src/commonMain/composeResources/files/whatsnew/ko/18.json b/core/presentation/src/commonMain/composeResources/files/whatsnew/ko/18.json index 8ced37b1b..6cea6034c 100644 --- a/core/presentation/src/commonMain/composeResources/files/whatsnew/ko/18.json +++ b/core/presentation/src/commonMain/composeResources/files/whatsnew/ko/18.json @@ -36,7 +36,8 @@ "README와 릴리스 노트의 SVG 이미지가 네이티브로 렌더링됩니다 (다이어그램, 히어로). 테마 전용 이미지는 라이트/다크를 따릅니다. 브라우저 같은 User-Agent로 CDN 핫링크 차단 우회.", "README와 릴리스 노트의 코드 블록에 구문 강조 — Kotlin, Java, Python, JS/TS, Rust, Swift, C#, Ruby, Shell 등. 라이트/다크 테마에 맞는 색상.", "Markdown 다듬기 — HTML blockquote와
가 올바르게 렌더링. 위첨자/아래첨자가 유니코드로 변환 (H₂O, x²). 명명된 HTML 엔티티 (©, ™, —, 곡선 따옴표) 디코드.",
-        "
/ 접이식 섹션이 탭하여 펼치는 카드로 표시됩니다. 인접한 배지/버튼 이미지(Play Store, GitHub Releases 등)가 쌓이지 않고 한 줄에 정렬됩니다." + "
/ 접이식 섹션이 탭하여 펼치는 카드로 표시됩니다. 인접한 배지/버튼 이미지(Play Store, GitHub Releases 등)가 쌓이지 않고 한 줄에 정렬됩니다.", + "수동 앱 매칭에서 더 이상 재다운로드가 필요 없습니다 — 선택한 버전을 그대로 신뢰합니다. 상세 화면 배너로 수동 연결 여부를 표시합니다." ] } ] diff --git a/core/presentation/src/commonMain/composeResources/files/whatsnew/pl/18.json b/core/presentation/src/commonMain/composeResources/files/whatsnew/pl/18.json index 837f6ab64..6139162e1 100644 --- a/core/presentation/src/commonMain/composeResources/files/whatsnew/pl/18.json +++ b/core/presentation/src/commonMain/composeResources/files/whatsnew/pl/18.json @@ -36,7 +36,8 @@ "Obrazy SVG w README i notatkach wydania renderują się teraz natywnie (diagramy, hero). Obrazy tylko-jasny/tylko-ciemny respektują motyw. Przeglądarkowy User-Agent odblokuje badge'e CDN.", "Bloki kodu w README i notatkach wydania mają teraz podświetlanie składni — Kotlin, Java, Python, JS/TS, Rust, Swift, C#, Ruby, Shell i inne. Kolory dopasowane do trybu jasnego/ciemnego.", "Szlif Markdown — blockquote HTML i bloki
 renderują się prawidłowo. Indeksy górne/dolne w Unicode (H₂O, x²). Nazwane encje HTML (©, ™, —, krzywe cudzysłowy) zdekodowane.",
-        "Rozwijane sekcje 
/ jako karty z tap-to-expand. Sąsiednie obrazy odznak/przycisków (Play Store, GitHub Releases itp.) płyną w jednym wierszu zamiast się układać." + "Rozwijane sekcje
/ jako karty z tap-to-expand. Sąsiednie obrazy odznak/przycisków (Play Store, GitHub Releases itp.) płyną w jednym wierszu zamiast się układać.", + "Ręczne powiązywanie aplikacji nie wymaga już ponownego pobrania — wybrana wersja jest akceptowana bez weryfikacji. Baner na Szczegółach pokazuje ręcznie powiązane aplikacje." ] } ] diff --git a/core/presentation/src/commonMain/composeResources/files/whatsnew/ru/18.json b/core/presentation/src/commonMain/composeResources/files/whatsnew/ru/18.json index dbb82e6e6..8c2188882 100644 --- a/core/presentation/src/commonMain/composeResources/files/whatsnew/ru/18.json +++ b/core/presentation/src/commonMain/composeResources/files/whatsnew/ru/18.json @@ -36,7 +36,8 @@ "SVG-изображения в README и заметках о выпуске рендерятся нативно (диаграммы, hero). Тематические изображения учитывают светлую/тёмную тему. Браузерный User-Agent обходит блокировку хотлинков CDN.", "Блоки кода в README и заметках о выпуске теперь с подсветкой синтаксиса — Kotlin, Java, Python, JS/TS, Rust, Swift, C#, Ruby, Shell и другие. Цвета адаптированы к светлой/тёмной теме.", "Полировка Markdown — HTML-цитаты и блоки
 рендерятся корректно. Верхние/нижние индексы переводятся в Unicode (H₂O, x²). Именованные HTML-сущности (©, ™, —, фигурные кавычки) декодируются.",
-        "Сворачиваемые секции 
/ отображаются как карточки tap-to-expand. Соседние изображения бейджей/кнопок (Play Маркет, GitHub Releases и т.д.) выстраиваются в одну строку вместо стопки." + "Сворачиваемые секции
/ отображаются как карточки tap-to-expand. Соседние изображения бейджей/кнопок (Play Маркет, GitHub Releases и т.д.) выстраиваются в одну строку вместо стопки.", + "Ручное сопоставление приложений больше не требует повторной загрузки — выбранная вами версия принимается как есть. Баннер в Деталях отмечает приложения, привязанные вручную." ] } ] diff --git a/core/presentation/src/commonMain/composeResources/files/whatsnew/tr/18.json b/core/presentation/src/commonMain/composeResources/files/whatsnew/tr/18.json index ebaa5471a..51f8c4017 100644 --- a/core/presentation/src/commonMain/composeResources/files/whatsnew/tr/18.json +++ b/core/presentation/src/commonMain/composeResources/files/whatsnew/tr/18.json @@ -36,7 +36,8 @@ "README ve sürüm notlarındaki SVG resimleri artık doğrudan render ediliyor (diyagram, hero). Tema özel resimler açık/koyu temaya saygı duyuyor. Tarayıcı benzeri User-Agent CDN hotlink engelini aşıyor.", "README ve sürüm notlarındaki kod bloklarında sözdizimi vurgulama — Kotlin, Java, Python, JS/TS, Rust, Swift, C#, Ruby, Shell ve diğerleri. Açık/koyu temaya uyumlu renkler.", "Markdown rötuşu — HTML blockquote'ları ve
 blokları doğru render. Alt/üst simgeler Unicode'a çevriliyor (H₂O, x²). Adlandırılmış HTML varlıkları (©, ™, —, kıvrık tırnaklar) çözülüyor.",
-        "
/ daraltılabilir bölümler dokunmayla açılan kart olarak gösteriliyor. Komşu rozet/buton görselleri (Play Store, GitHub Releases vs.) üst üste değil tek satırda akıyor." + "
/ daraltılabilir bölümler dokunmayla açılan kart olarak gösteriliyor. Komşu rozet/buton görselleri (Play Store, GitHub Releases vs.) üst üste değil tek satırda akıyor.", + "Uygulamayı manuel eşlemek için artık yeniden indirme gerekmiyor — seçtiğiniz sürüm olduğu gibi güvenle kabul ediliyor. Detaylar'daki banner manuel bağlanan uygulamaları belirtiyor." ] } ] diff --git a/core/presentation/src/commonMain/composeResources/files/whatsnew/zh-CN/18.json b/core/presentation/src/commonMain/composeResources/files/whatsnew/zh-CN/18.json index 8f820b35c..45fb025db 100644 --- a/core/presentation/src/commonMain/composeResources/files/whatsnew/zh-CN/18.json +++ b/core/presentation/src/commonMain/composeResources/files/whatsnew/zh-CN/18.json @@ -36,7 +36,8 @@ "README 与发布说明中的 SVG 图片现可原生渲染(示意图、主图)。主题专属图片遵循浅色/深色。浏览器风 User-Agent 绕过 CDN 防盗链。", "README 与发布说明中的代码块现已支持语法高亮 — Kotlin、Java、Python、JS/TS、Rust、Swift、C#、Ruby、Shell 等。浅色/深色主题自适配。", "Markdown 完善 — HTML blockquote 与
 代码块正确渲染。上下标转为 Unicode(H₂O、x²)。命名 HTML 实体(©、™、—、弯引号等)已解码。",
-        "
/ 折叠区段以可展开卡片呈现,点击即可展开。相邻徽章/按钮图片(Play 商店、GitHub Releases 等)会在同一行排列,不再堆叠。" + "
/ 折叠区段以可展开卡片呈现,点击即可展开。相邻徽章/按钮图片(Play 商店、GitHub Releases 等)会在同一行排列,不再堆叠。", + "手动匹配应用不再需要重新下载 — 你选择的版本直接信任。详情页横幅会标示手动链接的应用。" ] } ] diff --git a/core/presentation/src/commonMain/composeResources/values-ar/strings-ar.xml b/core/presentation/src/commonMain/composeResources/values-ar/strings-ar.xml index 097c90e14..d7907bd51 100644 --- a/core/presentation/src/commonMain/composeResources/values-ar/strings-ar.xml +++ b/core/presentation/src/commonMain/composeResources/values-ar/strings-ar.xml @@ -917,7 +917,7 @@ تم إلغاء الربط. سنقترح تطابقاً مجدداً في الفحص التالي. تعذّر إلغاء الربط — حاول مجدداً. مرتبط بـ %1$s/%2$s - تطبيق خاطئ؟ افصل الارتباط لإعادة الفحص. + ربط يدوي — متحقق منه من قِبلك. افصل الارتباط لإعادة الفحص. تحديث diff --git a/core/presentation/src/commonMain/composeResources/values-bn/strings-bn.xml b/core/presentation/src/commonMain/composeResources/values-bn/strings-bn.xml index 15223ae20..ffcb612a6 100644 --- a/core/presentation/src/commonMain/composeResources/values-bn/strings-bn.xml +++ b/core/presentation/src/commonMain/composeResources/values-bn/strings-bn.xml @@ -893,7 +893,7 @@ আনলিঙ্ক করা হয়েছে। পরবর্তী স্ক্যানে আবার মিল সাজেস্ট করব। আনলিঙ্ক করা যায়নি — আবার চেষ্টা করুন। %1$s/%2$s এর সাথে লিঙ্ক - ভুল অ্যাপ? পুনরায় স্ক্যান করতে লিঙ্ক সরান। + ম্যানুয়াল লিঙ্ক — আপনি যাচাই করেছেন। পুনরায় স্ক্যানের জন্য লিঙ্ক সরান। রিফ্রেশ diff --git a/core/presentation/src/commonMain/composeResources/values-es/strings-es.xml b/core/presentation/src/commonMain/composeResources/values-es/strings-es.xml index 2c9c0e9c7..c878803c5 100644 --- a/core/presentation/src/commonMain/composeResources/values-es/strings-es.xml +++ b/core/presentation/src/commonMain/composeResources/values-es/strings-es.xml @@ -861,7 +861,7 @@ Desvinculado. Sugeriremos una coincidencia en el próximo análisis. No se pudo desvincular — inténtalo de nuevo. Vinculado a %1$s/%2$s - ¿App equivocada? Desvincula para volver a escanear. + Vinculada manualmente — verificada por ti. Desvincula para volver a escanear. Actualizar diff --git a/core/presentation/src/commonMain/composeResources/values-fr/strings-fr.xml b/core/presentation/src/commonMain/composeResources/values-fr/strings-fr.xml index 29bd1cee5..03bdddf4c 100644 --- a/core/presentation/src/commonMain/composeResources/values-fr/strings-fr.xml +++ b/core/presentation/src/commonMain/composeResources/values-fr/strings-fr.xml @@ -862,7 +862,7 @@ Délié. Nous proposerons une correspondance lors du prochain scan. Impossible de délier — réessayez. Lié à %1$s/%2$s - Mauvaise app ? Dissociez pour relancer le scan. + Liée manuellement — vérifiée par toi. Dissocie pour relancer le scan. Actualiser diff --git a/core/presentation/src/commonMain/composeResources/values-hi/strings-hi.xml b/core/presentation/src/commonMain/composeResources/values-hi/strings-hi.xml index 264ee3506..d1012fc33 100644 --- a/core/presentation/src/commonMain/composeResources/values-hi/strings-hi.xml +++ b/core/presentation/src/commonMain/composeResources/values-hi/strings-hi.xml @@ -900,7 +900,7 @@ अनलिंक हो गया। अगले स्कैन में हम फिर से मेल सुझाएंगे। अनलिंक नहीं हो सका — फिर कोशिश करें। %1$s/%2$s से लिंक्ड - गलत ऐप? पुनः स्कैन करने के लिए लिंक हटाएं। + मैन्युअल लिंक — आपके द्वारा सत्यापित। पुनः स्कैन के लिए लिंक हटाएं। रीफ़्रेश diff --git a/core/presentation/src/commonMain/composeResources/values-it/strings-it.xml b/core/presentation/src/commonMain/composeResources/values-it/strings-it.xml index c54d9497d..985929311 100644 --- a/core/presentation/src/commonMain/composeResources/values-it/strings-it.xml +++ b/core/presentation/src/commonMain/composeResources/values-it/strings-it.xml @@ -901,7 +901,7 @@ Scollegata. Proporremo una corrispondenza alla prossima scansione. Impossibile scollegare — riprova. Collegato a %1$s/%2$s - App sbagliata? Scollega per ri-scansionare. + Collegata manualmente — verificata da te. Scollega per ri-scansionare. Aggiorna diff --git a/core/presentation/src/commonMain/composeResources/values-ja/strings-ja.xml b/core/presentation/src/commonMain/composeResources/values-ja/strings-ja.xml index 88a577f59..ca2acf7d0 100644 --- a/core/presentation/src/commonMain/composeResources/values-ja/strings-ja.xml +++ b/core/presentation/src/commonMain/composeResources/values-ja/strings-ja.xml @@ -856,7 +856,7 @@ リンクを解除しました。次回のスキャンで再度一致候補を提示します。 リンクを解除できませんでした — もう一度お試しください。 %1$s/%2$s にリンク済み - 違うアプリ?リンク解除して再スキャン。 + 手動リンク — あなたが確認済み。再スキャンするにはリンク解除。 更新 diff --git a/core/presentation/src/commonMain/composeResources/values-ko/strings-ko.xml b/core/presentation/src/commonMain/composeResources/values-ko/strings-ko.xml index c03b5eb10..50b4241d5 100644 --- a/core/presentation/src/commonMain/composeResources/values-ko/strings-ko.xml +++ b/core/presentation/src/commonMain/composeResources/values-ko/strings-ko.xml @@ -891,7 +891,7 @@ 연결 해제되었습니다. 다음 스캔에서 매칭을 다시 제안합니다. 연결 해제에 실패했습니다 — 다시 시도하세요. %1$s/%2$s에 연결됨 - 잘못된 앱? 다시 스캔하려면 연결 해제. + 수동 연결 — 사용자가 확인함. 다시 스캔하려면 연결 해제. 새로 고침 diff --git a/core/presentation/src/commonMain/composeResources/values-pl/strings-pl.xml b/core/presentation/src/commonMain/composeResources/values-pl/strings-pl.xml index 8d256702a..0209742d2 100644 --- a/core/presentation/src/commonMain/composeResources/values-pl/strings-pl.xml +++ b/core/presentation/src/commonMain/composeResources/values-pl/strings-pl.xml @@ -882,7 +882,7 @@ Odłączono. Zasugerujemy dopasowanie przy następnym skanowaniu. Nie udało się odłączyć — spróbuj ponownie. Powiązano z %1$s/%2$s - Zła aplikacja? Rozłącz, by przeskanować ponownie. + Powiązane ręcznie — zweryfikowane przez Ciebie. Rozłącz, by przeskanować ponownie. Odśwież diff --git a/core/presentation/src/commonMain/composeResources/values-ru/strings-ru.xml b/core/presentation/src/commonMain/composeResources/values-ru/strings-ru.xml index 5d93e0e76..e8d34bf6a 100644 --- a/core/presentation/src/commonMain/composeResources/values-ru/strings-ru.xml +++ b/core/presentation/src/commonMain/composeResources/values-ru/strings-ru.xml @@ -882,7 +882,7 @@ Отвязано. При следующем сканировании мы предложим совпадение. Не удалось отвязать — попробуйте ещё раз. Связан с %1$s/%2$s - Не та программа? Отвяжите, чтобы пересканировать. + Привязано вручную — проверено вами. Отвяжите, чтобы пересканировать. Обновить diff --git a/core/presentation/src/commonMain/composeResources/values-tr/strings-tr.xml b/core/presentation/src/commonMain/composeResources/values-tr/strings-tr.xml index f92a3b508..d96aa0e23 100644 --- a/core/presentation/src/commonMain/composeResources/values-tr/strings-tr.xml +++ b/core/presentation/src/commonMain/composeResources/values-tr/strings-tr.xml @@ -898,7 +898,7 @@ Bağlantı kesildi. Bir sonraki taramada eşleşme önereceğiz. Bağlantı kesilemedi — tekrar deneyin. %1$s/%2$s ile bağlantılı - Yanlış uygulama mı? Yeniden taramak için bağlantıyı kaldırın. + Manuel bağlandı — sizin tarafınızdan doğrulandı. Yeniden taramak için bağlantıyı kaldırın. Yenile diff --git a/core/presentation/src/commonMain/composeResources/values-zh-rCN/strings-zh-rCN.xml b/core/presentation/src/commonMain/composeResources/values-zh-rCN/strings-zh-rCN.xml index 29c4999fc..603b2a371 100644 --- a/core/presentation/src/commonMain/composeResources/values-zh-rCN/strings-zh-rCN.xml +++ b/core/presentation/src/commonMain/composeResources/values-zh-rCN/strings-zh-rCN.xml @@ -858,7 +858,7 @@ 已取消关联。下次扫描时将重新建议匹配。 无法取消关联 — 请重试。 已链接到 %1$s/%2$s - 应用错了?解除链接以重新扫描。 + 手动链接 — 由你验证。解除链接以重新扫描。 刷新 diff --git a/core/presentation/src/commonMain/composeResources/values/strings.xml b/core/presentation/src/commonMain/composeResources/values/strings.xml index acc6fd639..cf54c50b6 100644 --- a/core/presentation/src/commonMain/composeResources/values/strings.xml +++ b/core/presentation/src/commonMain/composeResources/values/strings.xml @@ -998,7 +998,7 @@ Unlinked. We'll re-suggest a match next scan. Couldn't unlink — try again. Linked to %1$s/%2$s - Wrong app? Unlink to re-scan. + Manually linked — verified by you. Unlink to re-scan. Refresh diff --git a/feature/apps/presentation/src/commonMain/kotlin/zed/rainxch/apps/presentation/AppsViewModel.kt b/feature/apps/presentation/src/commonMain/kotlin/zed/rainxch/apps/presentation/AppsViewModel.kt index 357573048..14450f779 100644 --- a/feature/apps/presentation/src/commonMain/kotlin/zed/rainxch/apps/presentation/AppsViewModel.kt +++ b/feature/apps/presentation/src/commonMain/kotlin/zed/rainxch/apps/presentation/AppsViewModel.kt @@ -1992,88 +1992,21 @@ class AppsViewModel( val assetFilterRegex = _state.value.linkAssetFilter.takeIf { it.isNotBlank() } val fallbackToOlder = _state.value.linkFallbackToOlder + // The user explicitly picked this asset → trust the choice. + // Skip the re-download + signing-key verification dance (which + // burned bandwidth and time for nothing the user couldn't already + // confirm). The `installSource = MANUAL` field linkAppToRepo + // writes is what the Details banner reads to flag manual links. viewModelScope.launch { _state.update { it.copy( linkSelectedAsset = asset, - linkDownloadProgress = 0, - linkValidationStatus = getString(Res.string.downloading_for_verification), + linkDownloadProgress = null, + linkValidationStatus = null, repoValidationError = null, ) } - - var filePath: String? = null try { - downloader.download(asset.downloadUrl, asset.name).collect { progress -> - _state.update { it.copy(linkDownloadProgress = progress.percent) } - } - - filePath = downloader.getDownloadedFilePath(asset.name) - if (filePath == null) { - _state.update { - it.copy( - linkDownloadProgress = null, - linkValidationStatus = null, - repoValidationError = getString(Res.string.download_failed), - ) - } - return@launch - } - - _state.update { - it.copy( - linkDownloadProgress = 100, - linkValidationStatus = getString(Res.string.verifying_signing_key), - ) - } - - val apkInfo = installer.getApkInfoExtractor().extractPackageInfo(filePath) - if (apkInfo == null) { - logger.debug("Could not extract APK info for validation, linking anyway") - appsRepository.linkAppToRepo( - deviceApp = selectedApp.toDomain(), - repoInfo = repoInfo.toDomain(), - assetFilterRegex = assetFilterRegex, - fallbackToOlderReleases = fallbackToOlder, - pickedAssetName = asset.name, - pickedAssetSiblingCount = siblingCount, - pickedAssetIndex = pickedIndex, - ) - _state.update { - it.copy( - linkDownloadProgress = null, - linkValidationStatus = null, - showLinkSheet = false, - ) - } - _events.send(AppsEvent.AppLinkedSuccessfully(selectedApp.appName)) - _events.send( - AppsEvent.ShowSuccess( - getString( - Res.string.app_linked_success, - selectedApp.appName, - repoInfo.owner, - repoInfo.name, - ), - ), - ) - return@launch - } - - val deviceFingerprint = selectedApp.signingFingerprint - val apkFingerprint = apkInfo.signingFingerprint - - if (deviceFingerprint != null && apkFingerprint != null && deviceFingerprint != apkFingerprint) { - _state.update { - it.copy( - linkDownloadProgress = null, - linkValidationStatus = null, - repoValidationError = getString(Res.string.signing_key_mismatch_link), - ) - } - return@launch - } - appsRepository.linkAppToRepo( deviceApp = selectedApp.toDomain(), repoInfo = repoInfo.toDomain(), @@ -2101,16 +2034,8 @@ class AppsViewModel( ), ), ) - } catch (_: RateLimitException) { - _state.update { - it.copy( - linkDownloadProgress = null, - linkValidationStatus = null, - repoValidationError = getString(Res.string.rate_limit_try_again), - ) - } } catch (e: Exception) { - logger.error("Failed to validate and link app: ${e.message}") + logger.error("Failed to link app: ${e.message}") _state.update { it.copy( linkDownloadProgress = null, @@ -2118,11 +2043,6 @@ class AppsViewModel( repoValidationError = getString(Res.string.failed_to_link, e.message ?: ""), ) } - } finally { - try { - if (filePath != null) File(filePath).delete() - } catch (_: Exception) { - } } } }