From 254ce6a70cf89290014254b76f684f6e27961d87 Mon Sep 17 00:00:00 2001 From: "translatewiki.net" Date: Mon, 3 Aug 2020 19:43:30 +0200 Subject: [PATCH 1/3] Localisation updates from https://translatewiki.net. --- app/src/main/res/values-in/strings.xml | 8 +++ core/src/main/res/values-ar/strings.xml | 2 +- core/src/main/res/values-ca/strings.xml | 15 +++--- core/src/main/res/values-de/strings.xml | 2 +- core/src/main/res/values-diq/strings.xml | 2 +- core/src/main/res/values-fi/strings.xml | 35 ++++++++++--- core/src/main/res/values-in/strings.xml | 60 ++++++++++++++++++++++- custom/src/main/res/values-in/strings.xml | 9 ++++ 8 files changed, 115 insertions(+), 18 deletions(-) create mode 100644 app/src/main/res/values-in/strings.xml create mode 100644 custom/src/main/res/values-in/strings.xml diff --git a/app/src/main/res/values-in/strings.xml b/app/src/main/res/values-in/strings.xml new file mode 100644 index 000000000..a71be3cba --- /dev/null +++ b/app/src/main/res/values-in/strings.xml @@ -0,0 +1,8 @@ + + + + Sistem file Anda tidak mendukung file berukuran lebih dari 4GB + Mendeteksi apakah sistem file dapat membuat file berukuran 4GB + diff --git a/core/src/main/res/values-ar/strings.xml b/core/src/main/res/values-ar/strings.xml index 7601c3820..512f1f6bf 100644 --- a/core/src/main/res/values-ar/strings.xml +++ b/core/src/main/res/values-ar/strings.xml @@ -147,7 +147,7 @@ التالي السابق السماح بتنزيل المحتوى عبر شبكة المحمول؟ - إذا اخترت \“نعم\”، فلن يتم تحذيرك في المستقبل. مع ذلك، يمكنك دائمًا تغيير هذا في الإعدادات. + إذا اخترت \"نعم\"، فلن يتم تحذيرك في المستقبل. مع ذلك، يمكنك دائمًا تغيير هذا في الإعدادات. تنزيل المحتوى عبر واي فاي فقط يوم ساعة diff --git a/core/src/main/res/values-ca/strings.xml b/core/src/main/res/values-ca/strings.xml index 7ef0bdc20..a311dae9f 100644 --- a/core/src/main/res/values-ca/strings.xml +++ b/core/src/main/res/values-ca/strings.xml @@ -5,6 +5,7 @@ * Grondin * Joan manel * Macondo +* Mguix --> Ajuda @@ -18,8 +19,8 @@ Llegir en veu alta Deixar de llegir en veu alta Anomena i desa el fitxer… - S\'ha produït un error en mirar de desar el fitxer! - El fitxer s\'ha desat amb el nom %1$s a la vostra carpeta d\'imatges + S\'ha produït un error en mirar de desar el fitxer! + Multimèdia desat com %s en Android/media/org.kiwix…/ Cercar Seleccioneu un fitxer de contingut ZIM (*.zim) Obrir l\'enllaç en una pestanya nova? @@ -60,22 +61,22 @@ Article obert en una pestanya nova Dispositiu Biblioteca - Voleu suprimir %s? + Els següents arxius ZIM seran eliminats:\n\n%s Fitxer esborrat Cap fitxer aquí L’espai és insuficient per a la baixada. Cap connexió de xarxa Què fa Kiwix? Kiwix és un lector de contingut sense connexió. Actua molt semblant a un navegador però en comptes d\'accedir a pàgines web en línia, llegeix el contingut d\'un fitxer en format ZIM. - Si bé Kiwix es va dissenyar originalment per a proporcionar una Wikipedia sense connexió, també pot llegir altres continguts. + Si bé Kiwix es va dissenyar originalment per a proporcionar una Wikipedia sense connexió, també pot llegir altres continguts. On està el contingut? El nostre contingut està allotjat en el lloc web de Kiwix Estan disponibles com a fitxers ZIM. Hi ha molts d\'ells: • La Viquipèdia està disponible per separat per a cada idioma • Altres continguts com Wikileaks o Wikisource també estan disponibles - Pots descarregar els arxius ZIM triats a l\'aplicació, o bé seleccionar acuradament els que vulguis, descarregar-los des d\'un ordinador i transferir-los a la targeta SD. + Podeu descarregar els arxius ZIM triats a l\'aplicació, o bé seleccionar acuradament els que vulgueu, descarregar-los des d\'un ordinador i transferir-los a la vostra targeta SD. Els fitxers ZIM descarregats en l\'aplicació es troben al directori d\'emmagatzematge extern, en una carpeta anomenada Kiwix. - No podem eliminar aquest fitxer. Hauries de provar amb un administrador de fitxers. + No podem eliminar alguns arxius. Hauries de provar amb un administrador d\'arxius Intern Extern @@ -84,7 +85,7 @@ Segur que vols aturar aquesta descàrrega? Selector de dispositiu d\'emmagatzematge Següent - Accés a enllaç extern + Accés a enllaç extern! Estàs entrant a un enllaç extern. Això podria ocasionar-te costos addicionals per transferència de dades o, senzillament, no funcionarà si no tens connexió. Vols continuar? No tornar a preguntar Idiomes seleccionats: diff --git a/core/src/main/res/values-de/strings.xml b/core/src/main/res/values-de/strings.xml index 67a1008d6..aede8180c 100644 --- a/core/src/main/res/values-de/strings.xml +++ b/core/src/main/res/values-de/strings.xml @@ -163,7 +163,7 @@ Ausgewählte Sprachen: Weitere Sprachen: Keine Objekte verfügbar - Also… Das ist peinlich. + Also... Das ist peinlich. Es sieht aus, als wären wir abgestürzt.\n\nWürde es Ihnen etwas ausmachen, uns bei der Behebung dieses Problems zu helfen, indem Sie uns die folgenden Informationen schicken? Ihre Spracheinstellungen Eine Liste Ihrer ZIM-Dateien diff --git a/core/src/main/res/values-diq/strings.xml b/core/src/main/res/values-diq/strings.xml index 25f540fdb..fc8a9b352 100644 --- a/core/src/main/res/values-diq/strings.xml +++ b/core/src/main/res/values-diq/strings.xml @@ -185,7 +185,7 @@ Cihazê Şıma: NEZDI CİHAZİ TRANSFERÊ DOSYAYAN - Keno ke dosyaya transfer kero… + Keno ke dosyaya transfer kero... Weziyet Resım Video diff --git a/core/src/main/res/values-fi/strings.xml b/core/src/main/res/values-fi/strings.xml index 7935a2cd4..298407060 100644 --- a/core/src/main/res/values-fi/strings.xml +++ b/core/src/main/res/values-fi/strings.xml @@ -19,6 +19,7 @@ Lue ääneen Lopeta ääneen lukeminen Tue Kiwixiä + Hostaa kirjoja Tallenna media Virhe mediaa tallennettaessa! Tallennettu media %s muodossa hakemistoon Android/media/org.kiwix…/ @@ -29,10 +30,13 @@ Siirry WiFi-asetuksiin Valitse ensin kirjat Ei voitu käynnistää palvelinta. + Palvelin käynnistetty onnistuneesti. + Palvelin pysäytetty onnistuneesti. Hotspot kytketty päälle Käynnistetään palvelinta - Kytke WiFi-hotspottisi päälle - KYLLÄ, OLEN KYTKENYT SEN PÄÄLLE + Ohjeet kirjojen hostaamiseen + WiFi-yhteys tunnistettu + ETENE Kiwix-hotspot Käynnistä palvelin Pysäytä palvelin @@ -59,9 +63,11 @@ Poista tämä kohde? Tyhjennä historia Kaikki historia tyhjennetty - Tyhjennä kaikki historia + Tyhjennä kirjanmerkit + Tyhjennä kaikki historia? Jaa Poista + Peruuta Voit tarkastella tämän artikkelin sisältöä pyyhkäisemällä vasemmalle Selvä Tiesitkö? @@ -86,7 +92,7 @@ Laite Online Kirjasto - Poista %s? + Seuraava(t) zim-tiedosto(t) tullaan poistamaan:\n\n%s Tiedosto poistettu Ei tiedostoja täällä Tilaa käytettävissä: @@ -101,7 +107,7 @@ • Muut sisällöt kuten Wikileaks tai Wikiaineisto ovat myös käytettävissä Tallennuslaite Nykyinen kansio - Emme pystyneet poistamaan tätä tiedostoa. Sinun pitäisi kokeilla käyttää tiedostonhallintaa sen sijaan. + Emme pystyneet poistamaan joitakin tiedostoja. Sinun tulisi kokeilla käyttää tiedostonhallintaa sen sijaan. keskeytä jatka pysäytä @@ -124,7 +130,7 @@ jäljellä Tänään Eilen - Ulkoisen linkin syöttäminen + Ulkoisen linkin syöttäminen! Älä kysy enää Valitut kielet: Muut kielet: @@ -162,8 +168,25 @@ Wikiartikkelin otsikko Hylkää tallentamattomat muutokset? Joitakin tiedostoja ei poistettu + %d kirja(a) Laitteesi: LÄHELLÄ OLEVAT LAITTEET Tila + Kuva + Video + Vain teksti + Lyhyt teksti + Ei tuloksia Ei kirjanmerkkejä + Ei historiaa + Laitteen oletus + Poista kaikki historia? + Poista valittu historia? + Poista kaikki kirjanmerkit? + Poista valitut kirjanmerkit? + Päälle + Pois + Auto + %d%% + Avaa uudessa välilehdessä diff --git a/core/src/main/res/values-in/strings.xml b/core/src/main/res/values-in/strings.xml index 71d7a9bc6..e019a0231 100644 --- a/core/src/main/res/values-in/strings.xml +++ b/core/src/main/res/values-in/strings.xml @@ -38,6 +38,8 @@ Hotspot sudah menyala. Berikut adalah detil hotspot lokal Anda.\nSSID : %1$s\nPass : %2$s Menyalakan server + Koneksi Wifi telah terdeteksi + Untuk dapat melihat buku dengan alat elektronik lainnya, pastikan semua alat elektronik Anda terhubung ke jaringan Wifi yang sama. LANJUT Masukkan alamat IP ini ke browser Anda untuk mengakses server %s Galat: Berkas ZIM yang dipilih tidak ditemukan. @@ -66,7 +68,7 @@ Hapus riwayat Hapus riwayat penelusuran dan tab terakhir Semua Markah Telah Dibersihkan - Bersihkan Semua Markah + Bersihkan Semua Riwayat? Bagikan Bagikan ZIM file dengan: Hapus @@ -113,7 +115,7 @@ Mereka tersedia sebagai berkas ZIM. Ada banyak dari mereka: • Wikipedia tersedia terpisah untuk setiap bahasa • Konten lain seperti Wikileaks atau Wikisource juga tersedia - Anda dapat mengunduh berkas ZIM yang diinginkan dari dalam apl atau mengunduhnya dari komputer Desktop sebelum mentransfernya ke kartu SD Anda. + Anda dapat mengunduh berkas ZIM yang diinginkan dari dalam aplikasi atau mengunduh berkas yang Anda inginkan dari komputer Desktop sebelum memindahkannya ke kartu SD Anda. Berkas ZIM yang diunduh dari dalam apl terletak di direktori penyimpanan eksternal didalam folder Kiwix. Penyimpanan Folder Saat Ini @@ -139,6 +141,8 @@ mnt dtk kiri + Hari ini + Kemarin Peringatkan saat mengunjungi pranala luar Tampilkan popup untuk memperingatkan tentang biaya tambahan atau tidak bekerja dalam pranala luring. Mengunjungi Pranala Luar @@ -146,15 +150,67 @@ Jangan tanya lagi Bahasa terpilih: Bahasa lain: + Daftar file Zim Anda + Tab baru + Ambil konten + Favicon + %s artikel + Mulai + Unduh buku-buku Humankind\'s knowledge, on your phone. + Selamat datang di keluarga + Simpan buku-buku offline + Unduh buku dan baca di mana pun Anda berada. Ke halaman sebelumnya Ke halaman berikutnya + Daftar isi Pilih bahasa Simpan bahasa Kirim masukan + Riwayat + Lihat riwayat semua buku + Riwayat pencarian + %1$d dipilih Tutup semua tab + Dalam proses Selesai + Gagal: %s + Simpan + Catatan + Judul Artikel Wiki + Akses tempat penyimpanan data dibutuhkan untuk Catatan Notes can\'t be used without access to storage + Penyimpanan Catatan tidak berhasil + Catatan telah berhasil dihapus + Catatan tidak terhapus + Catatan telah tersimpan + Gagal menyimpan Catatan: tempat penyimpanan data tidak dapat ditulisi Note file doesn\'t exist + Bagi file catatan dengan: + Hapus semua catatan? + Gagal: Akses ke tempat penyimpanan data tidak ada + Seluruh direktori Catatan telah dihapus + Beberapa file tidak terhapus + %d buku + Koneksi gagal + FILE UNTUK DIPINDAHKAN + Mempersiapkan file untuk dipindahkan.... + Melakukan jabat tangan.... + Status + Bersihkan semua catatan dari semua artikel + Bersihkan semua catatan + Ubah ukuran teks dengan penambahan 25% + Gambar + Video + Teks Saja + Teks Singkat + Akses ke tempat penyimpanan data ditolak + Aplikasi ini membutuhkan kemampuan membaca tempat penyimpanan data untuk berfungsi dengan baik. Berikan izin mengakses tempat penyimpanan data lewat menu pengaturan Anda + Ke menu Pengaturan Hotspot + Tidak ada Hasil Tidak Ada Markah + Tidak ada Riwayat + Kirimkan semua detil berikut agar kami dapat menelaah masalahnya + %d%% + Buka di tab baru diff --git a/custom/src/main/res/values-in/strings.xml b/custom/src/main/res/values-in/strings.xml new file mode 100644 index 000000000..d76a0ae9f --- /dev/null +++ b/custom/src/main/res/values-in/strings.xml @@ -0,0 +1,9 @@ + + + + Coba lagi + Unduh + Instalasi tidak berlaku. Silakan unduh Zim.\nPastikan Wifi menyala dan Anda memiliki cukup tempat penyimpanan data + From 5742bd4f55920beb07b4738fbbea6ef887b35830 Mon Sep 17 00:00:00 2001 From: Sean Mac Gillicuddy Date: Tue, 4 Aug 2020 11:44:12 +0100 Subject: [PATCH 2/3] lint fixes --- core/src/main/res/values-ar/strings.xml | 2 +- core/src/main/res/values-de/strings.xml | 2 +- core/src/main/res/values-diq/strings.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/core/src/main/res/values-ar/strings.xml b/core/src/main/res/values-ar/strings.xml index 512f1f6bf..7601c3820 100644 --- a/core/src/main/res/values-ar/strings.xml +++ b/core/src/main/res/values-ar/strings.xml @@ -147,7 +147,7 @@ التالي السابق السماح بتنزيل المحتوى عبر شبكة المحمول؟ - إذا اخترت \"نعم\"، فلن يتم تحذيرك في المستقبل. مع ذلك، يمكنك دائمًا تغيير هذا في الإعدادات. + إذا اخترت \“نعم\”، فلن يتم تحذيرك في المستقبل. مع ذلك، يمكنك دائمًا تغيير هذا في الإعدادات. تنزيل المحتوى عبر واي فاي فقط يوم ساعة diff --git a/core/src/main/res/values-de/strings.xml b/core/src/main/res/values-de/strings.xml index aede8180c..67a1008d6 100644 --- a/core/src/main/res/values-de/strings.xml +++ b/core/src/main/res/values-de/strings.xml @@ -163,7 +163,7 @@ Ausgewählte Sprachen: Weitere Sprachen: Keine Objekte verfügbar - Also... Das ist peinlich. + Also… Das ist peinlich. Es sieht aus, als wären wir abgestürzt.\n\nWürde es Ihnen etwas ausmachen, uns bei der Behebung dieses Problems zu helfen, indem Sie uns die folgenden Informationen schicken? Ihre Spracheinstellungen Eine Liste Ihrer ZIM-Dateien diff --git a/core/src/main/res/values-diq/strings.xml b/core/src/main/res/values-diq/strings.xml index fc8a9b352..25f540fdb 100644 --- a/core/src/main/res/values-diq/strings.xml +++ b/core/src/main/res/values-diq/strings.xml @@ -185,7 +185,7 @@ Cihazê Şıma: NEZDI CİHAZİ TRANSFERÊ DOSYAYAN - Keno ke dosyaya transfer kero... + Keno ke dosyaya transfer kero… Weziyet Resım Video From 03f97027a248d094d1d9f90946d787674eced5c3 Mon Sep 17 00:00:00 2001 From: Sean Mac Gillicuddy Date: Wed, 5 Aug 2020 11:05:06 +0100 Subject: [PATCH 3/3] #2222 Impossible to read warc2zim generated ZIM files - support service workers - load war2c as asset --- buildSrc/src/main/kotlin/Libs.kt | 45 ++++++++++------- buildSrc/src/main/kotlin/Versions.kt | 28 +++++------ core/build.gradle.kts | 1 + .../org/kiwix/kiwixmobile/core/CoreApp.kt | 7 +++ .../core/ServiceWorkerInitialiser.kt | 49 +++++++++++++++++++ .../core/main/CoreWebViewClient.java | 21 +++++--- .../kiwixmobile/core/reader/ZimFileReader.kt | 5 +- 7 files changed, 114 insertions(+), 42 deletions(-) create mode 100644 core/src/main/java/org/kiwix/kiwixmobile/core/ServiceWorkerInitialiser.kt diff --git a/buildSrc/src/main/kotlin/Libs.kt b/buildSrc/src/main/kotlin/Libs.kt index 62393d036..1cae7c16e 100644 --- a/buildSrc/src/main/kotlin/Libs.kt +++ b/buildSrc/src/main/kotlin/Libs.kt @@ -48,6 +48,23 @@ object Libs { */ const val retrofit: String = "com.squareup.retrofit2:retrofit:" + Versions.com_squareup_retrofit2 + /** + * https://square.github.io/okhttp/ + */ + const val logging_interceptor: String = "com.squareup.okhttp3:logging-interceptor:" + + Versions.com_squareup_okhttp3 + + /** + * https://square.github.io/okhttp/ + */ + const val mockwebserver: String = "com.squareup.okhttp3:mockwebserver:" + + Versions.com_squareup_okhttp3 + + /** + * https://square.github.io/okhttp/ + */ + const val okhttp: String = "com.squareup.okhttp3:okhttp:" + Versions.com_squareup_okhttp3 + /** * https://kotlinlang.org/ */ @@ -166,6 +183,11 @@ object Libs { const val objectbox_gradle_plugin: String = "io.objectbox:objectbox-gradle-plugin:" + Versions.io_objectbox + /** + * https://objectbox.io + */ + const val objectbox_java: String = "io.objectbox:objectbox-java:" + Versions.io_objectbox + /** * https://objectbox.io */ @@ -236,12 +258,6 @@ object Libs { const val javax_annotation_api: String = "javax.annotation:javax.annotation-api:" + Versions.javax_annotation_api - /** - * https://square.github.io/okhttp/ - */ - const val logging_interceptor: String = "com.squareup.okhttp3:logging-interceptor:" + - Versions.logging_interceptor - const val ink_page_indicator: String = "com.pacioianu.david:ink-page-indicator:" + Versions.ink_page_indicator @@ -272,11 +288,6 @@ object Libs { */ const val junit_jupiter: String = "org.junit.jupiter:junit-jupiter:" + Versions.junit_jupiter - /** - * https://square.github.io/okhttp/ - */ - const val mockwebserver: String = "com.squareup.okhttp3:mockwebserver:" + Versions.mockwebserver - const val xfetch2okhttp: String = "androidx.tonyodev.fetch2okhttp:xfetch2okhttp:" + Versions.xfetch2okhttp @@ -346,7 +357,7 @@ object Libs { const val kiwixlib: String = "org.kiwix.kiwixlib:kiwixlib:" + Versions.kiwixlib /** - * http://developer.android.com/tools/extras/support-library.html + * https://github.com/material-components/material-components-android */ const val material: String = "com.google.android.material:material:" + Versions.material @@ -366,16 +377,16 @@ object Libs { */ const val ktlint: String = "com.pinterest:ktlint:" + Versions.ktlint - /** - * https://square.github.io/okhttp/ - */ - const val okhttp: String = "com.squareup.okhttp3:okhttp:" + Versions.okhttp - /** * https://github.com/ReactiveX/RxJava */ const val rxjava: String = "io.reactivex.rxjava2:rxjava:" + Versions.rxjava + /** + * https://developer.android.com/jetpack/androidx + */ + const val webkit: String = "androidx.webkit:webkit:" + Versions.webkit + /** * https://developer.android.com/studio */ diff --git a/buildSrc/src/main/kotlin/Versions.kt b/buildSrc/src/main/kotlin/Versions.kt index c4803beed..361048a26 100644 --- a/buildSrc/src/main/kotlin/Versions.kt +++ b/buildSrc/src/main/kotlin/Versions.kt @@ -16,17 +16,19 @@ object Versions { const val com_squareup_retrofit2: String = "2.5.0" // available: "2.9.0" + const val com_squareup_okhttp3: String = "3.6.0" // available: "4.8.0" + const val org_jetbrains_kotlin: String = "1.3.72" - const val com_google_dagger: String = "2.26" // available: "2.28.1" + const val com_google_dagger: String = "2.26" // available: "2.28.3" const val com_yahoo_squidb: String = "2.0.0" // available: "3.2.3" - const val com_jakewharton: String = "10.2.1" + const val com_jakewharton: String = "10.2.1" // available: "10.2.2" const val androidx_test: String = "1.2.0" - const val io_objectbox: String = "2.6.0" + const val io_objectbox: String = "2.6.0" // available: "2.7.0" const val org_jacoco: String = "0.7.9" @@ -44,8 +46,6 @@ object Versions { const val javax_annotation_api: String = "1.3.2" - const val logging_interceptor: String = "3.6.0" // available: "4.7.2" - const val ink_page_indicator: String = "1.3.0" const val leakcanary_android: String = "2.4" @@ -58,8 +58,6 @@ object Versions { const val junit_jupiter: String = "5.6.2" - const val mockwebserver: String = "3.6.0" // available: "4.7.2" - const val xfetch2okhttp: String = "3.1.4" const val assertj_core: String = "3.16.1" @@ -68,7 +66,7 @@ object Versions { const val fragment_ktx: String = "1.2.5" - const val lint_gradle: String = "27.0.0" + const val lint_gradle: String = "27.0.1" const val testing_ktx: String = "1.1.2" @@ -84,11 +82,11 @@ object Versions { const val rxandroid: String = "2.1.1" - const val core_ktx: String = "1.3.0" + const val core_ktx: String = "1.3.0" // available: "1.3.1" - const val kiwixlib: String = "9.2.3" + const val kiwixlib: String = "9.2.3" // available: "9.3.1" - const val material: String = "1.1.0" + const val material: String = "1.1.0" // available: "1.2.0" const val multidex: String = "2.0.1" @@ -100,16 +98,16 @@ object Versions { const val ktlint: String = "0.36.0" // available: "0.37.2" - const val okhttp: String = "3.6.0" // available: "4.7.2" - const val rxjava: String = "2.2.19" - const val aapt2: String = "4.0.0-6051327" + const val webkit: String = "1.2.0" + + const val aapt2: String = "4.0.1-6197926" const val junit: String = "1.1.1" /** - * Current version: "6.1.1" + * Current version: "6.2" * See issue 19: How to update Gradle itself? * https://github.com/jmfayard/buildSrcVersions/issues/19 */ diff --git a/core/build.gradle.kts b/core/build.gradle.kts index 8a4538b1c..11d59e9bb 100644 --- a/core/build.gradle.kts +++ b/core/build.gradle.kts @@ -60,4 +60,5 @@ dependencies { implementation(Libs.android_arch_lifecycle_extensions) implementation(Libs.objectbox_kotlin) implementation(Libs.objectbox_rxjava) + implementation(Libs.webkit) } diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/CoreApp.kt b/core/src/main/java/org/kiwix/kiwixmobile/core/CoreApp.kt index 39ab9b048..0d52aab3e 100644 --- a/core/src/main/java/org/kiwix/kiwixmobile/core/CoreApp.kt +++ b/core/src/main/java/org/kiwix/kiwixmobile/core/CoreApp.kt @@ -66,6 +66,13 @@ abstract class CoreApp : Application() { @Inject lateinit var fileLogger: FileLogger + /** + * The init of this class does the work of initializing, + * simply injecting it is all that there is to be done + */ + @Inject + lateinit var serviceWorkerInitialiser: ServiceWorkerInitialiser + override fun attachBaseContext(base: Context) { super.attachBaseContext(base) if (BuildConfig.DEBUG) { diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/ServiceWorkerInitialiser.kt b/core/src/main/java/org/kiwix/kiwixmobile/core/ServiceWorkerInitialiser.kt new file mode 100644 index 000000000..702c8ec43 --- /dev/null +++ b/core/src/main/java/org/kiwix/kiwixmobile/core/ServiceWorkerInitialiser.kt @@ -0,0 +1,49 @@ +/* + * Kiwix Android + * Copyright (c) 2020 Kiwix + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +package org.kiwix.kiwixmobile.core + +import android.content.Context +import android.os.Build +import android.webkit.WebResourceRequest +import android.webkit.WebResourceResponse +import androidx.webkit.ServiceWorkerClientCompat +import androidx.webkit.ServiceWorkerControllerCompat +import androidx.webkit.WebViewFeature +import org.kiwix.kiwixmobile.core.reader.ZimReaderContainer +import javax.inject.Inject + +class ServiceWorkerInitialiser @Inject constructor( + context: Context, + zimReaderContainer: ZimReaderContainer +) { + init { + if (WebViewFeature.isFeatureSupported(WebViewFeature.SERVICE_WORKER_BASIC_USAGE)) { + ServiceWorkerControllerCompat.getInstance() + .setServiceWorkerClient(object : ServiceWorkerClientCompat() { + override fun shouldInterceptRequest(request: WebResourceRequest): WebResourceResponse? { + return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { + zimReaderContainer.load(request.url.toString()) + } else { + null + } + } + }) + } + } +} diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/main/CoreWebViewClient.java b/core/src/main/java/org/kiwix/kiwixmobile/core/main/CoreWebViewClient.java index 7ef46e884..64a7e8663 100644 --- a/core/src/main/java/org/kiwix/kiwixmobile/core/main/CoreWebViewClient.java +++ b/core/src/main/java/org/kiwix/kiwixmobile/core/main/CoreWebViewClient.java @@ -47,8 +47,10 @@ public abstract class CoreWebViewClient extends WebViewClient { protected final WebViewCallback callback; protected final ZimReaderContainer zimReaderContainer; private View home; - private static String LEGACY_CONTENT_PREFIX = - Uri.parse("content://" + CoreApp.getInstance().getPackageName() + ".zim.base/").toString(); + private static String[] LEGACY_CONTENT_PREFIXES = new String[] { + "zim://content/", + Uri.parse("content://" + CoreApp.getInstance().getPackageName() + ".zim.base/").toString() + }; private String urlWithAnchor; public CoreWebViewClient( @@ -94,9 +96,12 @@ public abstract class CoreWebViewClient extends WebViewClient { } private String convertLegacyUrl(String url) { - return url.startsWith(LEGACY_CONTENT_PREFIX) - ? url.replace(LEGACY_CONTENT_PREFIX, CONTENT_PREFIX) - : url; + for (String legacyContentPrefix : LEGACY_CONTENT_PREFIXES) { + if (url.startsWith(legacyContentPrefix)) { + return url.replace(legacyContentPrefix, CONTENT_PREFIX); + } + } + return url; } private boolean handleEpubAndPdf(String url) { @@ -139,9 +144,9 @@ public abstract class CoreWebViewClient extends WebViewClient { } /* - * If 2 urls are the same aside from the `#` component then calling load - * does not trigger our loading code and the webview will go to the anchor - * */ + * If 2 urls are the same aside from the `#` component then calling load + * does not trigger our loading code and the webview will go to the anchor + * */ private void jumpToAnchor(WebView view, String loadedUrl) { if (urlWithAnchor != null && urlWithAnchor.startsWith(loadedUrl)) { view.loadUrl(urlWithAnchor); diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/reader/ZimFileReader.kt b/core/src/main/java/org/kiwix/kiwixmobile/core/reader/ZimFileReader.kt index 9471cfaec..58bab6d6b 100644 --- a/core/src/main/java/org/kiwix/kiwixmobile/core/reader/ZimFileReader.kt +++ b/core/src/main/java/org/kiwix/kiwixmobile/core/reader/ZimFileReader.kt @@ -236,7 +236,7 @@ class ZimFileReader constructor( @JvmField val UI_URI: Uri? = Uri.parse("content://org.kiwix.ui/") - const val CONTENT_PREFIX = "zim://content/" + const val CONTENT_PREFIX = "https://kiwix.app/" private val INVERT_IMAGES_VIDEO = """ @@ -253,7 +253,8 @@ class ZimFileReader constructor( filter: invert(0); } """.trimIndent() - private val assetExtensions = listOf("3gp", "mp4", "m4a", "webm", "mkv", "ogg", "ogv", "svg") + private val assetExtensions = + listOf("3gp", "mp4", "m4a", "webm", "mkv", "ogg", "ogv", "svg", "warc") private const val DEFAULT_MIME_TYPE = "application/octet-stream" } }