Show pages numbers in reader

This commit is contained in:
Koitharu
2022-01-06 09:58:20 +02:00
parent 9a65e40be1
commit 99186bf269
7 changed files with 49 additions and 16 deletions

View File

@@ -109,6 +109,8 @@ class AppSettings private constructor(private val prefs: SharedPreferences) :
val isSourcesSelected: Boolean
get() = KEY_SOURCES_HIDDEN in prefs
val isPagesNumbersEnabled by BoolPreferenceDelegate(KEY_PAGES_NUMBERS, false)
fun getStorageDir(context: Context): File? {
val value = prefs.getString(KEY_LOCAL_STORAGE, null)?.let {
File(it)
@@ -195,6 +197,7 @@ class AppSettings private constructor(private val prefs: SharedPreferences) :
const val KEY_HISTORY_GROUPING = "history_grouping"
const val KEY_REVERSE_CHAPTERS = "reverse_chapters"
const val KEY_HISTORY_EXCLUDE_NSFW = "history_exclude_nsfw"
const val KEY_PAGES_NUMBERS = "pages_numbers"
// About
const val KEY_APP_UPDATE = "app_update"

View File

@@ -1,6 +1,8 @@
package org.koitharu.kotatsu.reader.ui.pager.reversed
import android.graphics.PointF
import android.view.Gravity
import android.widget.FrameLayout
import com.davemorrissey.labs.subscaleview.SubsamplingScaleImageView
import org.koitharu.kotatsu.core.exceptions.resolve.ExceptionResolver
import org.koitharu.kotatsu.core.model.ZoomMode
@@ -16,6 +18,11 @@ class ReversedPageHolder(
exceptionResolver: ExceptionResolver
) : PageHolder(binding, loader, settings, exceptionResolver) {
init {
(binding.textViewNumber.layoutParams as FrameLayout.LayoutParams)
.gravity = Gravity.START or Gravity.BOTTOM
}
override fun onImageShowing(zoom: ZoomMode) {
with(binding.ssiv) {
maxScale = 2f * maxOf(

View File

@@ -20,17 +20,20 @@ import org.koitharu.kotatsu.utils.ext.getDisplayMessage
open class PageHolder(
binding: ItemPageBinding,
loader: PageLoader,
settings: AppSettings, exceptionResolver: ExceptionResolver
settings: AppSettings,
exceptionResolver: ExceptionResolver,
) : BasePageHolder<ItemPageBinding>(binding, loader, settings, exceptionResolver),
View.OnClickListener {
init {
binding.ssiv.setOnImageEventListener(delegate)
binding.buttonRetry.setOnClickListener(this)
binding.textViewNumber.isVisible = settings.isPagesNumbersEnabled
}
override fun onBind(data: ReaderPage) {
delegate.onBind(data.toMangaPage())
binding.textViewNumber.text = data.index.toString()
}
override fun onRecycled() {

View File

@@ -19,6 +19,17 @@
android:layout_height="wrap_content"
android:layout_gravity="center" />
<TextView
android:id="@+id/textView_number"
android:layout_width="wrap_content"
android:layout_margin="8dp"
android:singleLine="true"
android:textColor="?android:textColorTertiary"
android:textAppearance="@style/TextAppearance.MaterialComponents.Body2"
android:layout_height="wrap_content"
android:layout_gravity="end|bottom"
tools:text="5" />
<LinearLayout
android:id="@+id/layout_error"
android:layout_width="wrap_content"

View File

@@ -245,4 +245,5 @@
<string name="system_default">По умолчанию</string>
<string name="exclude_nsfw_from_history">Исключить NSFW мангу из истории</string>
<string name="error_empty_name">Имя не может быть пустым</string>
<string name="show_pages_numbers">Показывать номера страниц</string>
</resources>

View File

@@ -245,5 +245,6 @@
<string name="date_format">Date format</string>
<string name="system_default">Default</string>
<string name="exclude_nsfw_from_history">Exclude NSFW manga from history</string>
<string name="error_empty_name">Name sould not be empty</string>
<string name="error_empty_name">Name should not be empty</string>
<string name="show_pages_numbers">Show pages numbers</string>
</resources>

View File

@@ -3,18 +3,11 @@
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<MultiSelectListPreference
android:defaultValue="@array/values_reader_switchers_default"
android:entries="@array/reader_switchers"
android:entryValues="@array/values_reader_switchers"
android:key="reader_switchers"
android:title="@string/switch_pages"
app:iconSpaceReserved="false" />
<SwitchPreferenceCompat
android:defaultValue="false"
android:key="reader_animation"
android:title="@string/pages_animation"
android:key="reader_prefer_rtl"
android:summary="@string/prefer_rtl_reader_summary"
android:title="@string/prefer_rtl_reader"
app:iconSpaceReserved="false" />
<ListPreference
@@ -24,11 +17,25 @@
app:iconSpaceReserved="false"
app:useSimpleSummaryProvider="true" />
<SwitchPreference
<MultiSelectListPreference
android:defaultValue="@array/values_reader_switchers_default"
android:entries="@array/reader_switchers"
android:entryValues="@array/values_reader_switchers"
android:key="reader_switchers"
android:title="@string/switch_pages"
app:allowDividerAbove="true"
app:iconSpaceReserved="false" />
<SwitchPreferenceCompat
android:defaultValue="false"
android:key="reader_prefer_rtl"
android:summary="@string/prefer_rtl_reader_summary"
android:title="@string/prefer_rtl_reader"
android:key="reader_animation"
android:title="@string/pages_animation"
app:iconSpaceReserved="false" />
<SwitchPreferenceCompat
android:defaultValue="false"
android:key="pages_numbers"
android:title="@string/show_pages_numbers"
app:iconSpaceReserved="false" />
</PreferenceScreen>