Download format preference

master
Koitharu 2 years ago
parent f6de1b02d7
commit dba36838d4
Signed by: Koitharu
GPG Key ID: 676DEE768C17A9D7

@ -277,6 +277,9 @@ class AppSettings @Inject constructor(@ApplicationContext context: Context) {
val isDownloadsWiFiOnly: Boolean val isDownloadsWiFiOnly: Boolean
get() = prefs.getBoolean(KEY_DOWNLOADS_WIFI, false) get() = prefs.getBoolean(KEY_DOWNLOADS_WIFI, false)
val preferredDownloadFormat: DownloadFormat
get() = prefs.getEnumValue(KEY_DOWNLOADS_FORMAT, DownloadFormat.AUTOMATIC)
var isSuggestionsEnabled: Boolean var isSuggestionsEnabled: Boolean
get() = prefs.getBoolean(KEY_SUGGESTIONS, false) get() = prefs.getBoolean(KEY_SUGGESTIONS, false)
set(value) = prefs.edit { putBoolean(KEY_SUGGESTIONS, value) } set(value) = prefs.edit { putBoolean(KEY_SUGGESTIONS, value) }
@ -552,6 +555,7 @@ class AppSettings @Inject constructor(@ApplicationContext context: Context) {
const val KEY_MAL = "mal" const val KEY_MAL = "mal"
const val KEY_KITSU = "kitsu" const val KEY_KITSU = "kitsu"
const val KEY_DOWNLOADS_WIFI = "downloads_wifi" const val KEY_DOWNLOADS_WIFI = "downloads_wifi"
const val KEY_DOWNLOADS_FORMAT = "downloads_format"
const val KEY_ALL_FAVOURITES_VISIBLE = "all_favourites_visible" const val KEY_ALL_FAVOURITES_VISIBLE = "all_favourites_visible"
const val KEY_DOH = "doh" const val KEY_DOH = "doh"
const val KEY_EXIT_CONFIRM = "exit_confirm" const val KEY_EXIT_CONFIRM = "exit_confirm"

@ -0,0 +1,8 @@
package org.koitharu.kotatsu.core.prefs
enum class DownloadFormat {
AUTOMATIC,
SINGLE_CBZ,
MULTIPLE_CBZ,
}

@ -91,6 +91,7 @@ class DownloadWorker @AssistedInject constructor(
private val localMangaRepository: LocalMangaRepository, private val localMangaRepository: LocalMangaRepository,
private val mangaDataRepository: MangaDataRepository, private val mangaDataRepository: MangaDataRepository,
private val mangaRepositoryFactory: MangaRepository.Factory, private val mangaRepositoryFactory: MangaRepository.Factory,
private val settings: AppSettings,
@LocalStorageChanges private val localStorageChanges: MutableSharedFlow<LocalManga?>, @LocalStorageChanges private val localStorageChanges: MutableSharedFlow<LocalManga?>,
notificationFactoryFactory: DownloadNotificationFactory.Factory, notificationFactoryFactory: DownloadNotificationFactory.Factory,
) : CoroutineWorker(appContext, params) { ) : CoroutineWorker(appContext, params) {
@ -182,7 +183,7 @@ class DownloadWorker @AssistedInject constructor(
} }
val repo = mangaRepositoryFactory.create(manga.source) val repo = mangaRepositoryFactory.create(manga.source)
val mangaDetails = if (manga.chapters.isNullOrEmpty()) repo.getDetails(manga) else manga val mangaDetails = if (manga.chapters.isNullOrEmpty()) repo.getDetails(manga) else manga
output = LocalMangaOutput.getOrCreate(destination, mangaDetails) output = LocalMangaOutput.getOrCreate(destination, mangaDetails, settings.preferredDownloadFormat)
val coverUrl = mangaDetails.largeCoverUrl.ifNullOrEmpty { mangaDetails.coverUrl } val coverUrl = mangaDetails.largeCoverUrl.ifNullOrEmpty { mangaDetails.coverUrl }
if (coverUrl.isNotEmpty()) { if (coverUrl.isNotEmpty()) {
downloadFile(coverUrl, destination, repo.source).let { file -> downloadFile(coverUrl, destination, repo.source).let { file ->

@ -4,7 +4,9 @@ import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.sync.Mutex import kotlinx.coroutines.sync.Mutex
import kotlinx.coroutines.sync.withLock import kotlinx.coroutines.sync.withLock
import kotlinx.coroutines.withContext import kotlinx.coroutines.withContext
import okhttp3.internal.format
import okio.Closeable import okio.Closeable
import org.koitharu.kotatsu.core.prefs.DownloadFormat
import org.koitharu.kotatsu.core.util.ext.printStackTraceDebug import org.koitharu.kotatsu.core.util.ext.printStackTraceDebug
import org.koitharu.kotatsu.local.data.input.LocalMangaInput import org.koitharu.kotatsu.local.data.input.LocalMangaInput
import org.koitharu.kotatsu.parsers.model.Manga import org.koitharu.kotatsu.parsers.model.Manga
@ -35,22 +37,32 @@ sealed class LocalMangaOutput(
const val SUFFIX_TMP = ".tmp" const val SUFFIX_TMP = ".tmp"
private val mutex = Mutex() private val mutex = Mutex()
suspend fun getOrCreate(root: File, manga: Manga): LocalMangaOutput = withContext(Dispatchers.IO) { suspend fun getOrCreate(
val preferSingleCbz = manga.chapters.let { root: File,
it != null && it.size <= 3 manga: Manga,
format: DownloadFormat,
): LocalMangaOutput = withContext(Dispatchers.IO) {
val targetFormat = if (format == DownloadFormat.AUTOMATIC) {
if (manga.chapters.let { it != null && it.size <= 3 }) {
DownloadFormat.SINGLE_CBZ
} else {
DownloadFormat.MULTIPLE_CBZ
}
} else {
format
} }
checkNotNull(getImpl(root, manga, onlyIfExists = false, preferSingleCbz)) checkNotNull(getImpl(root, manga, onlyIfExists = false, format = targetFormat))
} }
suspend fun get(root: File, manga: Manga): LocalMangaOutput? = withContext(Dispatchers.IO) { suspend fun get(root: File, manga: Manga): LocalMangaOutput? = withContext(Dispatchers.IO) {
getImpl(root, manga, onlyIfExists = true, preferSingleCbz = false) getImpl(root, manga, onlyIfExists = true, format = DownloadFormat.AUTOMATIC)
} }
private suspend fun getImpl( private suspend fun getImpl(
root: File, root: File,
manga: Manga, manga: Manga,
onlyIfExists: Boolean, onlyIfExists: Boolean,
preferSingleCbz: Boolean, format: DownloadFormat,
): LocalMangaOutput? { ): LocalMangaOutput? {
mutex.withLock { mutex.withLock {
var i = 0 var i = 0
@ -75,10 +87,10 @@ sealed class LocalMangaOutput(
continue continue
} }
!onlyIfExists -> if (preferSingleCbz) { !onlyIfExists -> when (format) {
LocalMangaZipOutput(zip, manga) DownloadFormat.AUTOMATIC -> null
} else { DownloadFormat.SINGLE_CBZ -> LocalMangaZipOutput(zip, manga)
LocalMangaDirOutput(dir, manga) DownloadFormat.MULTIPLE_CBZ -> LocalMangaDirOutput(dir, manga)
} }
else -> null else -> null

@ -54,7 +54,7 @@ class AppearanceSettingsFragment :
} }
summaryProvider = Preference.SummaryProvider<ActivityListPreference> { summaryProvider = Preference.SummaryProvider<ActivityListPreference> {
val locale = AppCompatDelegate.getApplicationLocales().get(0) val locale = AppCompatDelegate.getApplicationLocales().get(0)
locale?.getDisplayName(locale)?.toTitleCase(locale) ?: getString(R.string.automatic) locale?.getDisplayName(locale)?.toTitleCase(locale) ?: getString(R.string.follow_system)
} }
setDefaultValueCompat("") setDefaultValueCompat("")
} }
@ -105,7 +105,7 @@ class AppearanceSettingsFragment :
.sortedWithSafe(LocaleComparator()) .sortedWithSafe(LocaleComparator())
preference.entries = Array(locales.size + 1) { i -> preference.entries = Array(locales.size + 1) { i ->
if (i == 0) { if (i == 0) {
getString(R.string.automatic) getString(R.string.follow_system)
} else { } else {
val lc = locales[i - 1] val lc = locales[i - 1]
lc.getDisplayName(lc).toTitleCase(lc) lc.getDisplayName(lc).toTitleCase(lc)

@ -7,6 +7,7 @@ import android.os.Bundle
import android.view.View import android.view.View
import androidx.activity.result.contract.ActivityResultContracts import androidx.activity.result.contract.ActivityResultContracts
import androidx.documentfile.provider.DocumentFile import androidx.documentfile.provider.DocumentFile
import androidx.preference.ListPreference
import androidx.preference.Preference import androidx.preference.Preference
import com.google.android.material.snackbar.Snackbar import com.google.android.material.snackbar.Snackbar
import dagger.hilt.android.AndroidEntryPoint import dagger.hilt.android.AndroidEntryPoint
@ -15,13 +16,17 @@ import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext import kotlinx.coroutines.withContext
import org.koitharu.kotatsu.R import org.koitharu.kotatsu.R
import org.koitharu.kotatsu.core.prefs.AppSettings import org.koitharu.kotatsu.core.prefs.AppSettings
import org.koitharu.kotatsu.core.prefs.DownloadFormat
import org.koitharu.kotatsu.core.prefs.ReaderAnimation
import org.koitharu.kotatsu.core.ui.BasePreferenceFragment import org.koitharu.kotatsu.core.ui.BasePreferenceFragment
import org.koitharu.kotatsu.core.util.ext.printStackTraceDebug import org.koitharu.kotatsu.core.util.ext.printStackTraceDebug
import org.koitharu.kotatsu.core.util.ext.resolveFile import org.koitharu.kotatsu.core.util.ext.resolveFile
import org.koitharu.kotatsu.core.util.ext.setDefaultValueCompat
import org.koitharu.kotatsu.core.util.ext.tryLaunch import org.koitharu.kotatsu.core.util.ext.tryLaunch
import org.koitharu.kotatsu.core.util.ext.viewLifecycleScope import org.koitharu.kotatsu.core.util.ext.viewLifecycleScope
import org.koitharu.kotatsu.download.ui.worker.DownloadWorker import org.koitharu.kotatsu.download.ui.worker.DownloadWorker
import org.koitharu.kotatsu.local.data.LocalStorageManager import org.koitharu.kotatsu.local.data.LocalStorageManager
import org.koitharu.kotatsu.parsers.util.names
import org.koitharu.kotatsu.settings.storage.MangaDirectorySelectDialog import org.koitharu.kotatsu.settings.storage.MangaDirectorySelectDialog
import org.koitharu.kotatsu.settings.storage.directories.MangaDirectoriesActivity import org.koitharu.kotatsu.settings.storage.directories.MangaDirectoriesActivity
import org.koitharu.kotatsu.settings.utils.DozeHelper import org.koitharu.kotatsu.settings.utils.DozeHelper
@ -46,6 +51,10 @@ class DownloadsSettingsFragment :
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) { override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
addPreferencesFromResource(R.xml.pref_downloads) addPreferencesFromResource(R.xml.pref_downloads)
findPreference<ListPreference>(AppSettings.KEY_DOWNLOADS_FORMAT)?.run {
entryValues = DownloadFormat.entries.names()
setDefaultValueCompat(DownloadFormat.AUTOMATIC.name)
}
dozeHelper.updatePreference() dozeHelper.updatePreference()
} }

@ -37,7 +37,7 @@
<string name="manga_downloading_">جاري التنزيل…</string> <string name="manga_downloading_">جاري التنزيل…</string>
<string name="create_shortcut">انشاء اختصار…</string> <string name="create_shortcut">انشاء اختصار…</string>
<string name="theme">مظهر</string> <string name="theme">مظهر</string>
<string name="automatic">حسب النظام</string> <string name="follow_system">حسب النظام</string>
<string name="share_s">شارك %s</string> <string name="share_s">شارك %s</string>
<string name="processing_">في طور معالجة…</string> <string name="processing_">في طور معالجة…</string>
<string name="updated">محدث</string> <string name="updated">محدث</string>

@ -45,7 +45,7 @@
<string name="theme">Тэма</string> <string name="theme">Тэма</string>
<string name="light">Светлая</string> <string name="light">Светлая</string>
<string name="dark">Цёмная</string> <string name="dark">Цёмная</string>
<string name="automatic">Як у сістэме</string> <string name="follow_system">Як у сістэме</string>
<string name="pages">Старонкi</string> <string name="pages">Старонкi</string>
<string name="clear">Ачысціць</string> <string name="clear">Ачысціць</string>
<string name="text_clear_history_prompt">Вы ўпэўненыя, што жадаеце ачысціць гісторыю\?</string> <string name="text_clear_history_prompt">Вы ўпэўненыя, што жадаеце ачысціць гісторыю\?</string>

@ -64,7 +64,7 @@
<string name="theme">থিম</string> <string name="theme">থিম</string>
<string name="light">আলো</string> <string name="light">আলো</string>
<string name="dark">আঁধার</string> <string name="dark">আঁধার</string>
<string name="automatic">সিস্টেম অনুযায়ী</string> <string name="follow_system">সিস্টেম অনুযায়ী</string>
<string name="pages">পৃষ্ঠাগুলি</string> <string name="pages">পৃষ্ঠাগুলি</string>
<string name="webtoon">ওয়েবটুন</string> <string name="webtoon">ওয়েবটুন</string>
<string name="read_mode">পড়ার মোড</string> <string name="read_mode">পড়ার মোড</string>

@ -33,7 +33,7 @@
<string name="theme">Téma</string> <string name="theme">Téma</string>
<string name="light">Světlé</string> <string name="light">Světlé</string>
<string name="dark">Tmavé</string> <string name="dark">Tmavé</string>
<string name="automatic">Následovat systém</string> <string name="follow_system">Následovat systém</string>
<string name="remove">Odstranit</string> <string name="remove">Odstranit</string>
<string name="_s_deleted_from_local_storage">\"%s\" smazáno z místního uložiště</string> <string name="_s_deleted_from_local_storage">\"%s\" smazáno z místního uložiště</string>
<string name="share_image">Sdílet obrázek</string> <string name="share_image">Sdílet obrázek</string>

@ -4,7 +4,7 @@
<string name="text_clear_history_prompt">Gesamten Leseverlauf unwiderruflich löschen\?</string> <string name="text_clear_history_prompt">Gesamten Leseverlauf unwiderruflich löschen\?</string>
<string name="theme">Design</string> <string name="theme">Design</string>
<string name="pages">Seiten</string> <string name="pages">Seiten</string>
<string name="automatic">Wie System</string> <string name="follow_system">Wie System</string>
<string name="dark">Dunkel</string> <string name="dark">Dunkel</string>
<string name="light">Hell</string> <string name="light">Hell</string>
<string name="filter">Filter</string> <string name="filter">Filter</string>

@ -31,7 +31,7 @@
<string name="by_rating">Βαθμολογία</string> <string name="by_rating">Βαθμολογία</string>
<string name="filter">Φίλτρο</string> <string name="filter">Φίλτρο</string>
<string name="dark">Σκοτεινό</string> <string name="dark">Σκοτεινό</string>
<string name="automatic">Όπως στο σύστημα</string> <string name="follow_system">Όπως στο σύστημα</string>
<string name="clear">Εκκαθάριση</string> <string name="clear">Εκκαθάριση</string>
<string name="text_clear_history_prompt">Να διαγράψετε μόνιμα όλο το ιστορικό ανάγνωσης;</string> <string name="text_clear_history_prompt">Να διαγράψετε μόνιμα όλο το ιστορικό ανάγνωσης;</string>
<string name="remove">Διαγραφή</string> <string name="remove">Διαγραφή</string>

@ -45,7 +45,7 @@
<string name="theme">Tema</string> <string name="theme">Tema</string>
<string name="light">Claro</string> <string name="light">Claro</string>
<string name="dark">Oscuro</string> <string name="dark">Oscuro</string>
<string name="automatic">De acuerdo al sistema</string> <string name="follow_system">De acuerdo al sistema</string>
<string name="pages">Páginas</string> <string name="pages">Páginas</string>
<string name="clear">Limpiar</string> <string name="clear">Limpiar</string>
<string name="text_clear_history_prompt">Borrar todo el historial de lectura de forma permanente\?</string> <string name="text_clear_history_prompt">Borrar todo el historial de lectura de forma permanente\?</string>

@ -168,7 +168,7 @@
<string name="scale_mode">skaala mood</string> <string name="scale_mode">skaala mood</string>
<string name="advanced">Täiustatud</string> <string name="advanced">Täiustatud</string>
<string name="only_using_wifi">Ainult Wi-Fi-l</string> <string name="only_using_wifi">Ainult Wi-Fi-l</string>
<string name="automatic">Jälgne süsteemile</string> <string name="follow_system">Jälgne süsteemile</string>
<string name="sync_settings">Sünkroniseeri seadeid</string> <string name="sync_settings">Sünkroniseeri seadeid</string>
<string name="black_dark_theme">Must</string> <string name="black_dark_theme">Must</string>
<string name="text_history_holder_primary">Mis sa loed näidatakse siin</string> <string name="text_history_holder_primary">Mis sa loed näidatakse siin</string>

@ -14,7 +14,7 @@
<string name="internal_storage">حافظه ی درونی</string> <string name="internal_storage">حافظه ی درونی</string>
<string name="right_to_left">راست به چپ</string> <string name="right_to_left">راست به چپ</string>
<string name="reader_mode_hint">پیکربندی انتخاب شده برای این مانگا بخاطر خواهد ماند</string> <string name="reader_mode_hint">پیکربندی انتخاب شده برای این مانگا بخاطر خواهد ماند</string>
<string name="automatic">تم سیستم</string> <string name="follow_system">تم سیستم</string>
<string name="pages">صفحات</string> <string name="pages">صفحات</string>
<string name="clear">پاکسازی</string> <string name="clear">پاکسازی</string>
<string name="domain">دامنه</string> <string name="domain">دامنه</string>

@ -137,7 +137,7 @@
<string name="text_clear_history_prompt">Haluatko todella tyhjentää koko lukuhistoriasi\?</string> <string name="text_clear_history_prompt">Haluatko todella tyhjentää koko lukuhistoriasi\?</string>
<string name="clear">Tyhjennä</string> <string name="clear">Tyhjennä</string>
<string name="pages">Sivut</string> <string name="pages">Sivut</string>
<string name="automatic">Automaattinen</string> <string name="follow_system">Automaattinen</string>
<string name="dark">Tumma</string> <string name="dark">Tumma</string>
<string name="light">Vaalea</string> <string name="light">Vaalea</string>
<string name="theme">Teema</string> <string name="theme">Teema</string>

@ -7,7 +7,7 @@
<string name="filter">Pansala</string> <string name="filter">Pansala</string>
<string name="theme">Tema</string> <string name="theme">Tema</string>
<string name="dark">Madilim</string> <string name="dark">Madilim</string>
<string name="automatic">Sundan ang sistema</string> <string name="follow_system">Sundan ang sistema</string>
<string name="error_occurred">May nangyaring error</string> <string name="error_occurred">May nangyaring error</string>
<string name="network_error">Error sa network</string> <string name="network_error">Error sa network</string>
<string name="details">Mga detalye</string> <string name="details">Mga detalye</string>

@ -134,7 +134,7 @@
<string name="text_clear_history_prompt">Effacer définitivement l\'historique de lecture \?</string> <string name="text_clear_history_prompt">Effacer définitivement l\'historique de lecture \?</string>
<string name="clear">Effacer</string> <string name="clear">Effacer</string>
<string name="pages">Pages</string> <string name="pages">Pages</string>
<string name="automatic">Suivre le système</string> <string name="follow_system">Suivre le système</string>
<string name="dark">Sombre</string> <string name="dark">Sombre</string>
<string name="light">Clair</string> <string name="light">Clair</string>
<string name="theme">Thème</string> <string name="theme">Thème</string>

@ -61,7 +61,7 @@
<string name="list">सूची</string> <string name="list">सूची</string>
<string name="filter">फिल्टर</string> <string name="filter">फिल्टर</string>
<string name="theme">थीम</string> <string name="theme">थीम</string>
<string name="automatic">फोन जैसा</string> <string name="follow_system">फोन जैसा</string>
<string name="pages">पन्ने</string> <string name="pages">पन्ने</string>
<string name="no_description">कोई विवरण नहीं है</string> <string name="no_description">कोई विवरण नहीं है</string>
<string name="updates">अपडेट</string> <string name="updates">अपडेट</string>

@ -32,7 +32,7 @@
<string name="by_rating">Értékelés</string> <string name="by_rating">Értékelés</string>
<string name="filter">Szűrő</string> <string name="filter">Szűrő</string>
<string name="light">Fényes</string> <string name="light">Fényes</string>
<string name="automatic">Rendszer alapján</string> <string name="follow_system">Rendszer alapján</string>
<string name="clear">Törlés</string> <string name="clear">Törlés</string>
<string name="text_clear_history_prompt">Véglegesen törli az összes olvasási előzményt?</string> <string name="text_clear_history_prompt">Véglegesen törli az összes olvasási előzményt?</string>
<string name="remove">Eltávolítás</string> <string name="remove">Eltávolítás</string>

@ -42,7 +42,7 @@
<string name="theme">Tema</string> <string name="theme">Tema</string>
<string name="light">Terang</string> <string name="light">Terang</string>
<string name="dark">Gelap</string> <string name="dark">Gelap</string>
<string name="automatic">Ikuti sistem</string> <string name="follow_system">Ikuti sistem</string>
<string name="pages">Halaman</string> <string name="pages">Halaman</string>
<string name="clear">Bersihkan</string> <string name="clear">Bersihkan</string>
<string name="remove">Hapus</string> <string name="remove">Hapus</string>

@ -9,7 +9,7 @@
<string name="page_saved">Pagina salvata correttamente</string> <string name="page_saved">Pagina salvata correttamente</string>
<string name="save_page">Salva la pagina</string> <string name="save_page">Salva la pagina</string>
<string name="pages">Pagine</string> <string name="pages">Pagine</string>
<string name="automatic">Automatico</string> <string name="follow_system">Automatico</string>
<string name="dark">Scuro</string> <string name="dark">Scuro</string>
<string name="light">Chiaro</string> <string name="light">Chiaro</string>
<string name="theme">Tema</string> <string name="theme">Tema</string>

@ -38,7 +38,7 @@
<string name="newest">最新</string> <string name="newest">最新</string>
<string name="by_rating">評価</string> <string name="by_rating">評価</string>
<string name="sort_order">並べ替え</string> <string name="sort_order">並べ替え</string>
<string name="automatic">システムに従う</string> <string name="follow_system">システムに従う</string>
<string name="clear">消去</string> <string name="clear">消去</string>
<string name="text_clear_history_prompt">すべての履歴を永久に消去しますか?</string> <string name="text_clear_history_prompt">すべての履歴を永久に消去しますか?</string>
<string name="remove">削除</string> <string name="remove">削除</string>

@ -48,7 +48,7 @@
<string name="theme">Кейіп</string> <string name="theme">Кейіп</string>
<string name="dark">Қараңғы</string> <string name="dark">Қараңғы</string>
<string name="light">Ақшыл</string> <string name="light">Ақшыл</string>
<string name="automatic">Жүйедегідей</string> <string name="follow_system">Жүйедегідей</string>
<string name="pages">Беттер</string> <string name="pages">Беттер</string>
<string name="clear">Тазалау</string> <string name="clear">Тазалау</string>
<string name="remove">Жою</string> <string name="remove">Жою</string>

@ -62,7 +62,7 @@
<string name="processing_">처리중…</string> <string name="processing_">처리중…</string>
<string name="updated">최근 업데이트 순</string> <string name="updated">최근 업데이트 순</string>
<string name="newest">최근 발간 순</string> <string name="newest">최근 발간 순</string>
<string name="automatic">시스템 설정</string> <string name="follow_system">시스템 설정</string>
<string name="delete">지우기</string> <string name="delete">지우기</string>
<string name="text_file_sizes">바이트|kB|MB|GB|TB</string> <string name="text_file_sizes">바이트|kB|MB|GB|TB</string>
<string name="clear_pages_cache">페이지 캐시 지우기</string> <string name="clear_pages_cache">페이지 캐시 지우기</string>

@ -45,7 +45,7 @@
<string name="filter">Tapis</string> <string name="filter">Tapis</string>
<string name="light">Terang</string> <string name="light">Terang</string>
<string name="dark">Gelap</string> <string name="dark">Gelap</string>
<string name="automatic">Ikut sistem</string> <string name="follow_system">Ikut sistem</string>
<string name="pages">Muka surat</string> <string name="pages">Muka surat</string>
<string name="clear">Kosongkan</string> <string name="clear">Kosongkan</string>
<string name="text_clear_history_prompt">Kosongkan semua sejarah pembacaan selama-lamanya?</string> <string name="text_clear_history_prompt">Kosongkan semua sejarah pembacaan selama-lamanya?</string>

@ -137,7 +137,7 @@
<string name="remove">Fjern</string> <string name="remove">Fjern</string>
<string name="clear">Tøm</string> <string name="clear">Tøm</string>
<string name="pages">Sider</string> <string name="pages">Sider</string>
<string name="automatic">Følg systemet</string> <string name="follow_system">Følg systemet</string>
<string name="dark">Mørk</string> <string name="dark">Mørk</string>
<string name="light">Lys</string> <string name="light">Lys</string>
<string name="by_name">Navn</string> <string name="by_name">Navn</string>

@ -34,7 +34,7 @@
<string name="sort_order">क्रमबद्ध क्रम</string> <string name="sort_order">क्रमबद्ध क्रम</string>
<string name="theme">थीम</string> <string name="theme">थीम</string>
<string name="light">उज्यालो</string> <string name="light">उज्यालो</string>
<string name="automatic">सिस्टम पालना गर्नुहोस्</string> <string name="follow_system">सिस्टम पालना गर्नुहोस्</string>
<string name="computing_">कम्प्युटिङ…</string> <string name="computing_">कम्प्युटिङ…</string>
<string name="favourites">मनपर्ने</string> <string name="favourites">मनपर्ने</string>
<string name="details">विवरण</string> <string name="details">विवरण</string>

@ -100,7 +100,7 @@
<string name="by_name">Namn</string> <string name="by_name">Namn</string>
<string name="updated">Oppdatert</string> <string name="updated">Oppdatert</string>
<string name="theme">Vising</string> <string name="theme">Vising</string>
<string name="automatic">Lyd systemet</string> <string name="follow_system">Lyd systemet</string>
<string name="dark">Mørk</string> <string name="dark">Mørk</string>
<string name="text_local_holder_primary">Hent noko først</string> <string name="text_local_holder_primary">Hent noko først</string>
<string name="not_available">Ikkje tilgjengeleg</string> <string name="not_available">Ikkje tilgjengeleg</string>

@ -174,7 +174,7 @@
<string name="notifications_settings">Ustawienia powiadomień</string> <string name="notifications_settings">Ustawienia powiadomień</string>
<string name="remote_sources">Zewnętrzne źródła</string> <string name="remote_sources">Zewnętrzne źródła</string>
<string name="theme">Motyw</string> <string name="theme">Motyw</string>
<string name="automatic">Systemowy</string> <string name="follow_system">Systemowy</string>
<string name="clear_pages_cache">Wyczyść pamięć podręczną stron</string> <string name="clear_pages_cache">Wyczyść pamięć podręczną stron</string>
<string name="text_file_sizes">B|kB|MB|GB|TB</string> <string name="text_file_sizes">B|kB|MB|GB|TB</string>
<string name="grid_size">Wielkość siatki</string> <string name="grid_size">Wielkość siatki</string>

@ -188,7 +188,7 @@
<string name="various_languages">Vários idiomas</string> <string name="various_languages">Vários idiomas</string>
<string name="text_clear_history_prompt">Limpar todo o histórico de leitura permanentemente\?</string> <string name="text_clear_history_prompt">Limpar todo o histórico de leitura permanentemente\?</string>
<string name="operation_not_supported">Esta operação não é suportada</string> <string name="operation_not_supported">Esta operação não é suportada</string>
<string name="automatic">Automático (segue o sistema)</string> <string name="follow_system">Automático (segue o sistema)</string>
<string name="enabled_d_of_d" tools:ignore="PluralsCandidate">%1$d de %2$d em</string> <string name="enabled_d_of_d" tools:ignore="PluralsCandidate">%1$d de %2$d em</string>
<string name="webtoon">Webtoon</string> <string name="webtoon">Webtoon</string>
<string name="switch_pages">Alternar páginas</string> <string name="switch_pages">Alternar páginas</string>

@ -34,7 +34,7 @@
<string name="sort_order">Ordem de classificação</string> <string name="sort_order">Ordem de classificação</string>
<string name="filter">Filtro</string> <string name="filter">Filtro</string>
<string name="dark">Escuro</string> <string name="dark">Escuro</string>
<string name="automatic">Siga o sistema</string> <string name="follow_system">Siga o sistema</string>
<string name="pages">Páginas</string> <string name="pages">Páginas</string>
<string name="clear">Limpar</string> <string name="clear">Limpar</string>
<string name="text_clear_history_prompt">Limpar todo o histórico de leitura permanentemente\?</string> <string name="text_clear_history_prompt">Limpar todo o histórico de leitura permanentemente\?</string>

@ -45,7 +45,7 @@
<string name="theme">Тема</string> <string name="theme">Тема</string>
<string name="light">Светлая</string> <string name="light">Светлая</string>
<string name="dark">Тёмная</string> <string name="dark">Тёмная</string>
<string name="automatic">Как в системе</string> <string name="follow_system">Как в системе</string>
<string name="pages">Страницы</string> <string name="pages">Страницы</string>
<string name="clear">Очистить</string> <string name="clear">Очистить</string>
<string name="text_clear_history_prompt">Очистить всю историю чтения полностью\?</string> <string name="text_clear_history_prompt">Очистить всю историю чтения полностью\?</string>

@ -85,7 +85,7 @@
<string name="newest">Најновије</string> <string name="newest">Најновије</string>
<string name="light">Светла</string> <string name="light">Светла</string>
<string name="dark">Мрачна</string> <string name="dark">Мрачна</string>
<string name="automatic">Прати систем</string> <string name="follow_system">Прати систем</string>
<string name="filter">Филтер</string> <string name="filter">Филтер</string>
<string name="theme">Тема</string> <string name="theme">Тема</string>
<string name="pages">Странице</string> <string name="pages">Странице</string>

@ -39,7 +39,7 @@
<string name="manga_downloading_">Laddar ned…</string> <string name="manga_downloading_">Laddar ned…</string>
<string name="processing_">Behandlar…</string> <string name="processing_">Behandlar…</string>
<string name="theme">Tema</string> <string name="theme">Tema</string>
<string name="automatic">Systemtema</string> <string name="follow_system">Systemtema</string>
<string name="remove">Ta bort</string> <string name="remove">Ta bort</string>
<string name="text_file_sizes">B|kB|MB|GB|TB</string> <string name="text_file_sizes">B|kB|MB|GB|TB</string>
<string name="add_new_category">Ny kategori</string> <string name="add_new_category">Ny kategori</string>

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools"> <resources xmlns:tools="http://schemas.android.com/tools">
<string name="light">สว่าง</string> <string name="light">สว่าง</string>
<string name="automatic">ตั้งค่าตามเครื่อง</string> <string name="follow_system">ตั้งค่าตามเครื่อง</string>
<string name="text_clear_history_prompt">จะเคลียร์ประวัติการอ่านทั้งหมดแบบถาวรใช่ไหม\?</string> <string name="text_clear_history_prompt">จะเคลียร์ประวัติการอ่านทั้งหมดแบบถาวรใช่ไหม\?</string>
<string name="remove">ลบ</string> <string name="remove">ลบ</string>
<string name="_s_deleted_from_local_storage">\"%s\" ได้ถูกลบจากที่จัดเก็บในเครื่องแล้ว</string> <string name="_s_deleted_from_local_storage">\"%s\" ได้ถูกลบจากที่จัดเก็บในเครื่องแล้ว</string>

@ -37,7 +37,7 @@
<string name="theme">Tema</string> <string name="theme">Tema</string>
<string name="light">ık</string> <string name="light">ık</string>
<string name="dark">Koyu</string> <string name="dark">Koyu</string>
<string name="automatic">Sistemle uyumlu</string> <string name="follow_system">Sistemle uyumlu</string>
<string name="pages">Sayfalar</string> <string name="pages">Sayfalar</string>
<string name="clear">Temizle</string> <string name="clear">Temizle</string>
<string name="text_clear_history_prompt">Tüm okuma geçmişi kalıcı olarak silinsin mi\?</string> <string name="text_clear_history_prompt">Tüm okuma geçmişi kalıcı olarak silinsin mi\?</string>

@ -191,7 +191,7 @@
<string name="manga_downloading_">Завантаження…</string> <string name="manga_downloading_">Завантаження…</string>
<string name="clear">Очистити</string> <string name="clear">Очистити</string>
<string name="downloads">Завантаження</string> <string name="downloads">Завантаження</string>
<string name="automatic">Як в системі</string> <string name="follow_system">Як в системі</string>
<string name="chapter_is_missing">Розділ відсутній</string> <string name="chapter_is_missing">Розділ відсутній</string>
<string name="genres">Жанри</string> <string name="genres">Жанри</string>
<string name="system_default">За умовчанням</string> <string name="system_default">За умовчанням</string>

@ -201,7 +201,7 @@
<string name="sort_order">Sắp xếp theo</string> <string name="sort_order">Sắp xếp theo</string>
<string name="dark">Tối</string> <string name="dark">Tối</string>
<string name="light">Sáng</string> <string name="light">Sáng</string>
<string name="automatic">Theo hệ thống</string> <string name="follow_system">Theo hệ thống</string>
<string name="_s_deleted_from_local_storage">\"%s\" đã bị xoá khỏi bộ nhớ cục bộ</string> <string name="_s_deleted_from_local_storage">\"%s\" đã bị xoá khỏi bộ nhớ cục bộ</string>
<string name="share_image">Chia sẻ hình ảnh</string> <string name="share_image">Chia sẻ hình ảnh</string>
<string name="page_saved">Đã lưu</string> <string name="page_saved">Đã lưu</string>

@ -74,7 +74,7 @@
<string name="theme">主题</string> <string name="theme">主题</string>
<string name="dark">深色</string> <string name="dark">深色</string>
<string name="light">浅色</string> <string name="light">浅色</string>
<string name="automatic">跟随系统</string> <string name="follow_system">跟随系统</string>
<string name="pages">页面</string> <string name="pages">页面</string>
<string name="clear">清除</string> <string name="clear">清除</string>
<string name="text_clear_history_prompt">确定永久清除所有阅读历史吗?</string> <string name="text_clear_history_prompt">确定永久清除所有阅读历史吗?</string>

@ -236,7 +236,7 @@
<string name="by_rating">評分</string> <string name="by_rating">評分</string>
<string name="sort_order">排列順序</string> <string name="sort_order">排列順序</string>
<string name="dark">深色</string> <string name="dark">深色</string>
<string name="automatic">跟隨系統</string> <string name="follow_system">跟隨系統</string>
<string name="pages">頁數</string> <string name="pages">頁數</string>
<string name="_import">匯入</string> <string name="_import">匯入</string>
<string name="no_description">沒有描述</string> <string name="no_description">沒有描述</string>

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<resources> <resources>
<string-array name="themes" translatable="false"> <string-array name="themes" translatable="false">
<item>@string/automatic</item> <item>@string/follow_system</item>
<item>@string/light</item> <item>@string/light</item>
<item>@string/dark</item> <item>@string/dark</item>
</string-array> </string-array>
@ -82,4 +82,9 @@
<item>@string/chapters</item> <item>@string/chapters</item>
<item>@string/pages</item> <item>@string/pages</item>
</string-array> </string-array>
<string-array name="download_formats" translatable="false">
<item>@string/automatic</item>
<item>@string/single_cbz_file</item>
<item>@string/multiple_cbz_files</item>
</string-array>
</resources> </resources>

@ -48,7 +48,7 @@
<string name="light">Light</string> <string name="light">Light</string>
<string name="dark">Dark</string> <string name="dark">Dark</string>
<!-- Should be as abstract as possible --> <!-- Should be as abstract as possible -->
<string name="automatic">Follow system</string> <string name="follow_system">Follow system</string>
<string name="pages">Pages</string> <string name="pages">Pages</string>
<string name="clear">Clear</string> <string name="clear">Clear</string>
<string name="text_clear_history_prompt">Clear all reading history permanently?</string> <string name="text_clear_history_prompt">Clear all reading history permanently?</string>
@ -599,4 +599,8 @@
<string name="default_page_save_dir">Default page save directory</string> <string name="default_page_save_dir">Default page save directory</string>
<string name="remove_from_history">Remove from history</string> <string name="remove_from_history">Remove from history</string>
<string name="location">Location</string> <string name="location">Location</string>
<string name="preferred_download_format">Preferred download format</string>
<string name="automatic">Automatic</string>
<string name="single_cbz_file">Single CBZ file</string>
<string name="multiple_cbz_files">Multiple CBZ files</string>
</resources> </resources>

@ -13,6 +13,12 @@
android:persistent="false" android:persistent="false"
android:title="@string/manga_save_location" /> android:title="@string/manga_save_location" />
<ListPreference
android:entries="@array/download_formats"
android:key="downloads_format"
android:title="@string/preferred_download_format"
app:useSimpleSummaryProvider="true" />
<SwitchPreferenceCompat <SwitchPreferenceCompat
android:defaultValue="false" android:defaultValue="false"
android:key="downloads_wifi" android:key="downloads_wifi"

Loading…
Cancel
Save