diff --git a/app/build.gradle.kts b/app/build.gradle.kts index b7e8d038d6..534d0af3dc 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -35,7 +35,7 @@ android { minSdk = AndroidConfig.minSdk targetSdk = AndroidConfig.targetSdk applicationId = "eu.kanade.tachiyomi" - versionCode = 120 + versionCode = 121 versionName = "1.7.12" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" multiDexEnabled = true diff --git a/app/src/main/java/dev/yokai/domain/ui/settings/ReaderPreferences.kt b/app/src/main/java/dev/yokai/domain/ui/settings/ReaderPreferences.kt index 9134973962..fc80c4a633 100644 --- a/app/src/main/java/dev/yokai/domain/ui/settings/ReaderPreferences.kt +++ b/app/src/main/java/dev/yokai/domain/ui/settings/ReaderPreferences.kt @@ -1,9 +1,24 @@ package dev.yokai.domain.ui.settings +import androidx.annotation.StringRes +import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.core.preference.PreferenceStore +import eu.kanade.tachiyomi.core.preference.getEnum +import eu.kanade.tachiyomi.data.preference.PreferenceKeys class ReaderPreferences(private val preferenceStore: PreferenceStore) { - fun cutoutShort() = preferenceStore.getBoolean("cutout_short", true) - - fun landscapeCutoutBehavior() = preferenceStore.getInt("landscape_cutout_behavior", 0) + fun pagerCutoutBehavior() = preferenceStore.getEnum(PreferenceKeys.pagerCutoutBehavior, CutoutBehaviour.SHOW) + + fun landscapeCutoutBehavior() = preferenceStore.getEnum("landscape_cutout_behavior", LandscapeCutoutBehaviour.DEFAULT) + + enum class CutoutBehaviour(@StringRes val titleResId: Int) { + SHOW(R.string.cutout_show), + HIDE(R.string.cutout_hide), + IGNORE(R.string.cutout_ignore), + } + + enum class LandscapeCutoutBehaviour(@StringRes val titleResId: Int) { + HIDE(R.string.cutout_hide), + DEFAULT(R.string.cutout_landscape), + } } diff --git a/app/src/main/java/eu/kanade/tachiyomi/Migrations.kt b/app/src/main/java/eu/kanade/tachiyomi/Migrations.kt index 4d3d4b733f..7e019630c6 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/Migrations.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/Migrations.kt @@ -3,6 +3,9 @@ package eu.kanade.tachiyomi import androidx.core.content.edit import androidx.preference.PreferenceManager import dev.yokai.domain.base.BasePreferences +import dev.yokai.domain.ui.settings.ReaderPreferences +import dev.yokai.domain.ui.settings.ReaderPreferences.CutoutBehaviour +import dev.yokai.domain.ui.settings.ReaderPreferences.LandscapeCutoutBehaviour import eu.kanade.tachiyomi.data.backup.BackupCreatorJob import eu.kanade.tachiyomi.data.download.DownloadProvider import eu.kanade.tachiyomi.data.library.LibraryUpdateJob @@ -21,6 +24,7 @@ import eu.kanade.tachiyomi.network.PREF_DOH_CLOUDFLARE import eu.kanade.tachiyomi.ui.library.LibraryPresenter import eu.kanade.tachiyomi.ui.library.LibrarySort import eu.kanade.tachiyomi.ui.reader.settings.OrientationType +import eu.kanade.tachiyomi.ui.reader.viewer.pager.PagerConfig import eu.kanade.tachiyomi.ui.recents.RecentsPresenter import eu.kanade.tachiyomi.util.system.launchIO import eu.kanade.tachiyomi.util.system.toast @@ -277,6 +281,33 @@ object Migrations { basePreferences.extensionInstaller().set(BasePreferences.ExtensionInstaller.PACKAGEINSTALLER) } } + if (oldVersion < 121) { + val readerPreferences: ReaderPreferences = Injekt.get() + try { + val oldCutoutBehaviour = prefs.getInt(PreferenceKeys.pagerCutoutBehavior, 0) + readerPreferences.pagerCutoutBehavior().set( + when (oldCutoutBehaviour) { + PagerConfig.CUTOUT_PAD -> CutoutBehaviour.HIDE + PagerConfig.CUTOUT_IGNORE -> CutoutBehaviour.IGNORE + else -> CutoutBehaviour.SHOW + } + ) + } catch (_: Exception) { + readerPreferences.pagerCutoutBehavior().set(CutoutBehaviour.SHOW) + } + + try { + val oldCutoutBehaviour = prefs.getInt("landscape_cutout_behavior", 0) + readerPreferences.landscapeCutoutBehavior().set( + when (oldCutoutBehaviour) { + 0 -> LandscapeCutoutBehaviour.HIDE + else -> LandscapeCutoutBehaviour.DEFAULT + } + ) + } catch (_: Exception) { + readerPreferences.landscapeCutoutBehavior().set(LandscapeCutoutBehaviour.DEFAULT) + } + } return true } diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/backup/BackupRestorer.kt b/app/src/main/java/eu/kanade/tachiyomi/data/backup/BackupRestorer.kt index 073bd35251..628a97896c 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/backup/BackupRestorer.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/backup/BackupRestorer.kt @@ -2,6 +2,8 @@ package eu.kanade.tachiyomi.data.backup import android.content.Context import android.net.Uri +import dev.yokai.domain.ui.settings.ReaderPreferences +import dev.yokai.domain.ui.settings.ReaderPreferences.CutoutBehaviour import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.data.backup.models.BackupCategory import eu.kanade.tachiyomi.data.backup.models.BackupHistory @@ -25,6 +27,8 @@ import eu.kanade.tachiyomi.data.library.CustomMangaManager import eu.kanade.tachiyomi.data.library.LibraryUpdateJob import eu.kanade.tachiyomi.core.preference.AndroidPreferenceStore import eu.kanade.tachiyomi.core.preference.PreferenceStore +import eu.kanade.tachiyomi.core.preference.getEnum +import eu.kanade.tachiyomi.data.preference.PreferenceKeys import eu.kanade.tachiyomi.extension.ExtensionUpdateJob import eu.kanade.tachiyomi.source.model.SChapter import eu.kanade.tachiyomi.source.sourcePreferences @@ -407,6 +411,15 @@ class BackupRestorer(val context: Context, val notifier: BackupNotifier) { return@forEach } // end j2k fork differences + + // <-- yokai + if (key == "cutout_short" && value is BooleanPreferenceValue) { + preferenceStore.getEnum(PreferenceKeys.pagerCutoutBehavior, CutoutBehaviour.SHOW) + .set(if (value.value) CutoutBehaviour.SHOW else CutoutBehaviour.HIDE) + return@forEach + } + // --> yokai + when (value) { is IntPreferenceValue -> { if (prefs[key] is Int?) { diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/preference/PreferencesHelper.kt b/app/src/main/java/eu/kanade/tachiyomi/data/preference/PreferencesHelper.kt index 132c5136f5..dce43c2bc9 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/preference/PreferencesHelper.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/preference/PreferencesHelper.kt @@ -105,9 +105,6 @@ class PreferencesHelper(val context: Context, val preferenceStore: PreferenceSto fun pageTransitions() = preferenceStore.getBoolean(Keys.enableTransitions, true) - // ReaderPrefs - fun pagerCutoutBehavior() = preferenceStore.getInt(Keys.pagerCutoutBehavior, 0) - fun doubleTapAnimSpeed() = preferenceStore.getInt(Keys.doubleTapAnimationSpeed, 500) fun showPageNumber() = preferenceStore.getBoolean(Keys.showPageNumber, true) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderActivity.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderActivity.kt index 6a8ec3d34b..990019ae8b 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderActivity.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderActivity.kt @@ -72,6 +72,7 @@ import com.google.android.material.snackbar.Snackbar import com.google.android.material.transition.platform.MaterialContainerTransform import com.google.android.material.transition.platform.MaterialContainerTransformSharedElementCallback import dev.yokai.domain.ui.settings.ReaderPreferences +import dev.yokai.domain.ui.settings.ReaderPreferences.LandscapeCutoutBehaviour import eu.kanade.tachiyomi.BuildConfig import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.data.database.models.Chapter @@ -951,7 +952,7 @@ class ReaderActivity : BaseActivity() { setNavColor(insets) val systemInsets = insets.ignoredSystemInsets val currentOrientation = resources.configuration.orientation - val isLandscapeFully = currentOrientation == Configuration.ORIENTATION_LANDSCAPE && readerPreferences.landscapeCutoutBehavior().get() == 1 + val isLandscapeFully = currentOrientation == Configuration.ORIENTATION_LANDSCAPE && readerPreferences.landscapeCutoutBehavior().get() == LandscapeCutoutBehaviour.DEFAULT val cutOutInsets = if (isLandscapeFully) insets.displayCutout else null val vis = insets.isVisible(statusBars()) val fullscreen = preferences.fullscreen().get() && !isSplitScreen @@ -1827,18 +1828,14 @@ class ReaderActivity : BaseActivity() { val params = window.attributes if (currentOrientation == Configuration.ORIENTATION_LANDSCAPE) { params.layoutInDisplayCutoutMode = - if (readerPreferences.landscapeCutoutBehavior().get() == 0) { + if (readerPreferences.landscapeCutoutBehavior().get() == LandscapeCutoutBehaviour.HIDE) { WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_NEVER } else { WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES } } else { params.layoutInDisplayCutoutMode = - if (readerPreferences.cutoutShort().get()) { - WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES - } else { - WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_NEVER - } + WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES } } } @@ -1921,11 +1918,6 @@ class ReaderActivity : BaseActivity() { .onEach { setCutoutMode() } .launchIn(scope) - readerPreferences.cutoutShort().changes() - .drop(1) - .onEach { setCutoutMode() } - .launchIn(scope) - preferences.trueColor().changesIn(scope) { setTrueColor(it) } preferences.fullscreen().changesIn(scope) { setFullscreen(it) } diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/settings/ReaderPagedView.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/settings/ReaderPagedView.kt index b3e45b2dec..1b9e1d9d5f 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/settings/ReaderPagedView.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/settings/ReaderPagedView.kt @@ -41,7 +41,7 @@ class ReaderPagedView @JvmOverloads constructor(context: Context, attrs: Attribu pageTransitions.bindToPreference(preferences.pageTransitions()) pagerNav.bindToPreference(preferences.navigationModePager()) pagerInvert.bindToPreference(preferences.pagerNavInverted()) - extendPastCutout.bindToPreference(preferences.pagerCutoutBehavior()) + extendPastCutout.bindToPreference(readerPreferences.pagerCutoutBehavior()) extendPastCutoutLandscape.bindToPreference(readerPreferences.landscapeCutoutBehavior()) { needsActivityRecreate = true } diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/ReaderPageImageView.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/ReaderPageImageView.kt index 52624c011b..02410e703f 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/ReaderPageImageView.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/ReaderPageImageView.kt @@ -25,6 +25,8 @@ import com.davemorrissey.labs.subscaleview.ImageSource import com.davemorrissey.labs.subscaleview.SubsamplingScaleImageView import com.davemorrissey.labs.subscaleview.SubsamplingScaleImageView.SCALE_TYPE_CENTER_INSIDE import com.github.chrisbanes.photoview.PhotoView +import dev.yokai.domain.ui.settings.ReaderPreferences +import dev.yokai.domain.ui.settings.ReaderPreferences.CutoutBehaviour import eu.kanade.tachiyomi.ui.reader.viewer.pager.PagerConfig import eu.kanade.tachiyomi.ui.reader.viewer.webtoon.WebtoonSubsamplingImageView import eu.kanade.tachiyomi.util.system.GLUtil @@ -161,7 +163,7 @@ open class ReaderPageImageView @JvmOverloads constructor( val insetInfo = config.insetInfo ?: return val topInsets = insetInfo.topCutoutInset val bottomInsets = insetInfo.bottomCutoutInset - if (insetInfo.cutoutBehavior == PagerConfig.CUTOUT_START_EXTENDED && + if (insetInfo.cutoutBehavior == CutoutBehaviour.SHOW && topInsets + bottomInsets > 0 && insetInfo.scaleTypeIsFullFit ) { @@ -180,15 +182,14 @@ open class ReaderPageImageView @JvmOverloads constructor( setMinimumScaleType(config.minimumScaleType) setMinimumDpi(1) // Just so that very small image will be fit for initial load setCropBorders(config.cropBorders) - /* if (config.insetInfo != null) { val topInsets = config.insetInfo.topCutoutInset val bottomInsets = config.insetInfo.bottomCutoutInset setExtendPastCutout( - config.insetInfo.cutoutBehavior == PagerConfig.CUTOUT_START_EXTENDED && + config.insetInfo.cutoutBehavior == CutoutBehaviour.SHOW && config.insetInfo.scaleTypeIsFullFit && topInsets + bottomInsets > 0, ) - if ((config.insetInfo.cutoutBehavior != PagerConfig.CUTOUT_IGNORE || !config.insetInfo.scaleTypeIsFullFit) && + if ((config.insetInfo.cutoutBehavior != CutoutBehaviour.IGNORE || !config.insetInfo.scaleTypeIsFullFit) && android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.Q && config.insetInfo.isFullscreen ) { @@ -201,7 +202,6 @@ open class ReaderPageImageView @JvmOverloads constructor( ) } } - */ setOnImageEventListener( object : SubsamplingScaleImageView.DefaultOnImageEventListener() { override fun onReady() { @@ -318,7 +318,7 @@ open class ReaderPageImageView @JvmOverloads constructor( ) data class InsetInfo( - val cutoutBehavior: Int, + val cutoutBehavior: CutoutBehaviour, val topCutoutInset: Float, val bottomCutoutInset: Float, val scaleTypeIsFullFit: Boolean, diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/pager/PagerConfig.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/pager/PagerConfig.kt index b8b41efc61..a93b743397 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/pager/PagerConfig.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/pager/PagerConfig.kt @@ -1,6 +1,8 @@ package eu.kanade.tachiyomi.ui.reader.viewer.pager import com.davemorrissey.labs.subscaleview.SubsamplingScaleImageView +import dev.yokai.domain.ui.settings.ReaderPreferences +import dev.yokai.domain.ui.settings.ReaderPreferences.CutoutBehaviour import eu.kanade.tachiyomi.data.preference.PreferencesHelper import eu.kanade.tachiyomi.ui.reader.settings.PageLayout import eu.kanade.tachiyomi.ui.reader.viewer.ViewerConfig @@ -24,6 +26,7 @@ class PagerConfig( scope: CoroutineScope, private val viewer: PagerViewer, preferences: PreferencesHelper = Injekt.get(), + readerPreferences: ReaderPreferences = Injekt.get(), ) : ViewerConfig(preferences, scope) { @@ -48,7 +51,7 @@ class PagerConfig( var readerTheme = 0 private set - var cutoutBehavior = 0 + var cutoutBehavior: CutoutBehaviour = CutoutBehaviour.SHOW private set var isFullscreen = true @@ -99,7 +102,7 @@ class PagerConfig( } .launchIn(scope) - preferences.pagerCutoutBehavior() + readerPreferences.pagerCutoutBehavior() .register({ cutoutBehavior = it }, { imagePropertyChangedListener?.invoke() }) preferences.zoomStart() diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsReaderController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsReaderController.kt index 9c9046a112..5c21a413ee 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsReaderController.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsReaderController.kt @@ -1,11 +1,10 @@ package eu.kanade.tachiyomi.ui.setting -import android.hardware.display.DisplayManager import android.os.Build -import android.view.Display -import androidx.core.content.getSystemService import androidx.preference.PreferenceScreen import dev.yokai.domain.ui.settings.ReaderPreferences +import dev.yokai.domain.ui.settings.ReaderPreferences.CutoutBehaviour +import dev.yokai.domain.ui.settings.ReaderPreferences.LandscapeCutoutBehaviour import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.data.preference.PreferenceValues import eu.kanade.tachiyomi.data.preference.changesIn @@ -127,21 +126,38 @@ class SettingsReaderController : SettingsController() { titleRes = R.string.show_page_number defaultValue = true } - switchPreference { - bindTo(readerPreferences.cutoutShort()) - titleRes = R.string.pref_cutout_short - isVisible = DeviceUtil.hasCutout(activity) || preferences.fullscreen().get() + listPreference(activity) { + bindTo(readerPreferences.pagerCutoutBehavior()) + titleRes = R.string.cutout_area_behavior + val values = CutoutBehaviour.entries + entriesRes = values.map { it.titleResId }.toTypedArray() + entryValues = values.map { it.name }.toTypedArray().toList() + // Calling this once to show only on cutout + isVisible = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) { + activityBinding?.root?.rootWindowInsets?.displayCutout?.safeInsetTop != null || + activityBinding?.root?.rootWindowInsets?.displayCutout?.safeInsetBottom != null + } else { + false + } && preferences.fullscreen().get() + // Calling this a second time in case activity is recreated while on this page + // Keep the first so it shouldn't animate hiding the preference for phones without + // cutouts + activityBinding?.root?.post { + isVisible = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) { + activityBinding?.root?.rootWindowInsets?.displayCutout?.safeInsetTop != null || + activityBinding?.root?.rootWindowInsets?.displayCutout?.safeInsetBottom != null + } else { + false + } && preferences.fullscreen().get() + } } - intListPreference(activity) { + listPreference(activity) { bindTo(readerPreferences.landscapeCutoutBehavior()) title = "${context.getString(R.string.cutout_area_behavior)} (${context.getString(R.string.landscape)})" - entriesRes = arrayOf( - R.string.pad_cutout_areas, - R.string.ignore_cutout_areas, - ) - entryRange = 0..1 - defaultValue = 0 - isVisible = DeviceUtil.hasCutout(activity) + val values = LandscapeCutoutBehaviour.entries + entriesRes = values.map { it.titleResId }.toTypedArray() + entryValues = values.map { it.name }.toTypedArray().toList() + isVisible = DeviceUtil.hasCutout(activity) && preferences.fullscreen().get() } } @@ -214,36 +230,6 @@ class SettingsReaderController : SettingsController() { defaultValue = 1 } - intListPreference(activity) { - key = Keys.pagerCutoutBehavior - titleRes = R.string.cutout_area_behavior - entriesRes = arrayOf( - R.string.pad_cutout_areas, - R.string.start_past_cutout, - R.string.ignore_cutout_areas, - ) - summaryRes = R.string.cutout_behavior_only_applies - entryRange = 0..2 - defaultValue = 0 - // Calling this once to show only on cutout - isVisible = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) { - activityBinding?.root?.rootWindowInsets?.displayCutout?.safeInsetTop != null || - activityBinding?.root?.rootWindowInsets?.displayCutout?.safeInsetBottom != null - } else { - false - } - // Calling this a second time in case activity is recreated while on this page - // Keep the first so it shouldn't animate hiding the preference for phones without - // cutouts - activityBinding?.root?.post { - isVisible = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) { - activityBinding?.root?.rootWindowInsets?.displayCutout?.safeInsetTop != null || - activityBinding?.root?.rootWindowInsets?.displayCutout?.safeInsetBottom != null - } else { - false - } - } - } switchPreference { bindTo(preferences.landscapeZoom()) titleRes = R.string.zoom_double_page_spreads diff --git a/app/src/main/java/eu/kanade/tachiyomi/widget/MaterialSpinnerView.kt b/app/src/main/java/eu/kanade/tachiyomi/widget/MaterialSpinnerView.kt index 1096af86b6..ada0f1cd85 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/widget/MaterialSpinnerView.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/widget/MaterialSpinnerView.kt @@ -151,16 +151,18 @@ class MaterialSpinnerView constructor(context: Context, attrs: AttributeSet?) : } } - inline fun > bindToPreference(pref: Preference) { + inline fun > bindToPreference(pref: Preference, crossinline block: (T) -> Unit) { val enumConstants = T::class.java.enumConstants enumConstants?.indexOf(pref.get())?.let { setSelection(it) } - val popup = makeSettingsPopup(pref) + val popup = makeSettingsPopup(pref, block) setOnTouchListener(popup.dragToOpenListener) setOnClickListener { popup.show() } } + inline fun > bindToPreference(pref: Preference) = bindToPreference(pref) { } + fun bindToIntPreference( pref: Preference, @ArrayRes intValuesResource: Int, @@ -177,7 +179,7 @@ class MaterialSpinnerView constructor(context: Context, attrs: AttributeSet?) : } } - inline fun > makeSettingsPopup(preference: Preference): PopupMenu { + inline fun > makeSettingsPopup(preference: Preference, crossinline block: (T) -> Unit): PopupMenu { val popup = popup() // Set a listener so we are notified if a menu item is clicked @@ -190,7 +192,10 @@ class MaterialSpinnerView constructor(context: Context, attrs: AttributeSet?) : popup.setOnMenuItemClickListener { menuItem -> val enumConstants = T::class.java.enumConstants val pos = menuClicked(menuItem) - enumConstants?.get(pos)?.let { preference.set(it) } + enumConstants?.get(pos)?.let { + preference.set(it) + block.invoke(it) + } true } return popup diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml index 0c9e09184a..cebea6cbb9 100644 --- a/app/src/main/res/values-ar/strings.xml +++ b/app/src/main/res/values-ar/strings.xml @@ -858,7 +858,7 @@ سِم أأحدِّد كلَّ الفصول غير مقروءة؟ لا ينطبق سلوك الحزِّ إلا في الوضع الطولي وفي أنواع معينة من التحجيم - تجاهَل الحزوز + تجاهَل الحزوز ابدأ بعد الحزِّ أزح الحزوز سلوك الحَزِّ diff --git a/app/src/main/res/values-bg/strings.xml b/app/src/main/res/values-bg/strings.xml index e334aeafd5..ba6e6454b4 100644 --- a/app/src/main/res/values-bg/strings.xml +++ b/app/src/main/res/values-bg/strings.xml @@ -643,7 +643,7 @@ Поведение на зоната на изрязване Области на изрязване на подложката Започнете след изрязване - Игнориране на областите на изрязване + Игнориране на областите на изрязване Поведението на зоната на изрязване се прилага само в портретен режим с определени типове мащаби Оформление на страница Автоматично (в зависимост от ориентацията) diff --git a/app/src/main/res/values-bn/strings.xml b/app/src/main/res/values-bn/strings.xml index 21736fb175..6942813684 100644 --- a/app/src/main/res/values-bn/strings.xml +++ b/app/src/main/res/values-bn/strings.xml @@ -795,7 +795,7 @@ কাটআউট এলাকার আচরণ প্যাড কাটআউটএর এলাকা অতীত কাটআউট শুরু কর - কাটআউট এলাকা উপেক্ষা কর + কাটআউট এলাকা উপেক্ষা কর কাটআউট এলাকার আচরণ শুধুমাত্র নির্দিষ্ট স্কেলের প্রকারের সাথে প্রতিকৃতি মোডে প্রযোজ্য স্বয়ংক্রিয় পৃষ্ঠা বিন্যাস ব্যবহার করার সময়, আপনি এখনও এই সেটিং ওভাররাইড না করে পড়ার সময় লেআউটগুলির মধ্যে স্যুইচ করতে পারেন দীর্ঘ প্রেসে দেখও diff --git a/app/src/main/res/values-ca/strings.xml b/app/src/main/res/values-ca/strings.xml index 1ee3ba196d..b2539ce9c6 100644 --- a/app/src/main/res/values-ca/strings.xml +++ b/app/src/main/res/values-ca/strings.xml @@ -743,7 +743,7 @@ Gris Canvia a pàgines dobles Canvia a pàgina única - Ignora les àrees retallades + Ignora les àrees retallades El comportament de l’àrea retallada només s’aplica en mode vertical amb certs tipus d’escalat Quan utilitzeu la distribució de pàgines automàtiques, podeu canviar igualment entre distribucions mentre llegiu sense canviar aquesta configuració Continua llegint el capítol %1$s diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml index 301921e4e9..e7a3f5c064 100644 --- a/app/src/main/res/values-cs/strings.xml +++ b/app/src/main/res/values-cs/strings.xml @@ -551,7 +551,7 @@ Při ukládání přebalu došlo k chybě Přebal uložen Rozložení stránek - Ignorovat vyřežané oblasti + Ignorovat vyřežané oblasti Chování oblasti výřezu Na Obou Osách Vertikálně diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index c9fe06796a..6d2ce0c44a 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -696,7 +696,7 @@ Zuletzt benutzt (Bibliothek oder Neueste) Benutzerdefinierte Infos des Mangas Alle Kapitel als ungelesen markieren\? - Ausschnittbereiche ignorieren + Ausschnittbereiche ignorieren Nach dem Ausschnitt starten Ausschnittbereich füllen Verhalten des Ausschnittbereichs diff --git a/app/src/main/res/values-el/strings.xml b/app/src/main/res/values-el/strings.xml index 756877b0d5..b7ab824bb3 100644 --- a/app/src/main/res/values-el/strings.xml +++ b/app/src/main/res/values-el/strings.xml @@ -671,7 +671,7 @@ Αυτόματη (βάση προσανατολισμού) Διάταξη σελίδας Η συμπεριφορά της περιοχής αποκοπής ισχύει μόνο σε λειτουργία πορτραίτου με ορισμένους τύπους κλίμακας - Παράβλεψη περιοχών αποκοπής + Παράβλεψη περιοχών αποκοπής Έναρξη μετά την αποκοπή Γέμισμα περιοχής αποκοπής Συμπεριφορά περιοχής αποκοπής diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index 5af2e958a7..add0891ba3 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -657,7 +657,7 @@ Utilice la primera fuente con alternativa Información sobre las series personalizadas ¿Marcar todos los capítulos como no leídos\? - Ignorar áreas recortadas + Ignorar áreas recortadas Empezar más allá del recorte Comportamiento del área de corte Ambos Ejes diff --git a/app/src/main/res/values-eu/strings.xml b/app/src/main/res/values-eu/strings.xml index 3d6173b08c..453caf19e4 100644 --- a/app/src/main/res/values-eu/strings.xml +++ b/app/src/main/res/values-eu/strings.xml @@ -509,7 +509,7 @@ Automatikoa (orientazioan oinarrituta) Honi buruz %1$s Hasi mozketaren ostean - Ez egin kasurik mozturiko eremuei + Ez egin kasurik mozturiko eremuei Mantendu biak %1$s-n eta ordeztu lokalean soilik Mangaren informazio pertsonalizatua Irakurketa-amaitze data diff --git a/app/src/main/res/values-fi/strings.xml b/app/src/main/res/values-fi/strings.xml index 2759d0fe0d..7bea55e04e 100644 --- a/app/src/main/res/values-fi/strings.xml +++ b/app/src/main/res/values-fi/strings.xml @@ -610,7 +610,7 @@ Tyhjennä välimuistiin tallennetut kannet, joita ei ole kirjastossa Poista kirjastossasi olevat vanhat ja käyttämättömät välimuistiin tallennetut mangakannet, jotka on päivitetty. \nTällä hetkellä käytössä: %1$s - Jätä leikkausalueet huomiotta + Jätä leikkausalueet huomiotta Aloita leikkauksen jälkeen Täytä leikkausalueet Poista välimuistissa olevat kannet diff --git a/app/src/main/res/values-fil/strings.xml b/app/src/main/res/values-fil/strings.xml index c412cc8bd5..49b2eab848 100644 --- a/app/src/main/res/values-fil/strings.xml +++ b/app/src/main/res/values-fil/strings.xml @@ -817,7 +817,7 @@ I-update lang ang manga kung walang kabanatang di pa nabasa (lahat nabasa) Pareho Gagawin sa cutout area - Balewalain ang mga cutout area + Balewalain ang mga cutout area Lahat ng walang pananda Tanggalin ang mga tag I-reset ang pabalat diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 44c6af5470..6dfbc8eafb 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -689,7 +689,7 @@ Rapports de plantage sauvegardés Mise à jour de v%1$s Revenir à l\'écran de démarrage en appuyant sur retour - Ignorer les zones de découpe + Ignorer les zones de découpe Précédent Suivant menu diff --git a/app/src/main/res/values-hr/strings.xml b/app/src/main/res/values-hr/strings.xml index b7aece4aff..d307c5912b 100644 --- a/app/src/main/res/values-hr/strings.xml +++ b/app/src/main/res/values-hr/strings.xml @@ -724,7 +724,7 @@ Dodaj %1$s u … Premjesti %1$s u … Za grupno migriranje koristi zadnje spremljene postavke i izvore prije migracije - Zanemari područja izreska + Zanemari područja izreska Počni izvan izreska Područjima izreska dodaj odmak Ponašanje područja izreska diff --git a/app/src/main/res/values-in/strings.xml b/app/src/main/res/values-in/strings.xml index 3686df3f2f..d4ef5de1e9 100644 --- a/app/src/main/res/values-in/strings.xml +++ b/app/src/main/res/values-in/strings.xml @@ -638,7 +638,7 @@ Ketika menggunakan tata letak halaman secara otomatis, Anda masih dapat menukar tata letak ketika sedang membaca tanpa menimpa pengaturan ini Tata letak halaman Tingkah area potong hanya diterapkan pada mode tegak dengan beberapa jenis skala - Abaikan area potong + Abaikan area potong Mulai potong terakhir Area potong pad Tingkah area potong diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 3877a551d5..56eeb5b576 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -825,7 +825,7 @@ Nessun risultato trovato Fonte non supportata Informazioni serie personalizzate - Ignora aree ritagliate + Ignora aree ritagliate Riempi aree ritagliate %d aggiornamento in attesa diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index dd4a247b2e..446a3d22e3 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -691,7 +691,7 @@ \nダウンロードを削除しますか? 長押しで表示 - カットアウト領域を無視 + カットアウト領域を無視 自動削除 %1$sを検索 登録された日付 diff --git a/app/src/main/res/values-ko/strings.xml b/app/src/main/res/values-ko/strings.xml index ae30ef94e3..30a77582d5 100644 --- a/app/src/main/res/values-ko/strings.xml +++ b/app/src/main/res/values-ko/strings.xml @@ -717,7 +717,7 @@ 마이그레이션하지 않음 세부내용 페이지 %s 끄기 - 컷아웃 영역 무시 + 컷아웃 영역 무시 페이지 레이아웃 이 선택을 기억하십시오 마이그레이션을 중지하시겠습니까\? diff --git a/app/src/main/res/values-ms/strings.xml b/app/src/main/res/values-ms/strings.xml index 004b2c7360..7c73ba2a1e 100644 --- a/app/src/main/res/values-ms/strings.xml +++ b/app/src/main/res/values-ms/strings.xml @@ -632,7 +632,7 @@ Akhir digunakan (Pustaka atau Terkini) Maklumat manga tersuai Tanda semua bab sebagai belum dibaca\? - Abai kawasan bertakuk + Abai kawasan bertakuk Mula selepas kawasan bertakuk Berpad kawasan bertakuk Kelakuan kawasan bertakuk diff --git a/app/src/main/res/values-nb-rNO/strings.xml b/app/src/main/res/values-nb-rNO/strings.xml index 49802dbed2..19525cc915 100644 --- a/app/src/main/res/values-nb-rNO/strings.xml +++ b/app/src/main/res/values-nb-rNO/strings.xml @@ -820,7 +820,7 @@ Ved bruk av automatisk sideoppsett kan du fremdeles bytte mellom oppsett mens du leser, uten å overstyre denne innstillingen Sideoppsett Oppførsel for utklippsområde har kun innvirkning i stående sideretning med noen skaleringstyper - Ignorer utklipte områder + Ignorer utklipte områder Start etter utklipp Oppførsel for utklippsområde Hvis avskrudd vil overgangssiden hoppes over hvis neste kapittel er innlastet diff --git a/app/src/main/res/values-ne/strings.xml b/app/src/main/res/values-ne/strings.xml index c18fe8fb74..332657d3e0 100644 --- a/app/src/main/res/values-ne/strings.xml +++ b/app/src/main/res/values-ne/strings.xml @@ -867,7 +867,7 @@ स्वचालित (अभिमुखीकरणमा आधारित) एकल पृष्ठमा स्विच गर्नुहोस् स्मार्ट (पृष्ठमा आधारित) - कटआउट क्षेत्रहरू बेवास्ता गर्नुहोस् + कटआउट क्षेत्रहरू बेवास्ता गर्नुहोस् कटआउट क्षेत्र व्यवहार निश्चित स्केल प्रकारहरूसँग पोर्ट्रेट मोडमा मात्र लागू हुन्छ अध्यायहरू खोज्नुहोस् सबै अध्यायहरू नपढिएको रूपमा चिन्ह लगाउने हो\? diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index 7982f2f4d7..45df81c7ad 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -652,7 +652,7 @@ Laatst gebruikt (Bibliotheek of Nieuwste) Aangepaste manga-informatie Alle hoofstukken als ongelezen markeren\? - Uitgeknipte gebieden negeren + Uitgeknipte gebieden negeren Beginnen na het uitgeknipte gebied Uitgesneden gebied opvullen Gedrag van het uitgesneden gebied diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index 06de5f6ca8..d4b0860546 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -730,7 +730,7 @@ Ostatnio użyte (Biblioteka lub Ostatnie) Własna informacja o mandze Oznaczyć wszystkie rozdziały jako nieprzeczytane\? - Ignoruj obszary wycięcia + Ignoruj obszary wycięcia Zacznij za wycięciem Wypełnij obszar wycięcia Zachowanie obszaru wycięcia diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index c7433a1b9d..c361d73aaa 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -770,7 +770,7 @@ Ao usar o layout de página automático, você ainda pode mudar entre os layouts enquanto lê sem sobrepôr esta configuração Layout de página O comportamento da área de corte da tela aplica apenas no modo paisagem com certos tipos de escala - Ignorar as áreas de corte da tela + Ignorar as áreas de corte da tela Iniciar após o corte da tela Preencher as áreas de corte da tela diff --git a/app/src/main/res/values-pt/strings.xml b/app/src/main/res/values-pt/strings.xml index 70a4e9019e..0c756c9e8c 100644 --- a/app/src/main/res/values-pt/strings.xml +++ b/app/src/main/res/values-pt/strings.xml @@ -738,7 +738,7 @@ Ao usar o layout de página automático, ainda pode mudar entre os layouts enquanto lê sem sobrepôr esta configuração Layout de página O comportamento da área de corte do ecrã aplica apenas no modo paisagem com certos tipos de escala - Ignorar as áreas de corte do ecrã + Ignorar as áreas de corte do ecrã Iniciar após o corte do ecrã Preencher as áreas de corte do ecrã Comportamento da área de corte do ecrã diff --git a/app/src/main/res/values-ro/strings.xml b/app/src/main/res/values-ro/strings.xml index d91e43f148..9b265823b9 100644 --- a/app/src/main/res/values-ro/strings.xml +++ b/app/src/main/res/values-ro/strings.xml @@ -485,7 +485,7 @@ În timp ce utilizați aspectul automat al paginii, puteți comuta între diferitele aspecte în timp ce citiți fără a suprascrie această setare Aspect pagină Comportamentul zonei de decupaj se aplică numai în modul portret cu anumite tipuri de scală - Ignoră zonele de decupaj + Ignoră zonele de decupaj Începeți după decupaj Comportamentul zonei de decupare Ambele axe diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 00e059ee52..82fa8e577d 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -721,7 +721,7 @@ Показывать значки и счётчик непрочитанных глав Показывать значки непрочитанных глав Скрыть значки непрочитанных глав - Игнорировать области выреза + Игнорировать области выреза Поведение области выреза Блокнотная область выреза Начать с прошлого выреза diff --git a/app/src/main/res/values-sc/strings.xml b/app/src/main/res/values-sc/strings.xml index 75daeaba25..86c3a01301 100644 --- a/app/src/main/res/values-sc/strings.xml +++ b/app/src/main/res/values-sc/strings.xml @@ -666,7 +666,7 @@ Cua automaticamente su butone de navigatzione Informatziones personalizadas de su manga - Ignora sas àreas segadas + Ignora sas àreas segadas Cumportamentu de s\'àrea de segadura Filtra sas limbas Seletzione diff --git a/app/src/main/res/values-sr/strings.xml b/app/src/main/res/values-sr/strings.xml index 42ca5ed0c4..a9fbf5f3f7 100644 --- a/app/src/main/res/values-sr/strings.xml +++ b/app/src/main/res/values-sr/strings.xml @@ -677,7 +677,7 @@ Sortiraj ignorisanjem članova Ograničenja: %1$s Pametno (na osnovu stranice) - Zanemarite područja izreza + Zanemarite područja izreza Raspored na stranici %1$d strana diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml index ea3624a382..dc0169a1f0 100644 --- a/app/src/main/res/values-sv/strings.xml +++ b/app/src/main/res/values-sv/strings.xml @@ -577,7 +577,7 @@ När du använder automatisk sidlayout kan du ändå växla mellan layouter medan du läser utan att åsidosätta denna inställning Sidlayout Beteende för skärningsområde gäller endast i stående läge med vissa skaltyper - Ignorera utskärningsområden + Ignorera utskärningsområden Börja efter utskärningen Pad utskärning områden Beteende för utskärningsområdet diff --git a/app/src/main/res/values-th/strings.xml b/app/src/main/res/values-th/strings.xml index ce572c684c..41e1fc94bf 100644 --- a/app/src/main/res/values-th/strings.xml +++ b/app/src/main/res/values-th/strings.xml @@ -847,7 +847,7 @@ แท็ก จำนวนหน้าที่จะโหลดล่วงหน้าเมื่ออ่าน ค่าที่สูงขึ้นจะส่งผลให้ประสบการณ์การอ่านราบรื่นขึ้น แต่จะต้องใช้พื้นที่แคชและเครือข่ายที่มากขึ้น อัตโนมัติ (ตามธีม) - ไม่สนใจพื้นที่ที่ตัดออก + ไม่สนใจพื้นที่ที่ตัดออก ลักษณะการทำงานของพื้นที่ที่ตัดออกจะใช้ได้เฉพาะในโหมดแนวตั้งตามขนาดที่กำหนด ค้นหาด้วยตนเอง รวมพารามิเตอร์การค้นหาเพิ่มเติมเมื่อค้นหา diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index ce617d44d6..63d08d5aa8 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -538,7 +538,7 @@ %1$d sayfa %1$d sayfa - Kesme alanlarını yoksay + Kesme alanlarını yoksay Tek Sayfa Sayfa düzeni Kesme alanlarını dolgula diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml index 2b57b8e092..2d244dca6b 100644 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -842,7 +842,7 @@ Поведінка вирізу Заповніть площу вирізу Почати після вирізання - Ігнорувати виріз + Ігнорувати виріз Поведінка вирізу вживається лише в портретному режимі з визначеними типами масштабів Автоматичне (на основі орієнтації) Користувальницька інформація про манґу diff --git a/app/src/main/res/values-vi/strings.xml b/app/src/main/res/values-vi/strings.xml index ef8469de12..71aa64e895 100644 --- a/app/src/main/res/values-vi/strings.xml +++ b/app/src/main/res/values-vi/strings.xml @@ -625,7 +625,7 @@ Khi sử dụng dạng trang tự động, bạn có thể chuyển qua từng loại dạng trang trong khi đọc mà không cần ghi đè cài đặt này Dạng trang Hành vị cắt khu vực chỉ được áp dụng trong chế độ dọc với một số kiểu tỉ lệ - Bỏ qua khu vực bị cắt + Bỏ qua khu vực bị cắt Bắt đầu sau phần bị cắt Chèn khoảng trống vào khu vực bị cắt Hành vi khi cắt khu vực diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index b2b3e1e858..ffb6267b40 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -648,7 +648,7 @@ 将错误记录保存到文件中,以便与开发人员共享 崩溃日志已保存 已更新到 v%1$s - 忽略刘海屏区域 + 忽略刘海屏区域 平板刘海屏区域 刘海屏行为 标记所有章节为未读? diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index 5a8df9ac90..4ddd648fc1 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -896,7 +896,7 @@ 移除裁剪 縱向 兩個軸 - 忽略切割區域 + 忽略切割區域 切割區域行為僅適用於特定縮放類型的直向模式 %1$d 頁 diff --git a/app/src/main/res/values/arrays.xml b/app/src/main/res/values/arrays.xml index bc880432f0..37f2aa3ce1 100644 --- a/app/src/main/res/values/arrays.xml +++ b/app/src/main/res/values/arrays.xml @@ -135,14 +135,14 @@ - @string/pad_cutout_areas - @string/start_past_cutout - @string/ignore_cutout_areas + @string/cutout_show + @string/cutout_hide + @string/cutout_ignore - @string/pad_cutout_areas - @string/ignore_cutout_areas + @string/cutout_hide + @string/cutout_landscape diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 16af96c8b4..7f938b73f5 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -500,9 +500,12 @@ Cutout area behavior Pad cutout areas Start past cutout - Ignore cutout areas Cutout area behavior only applies in portrait mode with certain scale types Show content in cutout area + Same as portrait + Show content in cutout area + Hide content in cutout area + Ignore cutout areas Page layout While using automatic page layout, you can still switch between layouts while reading without overriding this setting Automatic (based on orientation)