diff --git a/.github/ISSUE_TEMPLATE/report_issue.yml b/.github/ISSUE_TEMPLATE/report_issue.yml index d4683f90d..d3a83249c 100644 --- a/.github/ISSUE_TEMPLATE/report_issue.yml +++ b/.github/ISSUE_TEMPLATE/report_issue.yml @@ -53,7 +53,7 @@ body: label: Mihon version description: You can find your Mihon version in **More → About**. placeholder: | - Example: "0.15.3" + Example: "0.16.1" validations: required: true @@ -98,7 +98,7 @@ body: required: true - label: I have gone through the [FAQ](https://mihon.app/docs/faq/general) and [troubleshooting guide](https://mihon.app/docs/guides/troubleshooting/). required: true - - label: I have updated the app to version **[0.15.3](https://github.com/mihonapp/mihon/releases/latest)**. + - label: I have updated the app to version **[0.16.1](https://github.com/mihonapp/mihon/releases/latest)**. required: true - label: I have updated all installed extensions. required: true diff --git a/.github/ISSUE_TEMPLATE/request_feature.yml b/.github/ISSUE_TEMPLATE/request_feature.yml index e976bde24..d8b93757e 100644 --- a/.github/ISSUE_TEMPLATE/request_feature.yml +++ b/.github/ISSUE_TEMPLATE/request_feature.yml @@ -33,7 +33,7 @@ body: required: true - label: If this is an issue with an official extension, I should be opening an issue in the [extensions repository](https://github.com/tachiyomiorg/extensions/issues/new/choose). required: true - - label: I have updated the app to version **[0.15.3](https://github.com/mihonapp/mihon/releases/latest)**. + - label: I have updated the app to version **[0.16.1](https://github.com/mihonapp/mihon/releases/latest)**. required: true - label: I will fill out all of the requested information in this form. required: true diff --git a/.idea/icon.png b/.idea/icon.png index ead7c3241..cd287a6c4 100644 Binary files a/.idea/icon.png and b/.idea/icon.png differ diff --git a/README.md b/README.md index 63a3a3858..a059570f9 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ -| Build | Stable | Weekly Preview | Support Server | -|-------|----------|---------|---------| -| [![CI](https://github.com/mihonapp/mihon/actions/workflows/build_push.yml/badge.svg)](https://github.com/mihonapp/mihon/actions/workflows/build_push.yml) | [![stable release](https://img.shields.io/github/release/mihonapp/mihon.svg?maxAge=3600&label=download)](https://github.com/mihonapp/mihon/releases) | [![latest preview build](https://img.shields.io/github/v/release/mihonapp/mihon-preview.svg?maxAge=3600&label=download)](https://github.com/mihonapp/mihon-preview/releases) | [![Discord](https://img.shields.io/discord/1195734228319617024.svg?label=discord&labelColor=7289da&color=2c2f33&style=flat)](https://discord.gg/mihon) | +| Build | Stable | Weekly Beta | Support Server | +|-------|--------|-------------|----------------| +| [![CI](https://github.com/mihonapp/mihon/actions/workflows/build_push.yml/badge.svg)](https://github.com/mihonapp/mihon/actions/workflows/build_push.yml) | [![stable release](https://img.shields.io/github/release/mihonapp/mihon.svg?maxAge=3600&label=download)](https://github.com/mihonapp/mihon/releases) | [![latest beta build](https://img.shields.io/github/v/release/mihonapp/mihon-preview.svg?maxAge=3600&label=download)](https://github.com/mihonapp/mihon-preview/releases) | [![Discord](https://img.shields.io/discord/1195734228319617024.svg?label=discord&labelColor=7289da&color=2c2f33&style=flat)](https://discord.gg/mihon) | # ![app icon](./.github/readme-images/app-icon.png)Mihon Mihon is a free and open source manga reader for Android 8.0 and above. @@ -20,7 +20,7 @@ Features include: ## Download Get the app from our [releases page](https://github.com/mihonapp/mihon/releases). -If you want to try new features before they get to the stable release, you can download the preview version [here](https://github.com/mihonapp/mihon-preview/releases). +If you want to try new features before they get to the stable release, you can download the beta version [here](https://github.com/mihonapp/mihon-preview/releases). ## Issues, Feature Requests and Contributing @@ -37,7 +37,7 @@ Please make sure to read the full guidelines. Your issue may be closed without w * Include version (More → About → Version) * If not latest, try updating, it may have already been solved - * Preview version is equal to the number of commits as seen on the main page + * Beta version is equal to the number of commits as seen on the main page * Include steps to reproduce (if not obvious from description) * Include screenshot (if needed) * If it could be device-dependent, try reproducing on another device (if possible) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index d6036944b..cd04d2059 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -22,8 +22,8 @@ android { defaultConfig { applicationId = "app.mihon" - versionCode = 1 - versionName = "0.16.0" + versionCode = 2 + versionName = "0.16.1" buildConfigField("String", "COMMIT_COUNT", "\"${getCommitCount()}\"") buildConfigField("String", "COMMIT_SHA", "\"${getGitSha()}\"") diff --git a/app/src/debug/res/drawable/ic_launcher_background.xml b/app/src/debug/res/drawable/ic_launcher_background.xml index 54f998b1c..39fec8d43 100644 --- a/app/src/debug/res/drawable/ic_launcher_background.xml +++ b/app/src/debug/res/drawable/ic_launcher_background.xml @@ -3,19 +3,14 @@ android:height="108dp" android:viewportWidth="432" android:viewportHeight="432"> - + + + - - diff --git a/app/src/debug/res/drawable/ic_launcher_foreground.xml b/app/src/debug/res/drawable/ic_launcher_foreground.xml index b293ee17e..1d32fd7e0 100644 --- a/app/src/debug/res/drawable/ic_launcher_foreground.xml +++ b/app/src/debug/res/drawable/ic_launcher_foreground.xml @@ -3,12 +3,14 @@ android:height="108dp" android:viewportWidth="432" android:viewportHeight="432"> - - - + + + diff --git a/app/src/main/java/eu/kanade/presentation/more/settings/screen/about/AboutScreen.kt b/app/src/main/java/eu/kanade/presentation/more/settings/screen/about/AboutScreen.kt index 2f740aa1a..1315c442b 100644 --- a/app/src/main/java/eu/kanade/presentation/more/settings/screen/about/AboutScreen.kt +++ b/app/src/main/java/eu/kanade/presentation/more/settings/screen/about/AboutScreen.kt @@ -247,7 +247,7 @@ object AboutScreen : Screen() { } } BuildConfig.PREVIEW -> { - "Preview r${BuildConfig.COMMIT_COUNT}".let { + "Beta r${BuildConfig.COMMIT_COUNT}".let { if (withBuildDate) { "$it (${BuildConfig.COMMIT_SHA}, ${getFormattedBuildTime()})" } else { diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/track/mangaupdates/MangaUpdates.kt b/app/src/main/java/eu/kanade/tachiyomi/data/track/mangaupdates/MangaUpdates.kt index f5c33cf8d..24ad1a56b 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/track/mangaupdates/MangaUpdates.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/track/mangaupdates/MangaUpdates.kt @@ -6,6 +6,8 @@ import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.data.database.models.Track import eu.kanade.tachiyomi.data.track.BaseTracker import eu.kanade.tachiyomi.data.track.DeletableTracker +import eu.kanade.tachiyomi.data.track.mangaupdates.dto.ListItem +import eu.kanade.tachiyomi.data.track.mangaupdates.dto.Rating import eu.kanade.tachiyomi.data.track.mangaupdates.dto.copyTo import eu.kanade.tachiyomi.data.track.mangaupdates.dto.toTrackSearch import eu.kanade.tachiyomi.data.track.model.TrackSearch @@ -23,10 +25,16 @@ class MangaUpdates(id: Long) : BaseTracker(id, "MangaUpdates"), DeletableTracker const val UNFINISHED_LIST = 3 const val ON_HOLD_LIST = 4 - private val SCORE_LIST = ( - (0..9) - .flatMap { i -> (0..9).map { j -> "$i.$j" } } + listOf("10.0") - ) + private val SCORE_LIST = (0..10) + .flatMap { decimal -> + when (decimal) { + 0 -> listOf("-") + 10 -> listOf("10.0") + else -> (0..9).map { fraction -> + "$decimal.$fraction" + } + } + } .toImmutableList() } @@ -59,7 +67,7 @@ class MangaUpdates(id: Long) : BaseTracker(id, "MangaUpdates"), DeletableTracker override fun getScoreList(): ImmutableList = SCORE_LIST - override fun indexToScore(index: Int): Float = SCORE_LIST[index].toFloat() + override fun indexToScore(index: Int): Float = if (index == 0) 0f else SCORE_LIST[index].toFloat() override fun displayScore(track: DomainTrack): String = track.score.toString() @@ -78,9 +86,9 @@ class MangaUpdates(id: Long) : BaseTracker(id, "MangaUpdates"), DeletableTracker override suspend fun bind(track: Track, hasReadChapters: Boolean): Track { return try { val (series, rating) = api.getSeriesListItem(track) - series.copyTo(track) - rating?.copyTo(track) ?: track + track.copyFrom(series, rating) } catch (e: Exception) { + track.score = 0f api.addSeriesToList(track, hasReadChapters) track } @@ -95,8 +103,12 @@ class MangaUpdates(id: Long) : BaseTracker(id, "MangaUpdates"), DeletableTracker override suspend fun refresh(track: Track): Track { val (series, rating) = api.getSeriesListItem(track) - series.copyTo(track) - return rating?.copyTo(track) ?: track + return track.copyFrom(series, rating) + } + + private fun Track.copyFrom(item: ListItem, rating: Rating?): Track = apply { + item.copyTo(this) + score = rating?.rating ?: 0f } override suspend fun login(username: String, password: String) { @@ -106,6 +118,6 @@ class MangaUpdates(id: Long) : BaseTracker(id, "MangaUpdates"), DeletableTracker } fun restoreSession(): String? { - return trackPreferences.trackPassword(this).get() + return trackPreferences.trackPassword(this).get().ifBlank { null } } } diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/track/mangaupdates/MangaUpdatesInterceptor.kt b/app/src/main/java/eu/kanade/tachiyomi/data/track/mangaupdates/MangaUpdatesInterceptor.kt index 2b283c3b8..094471b18 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/track/mangaupdates/MangaUpdatesInterceptor.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/track/mangaupdates/MangaUpdatesInterceptor.kt @@ -1,5 +1,6 @@ package eu.kanade.tachiyomi.data.track.mangaupdates +import eu.kanade.tachiyomi.BuildConfig import okhttp3.Interceptor import okhttp3.Response import java.io.IOException @@ -18,6 +19,7 @@ class MangaUpdatesInterceptor( // Add the authorization header to the original request. val authRequest = originalRequest.newBuilder() .addHeader("Authorization", "Bearer $token") + .header("User-Agent", "Mihon v${BuildConfig.VERSION_NAME} (${BuildConfig.APPLICATION_ID})") .build() return chain.proceed(authRequest) diff --git a/app/src/main/res/drawable/ic_launcher_background.xml b/app/src/main/res/drawable/ic_launcher_background.xml index 04ac2248a..d9630c95f 100644 --- a/app/src/main/res/drawable/ic_launcher_background.xml +++ b/app/src/main/res/drawable/ic_launcher_background.xml @@ -3,23 +3,11 @@ android:height="108dp" android:viewportWidth="432" android:viewportHeight="432"> - + + - - - diff --git a/app/src/main/res/drawable/ic_launcher_foreground.xml b/app/src/main/res/drawable/ic_launcher_foreground.xml index b293ee17e..c3dca7a15 100644 --- a/app/src/main/res/drawable/ic_launcher_foreground.xml +++ b/app/src/main/res/drawable/ic_launcher_foreground.xml @@ -3,12 +3,14 @@ android:height="108dp" android:viewportWidth="432" android:viewportHeight="432"> - - - + + + diff --git a/app/src/main/res/mipmap/ic_launcher.xml b/app/src/main/res/mipmap/ic_launcher.xml index 04091bd10..80faec845 100644 --- a/app/src/main/res/mipmap/ic_launcher.xml +++ b/app/src/main/res/mipmap/ic_launcher.xml @@ -3,4 +3,4 @@ - \ No newline at end of file + diff --git a/data/src/main/sqldelight/tachiyomi/data/mangas_categories.sq b/data/src/main/sqldelight/tachiyomi/data/mangas_categories.sq index 5c41843f0..b908e3f86 100644 --- a/data/src/main/sqldelight/tachiyomi/data/mangas_categories.sq +++ b/data/src/main/sqldelight/tachiyomi/data/mangas_categories.sq @@ -20,7 +20,7 @@ END; insert: INSERT INTO mangas_categories(manga_id, category_id, last_modified_at) -VALUES (:mangaId, :categoryId, strftime('%s', 'now')); +VALUES (:mangaId, :categoryId, 0); deleteMangaCategoryByMangaId: DELETE FROM mangas_categories diff --git a/i18n/src/commonMain/resources/MR/fi/strings.xml b/i18n/src/commonMain/resources/MR/fi/strings.xml index d75700acd..b44e5d964 100644 --- a/i18n/src/commonMain/resources/MR/fi/strings.xml +++ b/i18n/src/commonMain/resources/MR/fi/strings.xml @@ -143,7 +143,7 @@ Luottamattomat laajennokset Tämä laajennus on allekirjoitettu luottamattomalla sertifikaatilla ja sitä ei ole aktivoitu. \n -\nHaitallinen laajennus voisi lukea mahdolliset kirjautumistiedot Mihonsta tai suorittaa luvatonta koodia. +\nHaitallinen laajennus voisi lukea mahdolliset kirjautumistiedot Mihonista tai suorittaa luvatonta koodia. \n \nLuottamalla tähän sertifikaattiin hyväksyt nämä riskit. Koko näyttö @@ -348,7 +348,7 @@ Kiinnitä Valitse käänteinen Jatkuva pystysuora - WebView on pakollinen Mihonssa + WebView on pakollinen Mihonissa Palautus on jo käynnissä Varmuuskopiointi on jo käynnissä Sivuntäyttö @@ -495,7 +495,7 @@ Pois päältä Päällä Aloitusopas - Varoitus: massalataukset voivat johtaa siihen, että lähteet muuttuvat hitaammiksi käyttää ja/tai ne estävät Mihonn käytön. Napauta saadaksesi lisätietoja. + Varoitus: massalataukset voivat johtaa siihen, että lähteet muuttuvat hitaammiksi käyttää ja/tai ne estävät Mihonin käytön. Napauta saadaksesi lisätietoja. Näytä manga Kansikuva ruudukko Dynaaminen @@ -615,4 +615,4 @@ Varmuuskopioita kannattaa säilyttää myös muissa paikoissa. Toivelista Viimeksi luettua lukua ei voitu avata - \ No newline at end of file + diff --git a/i18n/src/commonMain/resources/MR/in/strings.xml b/i18n/src/commonMain/resources/MR/in/strings.xml index ff65294de..df35b8264 100644 --- a/i18n/src/commonMain/resources/MR/in/strings.xml +++ b/i18n/src/commonMain/resources/MR/in/strings.xml @@ -192,7 +192,7 @@ Tambahkan ke pustaka\? Gambar disimpan Filter khusus - Tetapkan sebagai sampul + Terapkan sebagai sampul Sampul telah diperbarui Halaman: %1$d Bab berikutnya tak ditemukan @@ -406,15 +406,15 @@ Kemajuan Masalah Pelacakan tidak tersinkronisasi di: - Sumber dari ekstensi ini mungkin berisi konten DEWASA (18+) + Sumber dari ekstensi ini mungkin berisi konten DEWASA (NSFW 18+) 18+ Hapus bab yang ditandai Hapus chapter - Hal ini tidak mencegah ekstensi yang tidak resmi atau berpotensi salah ditandai untuk menampilkan konten NSFW (18+) di dalam aplikasi. + Hal ini tidak mencegah ekstensi non-resmi atau konten DEWASA (NSFW 18+) yang tidak ditandai dengan benar muncul di dalam aplikasi. Tidak ada bab yang ditemukan Pengaturan bab bawaan diperbarui - Tetapkan sebagai bawaan - Juga terapkan untuk semua entri di pustaka saya + Terapkan sebagai bawaan + Terapkan pula untuk semua entri di pustaka saya Apakah anda yakin ingin menyimpan pengaturan ini sebagai bawaan\? Pengaturan bab %1$s: %2$s, halaman %3$d @@ -573,7 +573,7 @@ Pindahkan seri ke atas Versi baru tersedia dari perilisan resmi. Ketuk untuk mempelajari migrasi dari perilisan non-resmi dari F-Droid. Dinonaktifkan - Error menyimpan gambar + Gagal menyimpan gambar Tidak ada entri perpustakaan untuk dicadangkan Buka di Github Membersihkan data WebView @@ -700,7 +700,7 @@ Geser kekiri Ketuk dua kali untuk memperbesar %d per baris - Tetapkan jeda waktu + Terapkan jeda waktu Frekuensi pembaruan yang disesuaikan Dilewati karena tidak ada rilis yang diharapkan hari ini Pembaruan yang diharapkan berikutnya @@ -783,7 +783,7 @@ Tambahkan repo lain ke Mihon. Seharusnya URL yang memiliki akhiran \"index.min.json\". Repositori ekstensi Anda tidak memiliki repositori yang ditetapkan. - Keseluruhan eror: + Kesalahan penuh: Repositori ini sudah ada! URL Repo URL repo tidak valid @@ -793,9 +793,9 @@ Apa Anda yakin ingin menghapus repo \"%s\"? Bab baru diperkirakan akan dirils sekitar %1$s, diperiksa setiap sekitar %2$s. Tersedia:%1$s/Total:%2$s - Keseringan pembaruan yang di kostumisasi: + Frekuensi pembaruan khusus: Nord Segera - Mencabut ekstensi tidak dikenal yang tepercaya + Cabut izin ekstensi tidak dikenal yang tepercaya Repo sumber terbuka \ No newline at end of file diff --git a/i18n/src/commonMain/resources/MR/sr/plurals.xml b/i18n/src/commonMain/resources/MR/sr/plurals.xml index 3559f7cf8..6a538ebc2 100644 --- a/i18n/src/commonMain/resources/MR/sr/plurals.xml +++ b/i18n/src/commonMain/resources/MR/sr/plurals.xml @@ -26,9 +26,9 @@ %d категорија - Pre %1$d dan - Pre %1$d dana - Pre %1$d dana + Пре %1$d дан + Пре %1$d дана + Пре %1$d дана Прескаче се %d поглавље, или не постоји у извору или је филтером издвојено @@ -80,4 +80,9 @@ %d дана %d дана + + %d репозиторија + %d репозиторија + %d репозиторија + \ No newline at end of file diff --git a/i18n/src/commonMain/resources/MR/sr/strings.xml b/i18n/src/commonMain/resources/MR/sr/strings.xml index 1c08015da..b74ad34aa 100644 --- a/i18n/src/commonMain/resources/MR/sr/strings.xml +++ b/i18n/src/commonMain/resources/MR/sr/strings.xml @@ -15,6 +15,7 @@ Миграција Додаци Информације о додатку + Складиштење и подаци Подешавања Филтер Забележено @@ -83,7 +84,7 @@ Све Ограничења уређаја за аутоматска ажурирања Пуњење - Са статусом \"Завршено\" + Прескочи уносе са статусом \"Завршено\" Ажурирај пратиоца након читања Подразумевана категорија Увек питај @@ -428,7 +429,7 @@ Мрежа Подаци из датотеке резервне копије ће бити враћени. \n -\nМораћете да инсталирате све додатке које недостају и да се после тога пријавите на трекере да бисте их користили. +\nМораћете да инсталирате све додатке које недостају и да се после тога пријавите на пратиоце да бисте их користили. Сервиси који пружају побољшане услуге за одређене изворе. Наслов се аутоматски прати када га додате у колекцију. Помозите у превођењу Дели извештаје о паду @@ -535,7 +536,7 @@ Дозволи брисање забележених поглавља Искључене категорије Наслови у искљученим категоријама неће се преузимати иако су такође у укљученим категоријама. - Једносмерна синхронизација за ажурирање броја прочитаних поглавља у трекерима. За појединачно праћење наслова додирни дугме за њихово праћење. + Једносмерна синхронизација за ажурирање броја прочитаних поглавља у пратиоцима. За појединачно праћење наслова додирни дугме за њихово праћење. Подаци Инкогнито мод Омот је ажуриран @@ -556,11 +557,11 @@ Преузимање листе додатака није успело Испразни кеш меморију поглавља током покретања апликације Нема ништа за чишћење - Sa neporcitanim poglavljem(ima) + Прескочи уносе са непрочитаним поглављима Политика приватности Отказано На паузи - То није започето + Прескочи уносе који нису започети Прикажи наслов Помакни наслов на врх %1$d ажурирање није успело @@ -681,7 +682,7 @@ Низ корисничког агента не може бити празан Ресетуј подразумевани низ корисничког агента Праћени наслови - Трекери + Пратиоци Рангирање по узрасту Персонализовани омот Ресетуј подешавања читача по наслову @@ -708,7 +709,7 @@ Лиценцирано - Нема поглавља за приказ Има резултата Прескочено јер данас није очекивано издање - Изван очекиваног периода изласка + Предвиди очекивано време изласка Постави интервалу Интервали Такође уклони из %s @@ -729,4 +730,59 @@ Нема везе са интернетом HTTP %d, погледај веб сајт у WebView %s је недоступан + Релативне временске ознаке + „%1$s” уместо „%2$s” + Паметно ажурирање + Забљесни приликом листања + Смањује артефакте на е-инк екранима + Репозиторије екстензија + Место складиштења + Користи се за аутоматске резервне копије, преузимаље поглавља и локални извор. + Опозови поверење непознатим екстензијама + Оцена на пратиоцу + Аматерски преводилац + Ниједан аматерски преводилац није пронађен + Не укључуј аматерске преводиоце + Предвиђа се да ће нова поглавља изаћи за %1$s, проверава се сваких %2$s. + Ускоро + Доступно: %1$s / Укупно: %2$s + Немате додатих репозиторија. + Додај репозиторију + Избриши репозиторију + URL репозиторије + Додај додатне репозиторије у Михон. Треба да буде URL који се завршава са „index.min.json”. + Неисправан URL репозиторије + Да ли желиш да избришеш репозиторију „%s”? + Укључи и осетљива подешавања (нпр. токени за пријаву у пратиоце) + Изабери путању + Започни + Мораш да изабереш једну путању + Дозвола за обавештења + Дозвола за инсталацију апликација + Пресокочи + Следеће + За инсталирање екстензија. + За примање обавештења о ажурурању библиотеке и др. + Одобри + Добро дошли! + Водич за прво покретање + Користш %s први пут? Препоручујемо да погледаш водич за покретање + Поново инсталираш %s? + Избегни прекиде при дуготрајном ажурирању колекције, преузимању и обнављању резервне копије + Коришћење батерије у позадини + Хајде да обавимо нека подешавања. Ако желиш можеш их касније променити у подешавањима. + Није постављена локација за складиштење + Одабери путању у коју ће %1$s чувати преузимања поглавља, резервне копије и друго. +\n +\nПрепоручујемо коришћење засебне путање +\n +\nОдабрана путања: %2$s + Норд + Ажурураш са старије верзије и не знаш шта да изабереш? Потражи информације у водичу складиштења. + Водич складиштења + За инсталацију екстензија потребне су дозволе. Додирни овде за одобрење + Грешка: + Ова репозиторија већ постоји + Прилагођена учесталост ажурирања: + Отвори репозиторију \ No newline at end of file