Add option to reader sheet
This commit is contained in:
parent
c8a6a2653f
commit
2eaf083eee
4 changed files with 77 additions and 4 deletions
|
@ -28,6 +28,7 @@ import kotlinx.android.synthetic.main.reader_settings_sheet.pager_prefs_group
|
||||||
import kotlinx.android.synthetic.main.reader_settings_sheet.rotation_mode
|
import kotlinx.android.synthetic.main.reader_settings_sheet.rotation_mode
|
||||||
import kotlinx.android.synthetic.main.reader_settings_sheet.scale_type
|
import kotlinx.android.synthetic.main.reader_settings_sheet.scale_type
|
||||||
import kotlinx.android.synthetic.main.reader_settings_sheet.show_page_number
|
import kotlinx.android.synthetic.main.reader_settings_sheet.show_page_number
|
||||||
|
import kotlinx.android.synthetic.main.reader_settings_sheet.tapping_inverted
|
||||||
import kotlinx.android.synthetic.main.reader_settings_sheet.true_color
|
import kotlinx.android.synthetic.main.reader_settings_sheet.true_color
|
||||||
import kotlinx.android.synthetic.main.reader_settings_sheet.viewer
|
import kotlinx.android.synthetic.main.reader_settings_sheet.viewer
|
||||||
import kotlinx.android.synthetic.main.reader_settings_sheet.webtoon_prefs_group
|
import kotlinx.android.synthetic.main.reader_settings_sheet.webtoon_prefs_group
|
||||||
|
@ -57,6 +58,7 @@ class ReaderSettingsSheet(private val activity: ReaderActivity) : BottomSheetDia
|
||||||
super.onCreate(savedInstanceState)
|
super.onCreate(savedInstanceState)
|
||||||
|
|
||||||
initGeneralPreferences()
|
initGeneralPreferences()
|
||||||
|
initNavigationPreferences()
|
||||||
|
|
||||||
when (activity.viewer) {
|
when (activity.viewer) {
|
||||||
is PagerViewer -> initPagerPreferences()
|
is PagerViewer -> initPagerPreferences()
|
||||||
|
@ -119,6 +121,13 @@ class ReaderSettingsSheet(private val activity: ReaderActivity) : BottomSheetDia
|
||||||
webtoon_side_padding.bindToIntPreference(preferences.webtoonSidePadding(), R.array.webtoon_side_padding_values)
|
webtoon_side_padding.bindToIntPreference(preferences.webtoonSidePadding(), R.array.webtoon_side_padding_values)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Init the preferences for navigation.
|
||||||
|
*/
|
||||||
|
private fun initNavigationPreferences() {
|
||||||
|
tapping_inverted.bindToPreference(preferences.readWithTappingInverted())
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Binds a checkbox or switch view with a boolean preference.
|
* Binds a checkbox or switch view with a boolean preference.
|
||||||
*/
|
*/
|
||||||
|
@ -137,6 +146,19 @@ class ReaderSettingsSheet(private val activity: ReaderActivity) : BottomSheetDia
|
||||||
setSelection(pref.get() - offset, false)
|
setSelection(pref.get() - offset, false)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Binds a spinner to an enum preference.
|
||||||
|
*/
|
||||||
|
private inline fun <reified T : Enum<T>> Spinner.bindToPreference(pref: Preference<T>) {
|
||||||
|
val enumConstants = T::class.java.enumConstants
|
||||||
|
|
||||||
|
onItemSelectedListener = IgnoreFirstSpinnerListener { position ->
|
||||||
|
enumConstants?.get(position)?.let { pref.set(it) }
|
||||||
|
}
|
||||||
|
|
||||||
|
enumConstants?.indexOf(pref.get())?.let { setSelection(it, false) }
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Binds a spinner to an int preference. The position of the spinner item must
|
* Binds a spinner to an int preference. The position of the spinner item must
|
||||||
* correlate with the [intValues] resource item (in arrays.xml), which is a <string-array>
|
* correlate with the [intValues] resource item (in arrays.xml), which is a <string-array>
|
||||||
|
|
|
@ -15,10 +15,10 @@ import eu.kanade.tachiyomi.ui.reader.model.ViewerChapters
|
||||||
import eu.kanade.tachiyomi.ui.reader.viewer.BaseViewer
|
import eu.kanade.tachiyomi.ui.reader.viewer.BaseViewer
|
||||||
import eu.kanade.tachiyomi.util.view.gone
|
import eu.kanade.tachiyomi.util.view.gone
|
||||||
import eu.kanade.tachiyomi.util.view.visible
|
import eu.kanade.tachiyomi.util.view.visible
|
||||||
import rx.subscriptions.CompositeSubscription
|
|
||||||
import timber.log.Timber
|
|
||||||
import kotlin.math.max
|
import kotlin.math.max
|
||||||
import kotlin.math.min
|
import kotlin.math.min
|
||||||
|
import rx.subscriptions.CompositeSubscription
|
||||||
|
import timber.log.Timber
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Implementation of a [BaseViewer] to display pages with a [RecyclerView].
|
* Implementation of a [BaseViewer] to display pages with a [RecyclerView].
|
||||||
|
|
|
@ -188,7 +188,7 @@
|
||||||
android:textColor="?attr/colorAccent"
|
android:textColor="?attr/colorAccent"
|
||||||
android:textStyle="bold"
|
android:textStyle="bold"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toBottomOf="@id/end_general_preferences" />
|
app:layout_constraintTop_toBottomOf="@id/end_navigation_preferences" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/scale_type_text"
|
android:id="@+id/scale_type_text"
|
||||||
|
@ -245,6 +245,50 @@
|
||||||
android:textColor="?android:attr/textColorSecondary"
|
android:textColor="?android:attr/textColorSecondary"
|
||||||
app:layout_constraintTop_toBottomOf="@id/crop_borders" />
|
app:layout_constraintTop_toBottomOf="@id/crop_borders" />
|
||||||
|
|
||||||
|
<android.widget.Space
|
||||||
|
android:id="@+id/end_paged_preferences"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="0dp"
|
||||||
|
app:layout_constraintBottom_toBottomOf="@+id/page_transitions"
|
||||||
|
tools:layout_editor_absoluteX="24dp" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/navigation_prefs"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="24dp"
|
||||||
|
android:text="Navigation"
|
||||||
|
android:textColor="?attr/colorAccent"
|
||||||
|
android:textStyle="bold"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toBottomOf="@+id/end_general_preferences" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/tapping_inverted_text"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="@string/pref_read_with_tapping_inverted"
|
||||||
|
app:layout_constraintBaseline_toBaselineOf="@id/tapping_inverted"
|
||||||
|
app:layout_constraintEnd_toStartOf="@id/verticalcenter"
|
||||||
|
app:layout_constraintStart_toStartOf="parent" />
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatSpinner
|
||||||
|
android:id="@+id/tapping_inverted"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="20dp"
|
||||||
|
android:entries="@array/invert_tapping_mode"
|
||||||
|
app:layout_constraintEnd_toEndOf="@id/spinner_end"
|
||||||
|
app:layout_constraintStart_toEndOf="@id/verticalcenter"
|
||||||
|
app:layout_constraintTop_toBottomOf="@+id/navigation_prefs" />
|
||||||
|
|
||||||
|
<android.widget.Space
|
||||||
|
android:id="@+id/end_navigation_preferences"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="0dp"
|
||||||
|
app:layout_constraintBottom_toBottomOf="@+id/tapping_inverted"
|
||||||
|
tools:layout_editor_absoluteX="24dp" />
|
||||||
|
|
||||||
<!-- Webtoon preferences -->
|
<!-- Webtoon preferences -->
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
|
@ -256,7 +300,7 @@
|
||||||
android:textColor="?attr/colorAccent"
|
android:textColor="?attr/colorAccent"
|
||||||
android:textStyle="bold"
|
android:textStyle="bold"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toBottomOf="@id/end_general_preferences" />
|
app:layout_constraintTop_toBottomOf="@id/end_navigation_preferences" />
|
||||||
|
|
||||||
<com.google.android.material.switchmaterial.SwitchMaterial
|
<com.google.android.material.switchmaterial.SwitchMaterial
|
||||||
android:id="@+id/crop_borders_webtoon"
|
android:id="@+id/crop_borders_webtoon"
|
||||||
|
|
|
@ -79,4 +79,11 @@
|
||||||
<item>@string/filter_mode_multiply</item>
|
<item>@string/filter_mode_multiply</item>
|
||||||
<item>@string/filter_mode_screen</item>
|
<item>@string/filter_mode_screen</item>
|
||||||
</string-array>
|
</string-array>
|
||||||
|
|
||||||
|
<string-array name="invert_tapping_mode">
|
||||||
|
<item>@string/tapping_inverted_none</item>
|
||||||
|
<item>@string/tapping_inverted_horizontal</item>
|
||||||
|
<item>@string/tapping_inverted_vertical</item>
|
||||||
|
<item>@string/tapping_inverted_both</item>
|
||||||
|
</string-array>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
Reference in a new issue