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) {
- }
}
}
}