Refactoring Tabbed Sheets

This commit is contained in:
Jays2Kings 2021-03-24 17:29:21 -04:00
parent fe2543b9d5
commit a2c7705d07
17 changed files with 568 additions and 581 deletions

View File

@ -3,10 +3,11 @@ package eu.kanade.tachiyomi.ui.library.display
import android.content.Context import android.content.Context
import android.util.AttributeSet import android.util.AttributeSet
import eu.kanade.tachiyomi.util.bindToPreference import eu.kanade.tachiyomi.util.bindToPreference
import eu.kanade.tachiyomi.widget.BaseLibraryDisplayView
import kotlinx.android.synthetic.main.library_badges_layout.view.* import kotlinx.android.synthetic.main.library_badges_layout.view.*
class LibraryBadgesView @JvmOverloads constructor(context: Context, attrs: AttributeSet? = null) : class LibraryBadgesView @JvmOverloads constructor(context: Context, attrs: AttributeSet? = null) :
LibraryPreferenceView(context, attrs) { BaseLibraryDisplayView(context, attrs) {
override fun initGeneralPreferences() { override fun initGeneralPreferences() {
unread_badge_group.bindToPreference(preferences.unreadBadgeType()) { unread_badge_group.bindToPreference(preferences.unreadBadgeType()) {

View File

@ -3,10 +3,11 @@ package eu.kanade.tachiyomi.ui.library.display
import android.content.Context import android.content.Context
import android.util.AttributeSet import android.util.AttributeSet
import eu.kanade.tachiyomi.util.bindToPreference import eu.kanade.tachiyomi.util.bindToPreference
import eu.kanade.tachiyomi.widget.BaseLibraryDisplayView
import kotlinx.android.synthetic.main.library_category_layout.view.* import kotlinx.android.synthetic.main.library_category_layout.view.*
class LibraryCategoryView @JvmOverloads constructor(context: Context, attrs: AttributeSet? = null) : class LibraryCategoryView @JvmOverloads constructor(context: Context, attrs: AttributeSet? = null) :
LibraryPreferenceView(context, attrs) { BaseLibraryDisplayView(context, attrs) {
override fun initGeneralPreferences() { override fun initGeneralPreferences() {
show_all.bindToPreference(preferences.showAllCategories()) { show_all.bindToPreference(preferences.showAllCategories()) {

View File

@ -3,10 +3,11 @@ package eu.kanade.tachiyomi.ui.library.display
import android.content.Context import android.content.Context
import android.util.AttributeSet import android.util.AttributeSet
import eu.kanade.tachiyomi.util.bindToPreference import eu.kanade.tachiyomi.util.bindToPreference
import eu.kanade.tachiyomi.widget.BaseLibraryDisplayView
import kotlinx.android.synthetic.main.library_display_layout.view.* import kotlinx.android.synthetic.main.library_display_layout.view.*
class LibraryDisplayView @JvmOverloads constructor(context: Context, attrs: AttributeSet? = null) : class LibraryDisplayView @JvmOverloads constructor(context: Context, attrs: AttributeSet? = null) :
LibraryPreferenceView(context, attrs) { BaseLibraryDisplayView(context, attrs) {
override fun initGeneralPreferences() { override fun initGeneralPreferences() {
display_group.bindToPreference(preferences.libraryLayout()) { display_group.bindToPreference(preferences.libraryLayout()) {

View File

@ -1,28 +0,0 @@
package eu.kanade.tachiyomi.ui.library.display
import android.content.Context
import android.os.Bundle
import android.util.AttributeSet
import android.widget.CompoundButton
import android.widget.LinearLayout
import android.widget.RadioButton
import android.widget.RadioGroup
import com.f2prateek.rx.preferences.Preference
import eu.kanade.tachiyomi.data.preference.PreferencesHelper
import eu.kanade.tachiyomi.data.preference.getOrDefault
import eu.kanade.tachiyomi.ui.library.LibraryController
import uy.kohesive.injekt.injectLazy
abstract class LibraryPreferenceView @JvmOverloads constructor(context: Context, attrs: AttributeSet? = null) :
LinearLayout(context, attrs) {
internal val preferences by injectLazy<PreferencesHelper>()
lateinit var controller: LibraryController
abstract fun initGeneralPreferences()
override fun onFinishInflate() {
super.onFinishInflate()
initGeneralPreferences()
}
}

View File

@ -1,25 +0,0 @@
package eu.kanade.tachiyomi.ui.reader.settings
import android.content.Context
import android.util.AttributeSet
import android.widget.FrameLayout
import android.widget.LinearLayout
import com.google.android.material.tabs.TabLayout
import eu.kanade.tachiyomi.data.preference.PreferencesHelper
import eu.kanade.tachiyomi.ui.library.LibraryController
import eu.kanade.tachiyomi.ui.reader.ReaderActivity
import uy.kohesive.injekt.injectLazy
abstract class BaseReaderSettingsView @JvmOverloads constructor(context: Context, attrs: AttributeSet? = null) :
FrameLayout(context, attrs) {
internal val preferences by injectLazy<PreferencesHelper>()
lateinit var activity: ReaderActivity
abstract fun initGeneralPreferences()
override fun onFinishInflate() {
super.onFinishInflate()
initGeneralPreferences()
}
}

View File

@ -6,11 +6,11 @@ import android.widget.SeekBar
import androidx.annotation.ColorInt import androidx.annotation.ColorInt
import eu.kanade.tachiyomi.ui.reader.ReaderActivity import eu.kanade.tachiyomi.ui.reader.ReaderActivity
import eu.kanade.tachiyomi.util.view.RecyclerWindowInsetsListener import eu.kanade.tachiyomi.util.view.RecyclerWindowInsetsListener
import eu.kanade.tachiyomi.widget.BaseReaderSettingsView
import eu.kanade.tachiyomi.widget.IgnoreFirstSpinnerListener import eu.kanade.tachiyomi.widget.IgnoreFirstSpinnerListener
import eu.kanade.tachiyomi.widget.SimpleSeekBarListener import eu.kanade.tachiyomi.widget.SimpleSeekBarListener
import kotlinx.android.synthetic.main.reader_color_filter.* import kotlinx.android.synthetic.main.reader_color_filter.*
import kotlinx.android.synthetic.main.reader_color_filter.view.* import kotlinx.android.synthetic.main.reader_color_filter.view.*
import kotlinx.android.synthetic.main.reader_color_filter.view.settings_scroll_view
import kotlinx.android.synthetic.main.reader_general_layout.view.* import kotlinx.android.synthetic.main.reader_general_layout.view.*
import kotlinx.coroutines.flow.launchIn import kotlinx.coroutines.flow.launchIn
import kotlinx.coroutines.flow.onEach import kotlinx.coroutines.flow.onEach
@ -21,7 +21,6 @@ class ReaderFilterView @JvmOverloads constructor(context: Context, attrs: Attrib
override fun initGeneralPreferences() { override fun initGeneralPreferences() {
activity = context as ReaderActivity activity = context as ReaderActivity
settings_scroll_view.setOnApplyWindowInsetsListener(RecyclerWindowInsetsListener)
preferences.colorFilter().asFlow() preferences.colorFilter().asFlow()
.onEach { setColorFilter(it) } .onEach { setColorFilter(it) }
.launchIn(activity.scope) .launchIn(activity.scope)

View File

@ -5,6 +5,7 @@ import android.util.AttributeSet
import eu.kanade.tachiyomi.ui.reader.ReaderActivity import eu.kanade.tachiyomi.ui.reader.ReaderActivity
import eu.kanade.tachiyomi.util.bindToPreference import eu.kanade.tachiyomi.util.bindToPreference
import eu.kanade.tachiyomi.util.view.RecyclerWindowInsetsListener import eu.kanade.tachiyomi.util.view.RecyclerWindowInsetsListener
import eu.kanade.tachiyomi.widget.BaseReaderSettingsView
import eu.kanade.tachiyomi.widget.IgnoreFirstSpinnerListener import eu.kanade.tachiyomi.widget.IgnoreFirstSpinnerListener
import kotlinx.android.synthetic.main.reader_general_layout.view.* import kotlinx.android.synthetic.main.reader_general_layout.view.*
@ -13,7 +14,6 @@ class ReaderGeneralView @JvmOverloads constructor(context: Context, attrs: Attri
lateinit var sheet: TabbedReaderSettingsSheet lateinit var sheet: TabbedReaderSettingsSheet
override fun initGeneralPreferences() { override fun initGeneralPreferences() {
settings_scroll_view.setOnApplyWindowInsetsListener(RecyclerWindowInsetsListener)
viewer_series.onItemSelectedListener = { position -> viewer_series.onItemSelectedListener = { position ->
activity.presenter.setMangaViewer(position) activity.presenter.setMangaViewer(position)

View File

@ -4,15 +4,10 @@ import android.content.Context
import android.util.AttributeSet import android.util.AttributeSet
import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.R
import eu.kanade.tachiyomi.ui.reader.ReaderActivity import eu.kanade.tachiyomi.ui.reader.ReaderActivity
import eu.kanade.tachiyomi.util.bindToIntPreference
import eu.kanade.tachiyomi.util.bindToPreference import eu.kanade.tachiyomi.util.bindToPreference
import eu.kanade.tachiyomi.util.view.RecyclerWindowInsetsListener
import eu.kanade.tachiyomi.util.view.visibleIf import eu.kanade.tachiyomi.util.view.visibleIf
import eu.kanade.tachiyomi.widget.BaseReaderSettingsView
import kotlinx.android.synthetic.main.reader_paged_layout.view.* import kotlinx.android.synthetic.main.reader_paged_layout.view.*
import kotlinx.android.synthetic.main.reader_paged_layout.view.crop_borders_webtoon
import kotlinx.android.synthetic.main.reader_paged_layout.view.settings_scroll_view
import kotlinx.android.synthetic.main.reader_paged_layout.view.webtoon_enable_zoom_out
import kotlinx.android.synthetic.main.reader_paged_layout.view.webtoon_side_padding
class ReaderPagedView @JvmOverloads constructor(context: Context, attrs: AttributeSet? = null) : class ReaderPagedView @JvmOverloads constructor(context: Context, attrs: AttributeSet? = null) :
BaseReaderSettingsView(context, attrs) { BaseReaderSettingsView(context, attrs) {
@ -23,7 +18,6 @@ class ReaderPagedView @JvmOverloads constructor(context: Context, attrs: Attribu
crop_borders.bindToPreference(preferences.cropBorders()) crop_borders.bindToPreference(preferences.cropBorders())
page_transitions.bindToPreference(preferences.pageTransitions()) page_transitions.bindToPreference(preferences.pageTransitions())
settings_scroll_view.setOnApplyWindowInsetsListener(RecyclerWindowInsetsListener)
val mangaViewer = (context as ReaderActivity).presenter.getMangaViewer() val mangaViewer = (context as ReaderActivity).presenter.getMangaViewer()
val isWebtoonView = mangaViewer == ReaderActivity.WEBTOON || mangaViewer == ReaderActivity.VERTICAL_PLUS val isWebtoonView = mangaViewer == ReaderActivity.WEBTOON || mangaViewer == ReaderActivity.VERTICAL_PLUS
val hasMargins = mangaViewer == ReaderActivity.VERTICAL_PLUS val hasMargins = mangaViewer == ReaderActivity.VERTICAL_PLUS

View File

@ -1,6 +1,7 @@
package eu.kanade.tachiyomi.ui.reader.settings package eu.kanade.tachiyomi.ui.reader.settings
import android.view.View import android.view.View
import androidx.core.widget.NestedScrollView
import com.google.android.material.tabs.TabLayout import com.google.android.material.tabs.TabLayout
import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.R
import eu.kanade.tachiyomi.ui.library.display.LibraryBadgesView import eu.kanade.tachiyomi.ui.library.display.LibraryBadgesView
@ -66,22 +67,13 @@ class TabbedReaderSettingsSheet(val readerActivity: ReaderActivity): TabbedBotto
tabs.addOnTabSelectedListener(object : TabLayout.OnTabSelectedListener { tabs.addOnTabSelectedListener(object : TabLayout.OnTabSelectedListener {
override fun onTabSelected(tab: TabLayout.Tab?) { override fun onTabSelected(tab: TabLayout.Tab?) {
window?.setDimAmount(if (tab?.position == 2) 0f else ogDim) window?.setDimAmount(if (tab?.position == 2) 0f else ogDim)
val view = getTabViews()[tab?.position ?: 0]
view.settings_scroll_view?.isNestedScrollingEnabled = true
view.settings_scroll_view?.requestLayout()
readerActivity.appbar.visInvisIf(tab?.position != 2) readerActivity.appbar.visInvisIf(tab?.position != 2)
} }
override fun onTabUnselected(tab: TabLayout.Tab?) { override fun onTabUnselected(tab: TabLayout.Tab?) {
val view = getTabViews()[tab?.position ?: 0]
view.settings_scroll_view?.isNestedScrollingEnabled = false
view.settings_scroll_view?.requestLayout()
} }
override fun onTabReselected(tab: TabLayout.Tab?) { override fun onTabReselected(tab: TabLayout.Tab?) {
val view = getTabViews()[tab?.position ?: 0]
view.settings_scroll_view?.isNestedScrollingEnabled = true
view.settings_scroll_view?.requestLayout()
} }
}) })
} }

View File

@ -0,0 +1,37 @@
package eu.kanade.tachiyomi.widget
import android.content.Context
import android.util.AttributeSet
import androidx.core.widget.NestedScrollView
import eu.kanade.tachiyomi.data.preference.PreferencesHelper
import eu.kanade.tachiyomi.ui.library.LibraryController
import eu.kanade.tachiyomi.ui.reader.ReaderActivity
import eu.kanade.tachiyomi.util.view.RecyclerWindowInsetsListener
import uy.kohesive.injekt.injectLazy
abstract class BaseTabbedScrollView @JvmOverloads constructor(context: Context, attrs: AttributeSet? = null) :
NestedScrollView(context, attrs) {
init {
clipToPadding = false
}
internal val preferences by injectLazy<PreferencesHelper>()
abstract fun initGeneralPreferences()
override fun onFinishInflate() {
super.onFinishInflate()
setOnApplyWindowInsetsListener(RecyclerWindowInsetsListener)
initGeneralPreferences()
}
}
abstract class BaseLibraryDisplayView @JvmOverloads constructor(context: Context, attrs: AttributeSet? = null) :
BaseTabbedScrollView(context, attrs) {
lateinit var controller: LibraryController
}
abstract class BaseReaderSettingsView @JvmOverloads constructor(context: Context, attrs: AttributeSet? = null) :
BaseTabbedScrollView(context, attrs) {
lateinit var activity: ReaderActivity
}

View File

@ -3,20 +3,17 @@ package eu.kanade.tachiyomi.widget
import android.app.Activity import android.app.Activity
import android.content.Context import android.content.Context
import android.util.AttributeSet import android.util.AttributeSet
import android.view.Gravity
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import androidx.coordinatorlayout.widget.CoordinatorLayout import androidx.core.widget.NestedScrollView
import androidx.viewpager.widget.ViewPager import androidx.viewpager.widget.ViewPager
import com.google.android.material.bottomsheet.BottomSheetBehavior import com.google.android.material.bottomsheet.BottomSheetBehavior
import com.google.android.material.bottomsheet.BottomSheetDialog import com.google.android.material.bottomsheet.BottomSheetDialog
import com.google.android.material.tabs.TabLayout
import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.R
import eu.kanade.tachiyomi.ui.base.controller.BaseController
import eu.kanade.tachiyomi.util.system.dpToPx import eu.kanade.tachiyomi.util.system.dpToPx
import eu.kanade.tachiyomi.util.view.expand import eu.kanade.tachiyomi.util.view.expand
import eu.kanade.tachiyomi.util.view.setEdgeToEdge import eu.kanade.tachiyomi.util.view.setEdgeToEdge
import eu.kanade.tachiyomi.util.view.updateLayoutParams
import kotlinx.android.synthetic.main.library_list_controller.*
import kotlinx.android.synthetic.main.tabbed_bottom_sheet.* import kotlinx.android.synthetic.main.tabbed_bottom_sheet.*
@ -48,7 +45,25 @@ abstract class TabbedBottomSheetDialog(private val activity: Activity) :
super.onStart() super.onStart()
sheetBehavior.skipCollapsed = true sheetBehavior.skipCollapsed = true
sheetBehavior.expand() sheetBehavior.expand()
val height = activity.window.decorView.rootWindowInsets.systemWindowInsetTop tabs.addOnTabSelectedListener(object : TabLayout.OnTabSelectedListener {
override fun onTabSelected(tab: TabLayout.Tab?) {
val view = getTabViews()[tab?.position ?: 0] as? NestedScrollView
view?.isNestedScrollingEnabled = true
view?.requestLayout()
}
override fun onTabUnselected(tab: TabLayout.Tab?) {
val view = getTabViews()[tab?.position ?: 0] as? NestedScrollView
view?.isNestedScrollingEnabled = false
view?.requestLayout()
}
override fun onTabReselected(tab: TabLayout.Tab?) {
val view = getTabViews()[tab?.position ?: 0] as? NestedScrollView
view?.isNestedScrollingEnabled = true
view?.requestLayout()
}
})
} }
abstract fun getTabViews(): List<View> abstract fun getTabViews(): List<View>

View File

@ -4,46 +4,53 @@
android:layout_height="match_parent" android:layout_height="match_parent"
android:orientation="vertical"> android:orientation="vertical">
<RadioGroup <LinearLayout
android:id="@+id/unread_badge_group" android:id="@+id/linear_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" android:orientation="vertical"
android:paddingStart="12dp"
android:paddingEnd="12dp">
<com.google.android.material.radiobutton.MaterialRadioButton
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:maxLines="2"
android:text="@string/hide_unread_badges" />
<com.google.android.material.radiobutton.MaterialRadioButton
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:maxLines="2"
android:text="@string/show_unread_badges" />
<com.google.android.material.radiobutton.MaterialRadioButton
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:maxLines="2"
android:text="@string/show_unread_count" />
</RadioGroup>
<com.google.android.material.checkbox.MaterialCheckBox
android:id="@+id/hide_reading"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="match_parent">
android:layout_marginStart="12dp"
android:layout_marginTop="12dp" <RadioGroup
android:layout_marginEnd="12dp" android:id="@+id/unread_badge_group"
android:text="@string/hide_start_reading_button" /> android:layout_width="match_parent"
<com.google.android.material.checkbox.MaterialCheckBox android:layout_height="wrap_content"
android:id="@+id/download_badge" android:orientation="vertical"
android:layout_width="match_parent" android:paddingStart="12dp"
android:layout_height="wrap_content" android:paddingEnd="12dp">
android:layout_marginStart="12dp"
android:layout_marginEnd="12dp" <com.google.android.material.radiobutton.MaterialRadioButton
android:text="@string/download_badge" /> android:layout_width="match_parent"
android:layout_height="wrap_content"
android:maxLines="2"
android:text="@string/hide_unread_badges" />
<com.google.android.material.radiobutton.MaterialRadioButton
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:maxLines="2"
android:text="@string/show_unread_badges" />
<com.google.android.material.radiobutton.MaterialRadioButton
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:maxLines="2"
android:text="@string/show_unread_count" />
</RadioGroup>
<com.google.android.material.checkbox.MaterialCheckBox
android:id="@+id/hide_reading"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="12dp"
android:layout_marginTop="12dp"
android:layout_marginEnd="12dp"
android:text="@string/hide_start_reading_button" />
<com.google.android.material.checkbox.MaterialCheckBox
android:id="@+id/download_badge"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="12dp"
android:layout_marginEnd="12dp"
android:text="@string/download_badge" />
</LinearLayout>
</eu.kanade.tachiyomi.ui.library.display.LibraryBadgesView> </eu.kanade.tachiyomi.ui.library.display.LibraryBadgesView>

View File

@ -4,35 +4,42 @@
android:layout_height="match_parent" android:layout_height="match_parent"
android:orientation="vertical"> android:orientation="vertical">
<com.google.android.material.checkbox.MaterialCheckBox <LinearLayout
android:id="@+id/category_show" android:id="@+id/linear_layout"
android:orientation="vertical"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="match_parent">
android:layout_marginStart="12dp"
android:layout_marginEnd="12dp"
android:text="@string/always_show_current_category" />
<com.google.android.material.checkbox.MaterialCheckBox <com.google.android.material.checkbox.MaterialCheckBox
android:id="@+id/show_all" android:id="@+id/category_show"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="12dp" android:layout_marginStart="12dp"
android:layout_marginEnd="12dp" android:layout_marginEnd="12dp"
android:text="@string/show_all_categories" /> android:text="@string/always_show_current_category" />
<com.google.android.material.checkbox.MaterialCheckBox <com.google.android.material.checkbox.MaterialCheckBox
android:id="@+id/hide_hopper" android:id="@+id/show_all"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="12dp" android:layout_marginStart="12dp"
android:layout_marginEnd="12dp" android:layout_marginEnd="12dp"
android:text="@string/hide_category_hopper" /> android:text="@string/show_all_categories" />
<com.google.android.material.checkbox.MaterialCheckBox <com.google.android.material.checkbox.MaterialCheckBox
android:id="@+id/auto_hide_hopper" android:id="@+id/hide_hopper"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="12dp" android:layout_marginStart="12dp"
android:layout_marginEnd="12dp" android:layout_marginEnd="12dp"
android:text="@string/hide_hopper_on_scroll" /> android:text="@string/hide_category_hopper" />
<com.google.android.material.checkbox.MaterialCheckBox
android:id="@+id/auto_hide_hopper"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="12dp"
android:layout_marginEnd="12dp"
android:text="@string/hide_hopper_on_scroll" />
</LinearLayout>
</eu.kanade.tachiyomi.ui.library.display.LibraryCategoryView> </eu.kanade.tachiyomi.ui.library.display.LibraryCategoryView>

View File

@ -4,84 +4,90 @@
android:layout_height="match_parent" android:layout_height="match_parent"
android:orientation="vertical"> android:orientation="vertical">
<RadioGroup <LinearLayout
android:id="@+id/display_group" android:id="@+id/linear_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" android:orientation="vertical"
android:paddingStart="12dp"
android:paddingEnd="12dp">
<com.google.android.material.radiobutton.MaterialRadioButton
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/list" />
<com.google.android.material.radiobutton.MaterialRadioButton
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/compact_grid" />
<com.google.android.material.radiobutton.MaterialRadioButton
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/comfortable_grid" />
</RadioGroup>
<com.google.android.material.textview.MaterialTextView
style="@style/TextAppearance.MaterialComponents.Headline6"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="match_parent">
android:layout_marginTop="16dp"
android:paddingStart="16dp"
android:paddingEnd="12dp"
android:text="@string/grid_options" />
<RadioGroup <RadioGroup
android:id="@+id/grid_size_toggle_group" android:id="@+id/display_group"
android:layout_width="wrap_content" android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="12dp"
android:layout_marginEnd="12dp"
android:orientation="horizontal">
<com.google.android.material.radiobutton.MaterialRadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="@string/x_small" /> android:orientation="vertical"
android:paddingStart="12dp"
android:paddingEnd="12dp">
<com.google.android.material.radiobutton.MaterialRadioButton <com.google.android.material.radiobutton.MaterialRadioButton
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/list" />
<com.google.android.material.radiobutton.MaterialRadioButton
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/compact_grid" />
<com.google.android.material.radiobutton.MaterialRadioButton
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/comfortable_grid" />
</RadioGroup>
<com.google.android.material.textview.MaterialTextView
style="@style/TextAppearance.MaterialComponents.Headline6"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:paddingStart="16dp"
android:paddingEnd="12dp"
android:text="@string/grid_options" />
<RadioGroup
android:id="@+id/grid_size_toggle_group"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="12dp" android:layout_marginStart="12dp"
android:layout_marginEnd="12dp"
android:orientation="horizontal">
android:text="@string/small" /> <com.google.android.material.radiobutton.MaterialRadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/x_small" />
<com.google.android.material.radiobutton.MaterialRadioButton <com.google.android.material.radiobutton.MaterialRadioButton
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="12dp"
android:text="@string/small" />
<com.google.android.material.radiobutton.MaterialRadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="12dp"
android:text="@string/medium" />
<com.google.android.material.radiobutton.MaterialRadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="12dp"
android:text="@string/large" />
<com.google.android.material.radiobutton.MaterialRadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="12dp"
android:text="@string/x_large" />
</RadioGroup>
<com.google.android.material.checkbox.MaterialCheckBox
android:id="@+id/uniform_grid"
android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="12dp" android:layout_marginStart="12dp"
android:text="@string/medium" /> android:layout_marginEnd="12dp"
android:text="@string/uniform_covers" />
<com.google.android.material.radiobutton.MaterialRadioButton </LinearLayout>
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="12dp"
android:text="@string/large" />
<com.google.android.material.radiobutton.MaterialRadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="12dp"
android:text="@string/x_large" />
</RadioGroup>
<com.google.android.material.checkbox.MaterialCheckBox
android:id="@+id/uniform_grid"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="12dp"
android:layout_marginEnd="12dp"
android:text="@string/uniform_covers" />
</eu.kanade.tachiyomi.ui.library.display.LibraryDisplayView> </eu.kanade.tachiyomi.ui.library.display.LibraryDisplayView>

View File

@ -6,240 +6,233 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:background="@drawable/bottom_sheet_rounded_background" android:background="@drawable/bottom_sheet_rounded_background"
android:forceDarkAllowed="false"> android:clipToPadding="false">
<androidx.core.widget.NestedScrollView <androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/settings_scroll_view" android:id="@+id/constraint_layout"
android:layout_width="match_parent" android:layout_width="match_parent"
android:clipToPadding="false" android:layout_height="wrap_content"
android:layout_height="wrap_content"> android:paddingStart="@dimen/material_component_dialogs_padding_around_content_area"
android:paddingTop="0dp"
android:paddingEnd="@dimen/material_component_dialogs_padding_around_content_area">
<androidx.constraintlayout.widget.ConstraintLayout <androidx.legacy.widget.Space
android:id="@+id/constraint_layout" android:id="@+id/spinner_end"
android:layout_width="16dp"
android:layout_height="0dp"
app:layout_constraintStart_toEndOf="parent" />
<!-- Color filter -->
<androidx.appcompat.widget.SwitchCompat
android:id="@+id/switch_color_filter"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="@string/use_custom_color_filter"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<!-- Red filter -->
<SeekBar
android:id="@+id/seekbar_color_filter_red"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginEnd="8dp"
android:max="255"
android:padding="@dimen/material_component_text_fields_floating_label_padding_between_label_and_input_text"
app:layout_constraintEnd_toStartOf="@id/txt_color_filter_red_value"
app:layout_constraintStart_toEndOf="@id/txt_color_filter_red_symbol"
app:layout_constraintTop_toBottomOf="@id/switch_color_filter" />
<TextView
android:id="@+id/txt_color_filter_red_symbol"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/red_initial"
android:textAppearance="@style/TextAppearance.Regular.SubHeading.Secondary"
app:layout_constraintBottom_toBottomOf="@id/seekbar_color_filter_red"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@id/seekbar_color_filter_red" />
<TextView
android:id="@+id/txt_color_filter_red_value"
android:layout_width="30dp"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:textAppearance="@style/TextAppearance.Regular.SubHeading.Secondary"
app:layout_constraintBottom_toBottomOf="@id/seekbar_color_filter_red"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@id/seekbar_color_filter_red" />
<!-- Green filter -->
<SeekBar
android:id="@+id/seekbar_color_filter_green"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginEnd="8dp"
android:max="255"
android:padding="@dimen/material_component_text_fields_floating_label_padding_between_label_and_input_text"
app:layout_constraintEnd_toStartOf="@id/txt_color_filter_green_value"
app:layout_constraintStart_toEndOf="@id/txt_color_filter_green_symbol"
app:layout_constraintTop_toBottomOf="@id/seekbar_color_filter_red" />
<TextView
android:id="@+id/txt_color_filter_green_symbol"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/green_initial"
android:textAppearance="@style/TextAppearance.Regular.SubHeading.Secondary"
app:layout_constraintBottom_toBottomOf="@id/seekbar_color_filter_green"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@id/seekbar_color_filter_green" />
<TextView
android:id="@+id/txt_color_filter_green_value"
android:layout_width="30dp"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:textAppearance="@style/TextAppearance.Regular.SubHeading.Secondary"
app:layout_constraintBottom_toBottomOf="@id/seekbar_color_filter_green"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@id/seekbar_color_filter_green" />
<!-- Blue filter -->
<SeekBar
android:id="@+id/seekbar_color_filter_blue"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginEnd="8dp"
android:max="255"
android:padding="@dimen/material_component_text_fields_floating_label_padding_between_label_and_input_text"
app:layout_constraintEnd_toStartOf="@id/txt_color_filter_blue_value"
app:layout_constraintStart_toEndOf="@id/txt_color_filter_blue_symbol"
app:layout_constraintTop_toBottomOf="@id/seekbar_color_filter_green" />
<TextView
android:id="@+id/txt_color_filter_blue_symbol"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/blue_initial"
android:textAppearance="@style/TextAppearance.Regular.SubHeading.Secondary"
app:layout_constraintBottom_toBottomOf="@id/seekbar_color_filter_blue"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@id/seekbar_color_filter_blue" />
<TextView
android:id="@+id/txt_color_filter_blue_value"
android:layout_width="30dp"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:textAppearance="@style/TextAppearance.Regular.SubHeading.Secondary"
app:layout_constraintBottom_toBottomOf="@id/seekbar_color_filter_blue"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@id/seekbar_color_filter_blue" />
<!-- Alpha filter -->
<SeekBar
android:id="@+id/seekbar_color_filter_alpha"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginEnd="8dp"
android:max="255"
android:padding="@dimen/material_component_text_fields_floating_label_padding_between_label_and_input_text"
app:layout_constraintEnd_toStartOf="@id/txt_color_filter_alpha_value"
app:layout_constraintStart_toEndOf="@id/txt_color_filter_alpha_symbol"
app:layout_constraintTop_toBottomOf="@id/seekbar_color_filter_blue" />
<TextView
android:id="@+id/txt_color_filter_alpha_symbol"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/alpha_initial"
android:textAppearance="@style/TextAppearance.Regular.SubHeading.Secondary"
app:layout_constraintBottom_toBottomOf="@id/seekbar_color_filter_alpha"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@id/seekbar_color_filter_alpha" />
<TextView
android:id="@+id/txt_color_filter_alpha_value"
android:layout_width="30dp"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:textAppearance="@style/TextAppearance.Regular.SubHeading.Secondary"
app:layout_constraintBottom_toBottomOf="@id/seekbar_color_filter_alpha"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@id/seekbar_color_filter_alpha" />
<!-- Filter mode -->
<eu.kanade.tachiyomi.ui.reader.settings.ReaderPreferenceView
android:id="@+id/color_filter_mode"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:paddingStart="@dimen/material_component_dialogs_padding_around_content_area" app:title="@string/color_filter_blend_mode"
android:paddingTop="0dp" android:entries="@array/color_filter_modes"
android:paddingEnd="@dimen/material_component_dialogs_padding_around_content_area"> app:layout_constraintTop_toBottomOf="@id/seekbar_color_filter_alpha"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="@id/spinner_end" />
<androidx.legacy.widget.Space <!-- Brightness -->
android:id="@+id/spinner_end"
android:layout_width="16dp"
android:layout_height="0dp"
app:layout_constraintStart_toEndOf="parent" />
<!-- Color filter --> <androidx.appcompat.widget.SwitchCompat
android:id="@+id/custom_brightness"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:text="@string/use_custom_brightness"
app:layout_constraintTop_toBottomOf="@id/color_filter_mode" />
<androidx.appcompat.widget.SwitchCompat <!-- Brightness value -->
android:id="@+id/switch_color_filter"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="@string/use_custom_color_filter"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<!-- Red filter --> <eu.kanade.tachiyomi.widget.NegativeSeekBar
android:id="@+id/brightness_seekbar"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginEnd="8dp"
android:padding="@dimen/material_component_text_fields_floating_label_padding_between_label_and_input_text"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@id/txt_brightness_seekbar_value"
app:layout_constraintStart_toEndOf="@id/txt_brightness_seekbar_icon"
app:layout_constraintTop_toBottomOf="@id/custom_brightness"
app:max_seek="100"
app:min_seek="-75" />
<SeekBar <androidx.appcompat.widget.AppCompatImageView
android:id="@+id/seekbar_color_filter_red" android:id="@+id/txt_brightness_seekbar_icon"
android:layout_width="0dp" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="8dp" android:textAppearance="@style/TextAppearance.Regular.SubHeading.Secondary"
android:layout_marginEnd="8dp" android:tint="?android:attr/textColorSecondary"
android:max="255" app:layout_constraintBottom_toBottomOf="@id/brightness_seekbar"
android:padding="@dimen/material_component_text_fields_floating_label_padding_between_label_and_input_text" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toStartOf="@id/txt_color_filter_red_value" app:layout_constraintTop_toTopOf="@id/brightness_seekbar"
app:layout_constraintStart_toEndOf="@id/txt_color_filter_red_symbol" app:srcCompat="@drawable/ic_brightness_day_24dp" />
app:layout_constraintTop_toBottomOf="@id/switch_color_filter" />
<TextView <TextView
android:id="@+id/txt_color_filter_red_symbol" android:id="@+id/txt_brightness_seekbar_value"
android:layout_width="wrap_content" android:layout_width="30dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="@string/red_initial" android:textAppearance="@style/TextAppearance.Regular.SubHeading.Secondary"
android:textAppearance="@style/TextAppearance.Regular.SubHeading.Secondary" app:layout_constraintBottom_toBottomOf="@id/brightness_seekbar"
app:layout_constraintBottom_toBottomOf="@id/seekbar_color_filter_red" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="@id/brightness_seekbar" />
app:layout_constraintTop_toTopOf="@id/seekbar_color_filter_red" />
<TextView <androidx.constraintlayout.widget.Guideline
android:id="@+id/txt_color_filter_red_value" android:id="@+id/bottom_line"
android:layout_width="30dp" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_alignParentEnd="true" android:orientation="vertical"
android:textAppearance="@style/TextAppearance.Regular.SubHeading.Secondary" app:layout_constraintGuide_percent="0.5" />
app:layout_constraintBottom_toBottomOf="@id/seekbar_color_filter_red"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@id/seekbar_color_filter_red" />
<!-- Green filter --> </androidx.constraintlayout.widget.ConstraintLayout>
<SeekBar
android:id="@+id/seekbar_color_filter_green"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginEnd="8dp"
android:max="255"
android:padding="@dimen/material_component_text_fields_floating_label_padding_between_label_and_input_text"
app:layout_constraintEnd_toStartOf="@id/txt_color_filter_green_value"
app:layout_constraintStart_toEndOf="@id/txt_color_filter_green_symbol"
app:layout_constraintTop_toBottomOf="@id/seekbar_color_filter_red" />
<TextView
android:id="@+id/txt_color_filter_green_symbol"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/green_initial"
android:textAppearance="@style/TextAppearance.Regular.SubHeading.Secondary"
app:layout_constraintBottom_toBottomOf="@id/seekbar_color_filter_green"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@id/seekbar_color_filter_green" />
<TextView
android:id="@+id/txt_color_filter_green_value"
android:layout_width="30dp"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:textAppearance="@style/TextAppearance.Regular.SubHeading.Secondary"
app:layout_constraintBottom_toBottomOf="@id/seekbar_color_filter_green"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@id/seekbar_color_filter_green" />
<!-- Blue filter -->
<SeekBar
android:id="@+id/seekbar_color_filter_blue"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginEnd="8dp"
android:max="255"
android:padding="@dimen/material_component_text_fields_floating_label_padding_between_label_and_input_text"
app:layout_constraintEnd_toStartOf="@id/txt_color_filter_blue_value"
app:layout_constraintStart_toEndOf="@id/txt_color_filter_blue_symbol"
app:layout_constraintTop_toBottomOf="@id/seekbar_color_filter_green" />
<TextView
android:id="@+id/txt_color_filter_blue_symbol"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/blue_initial"
android:textAppearance="@style/TextAppearance.Regular.SubHeading.Secondary"
app:layout_constraintBottom_toBottomOf="@id/seekbar_color_filter_blue"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@id/seekbar_color_filter_blue" />
<TextView
android:id="@+id/txt_color_filter_blue_value"
android:layout_width="30dp"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:textAppearance="@style/TextAppearance.Regular.SubHeading.Secondary"
app:layout_constraintBottom_toBottomOf="@id/seekbar_color_filter_blue"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@id/seekbar_color_filter_blue" />
<!-- Alpha filter -->
<SeekBar
android:id="@+id/seekbar_color_filter_alpha"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginEnd="8dp"
android:max="255"
android:padding="@dimen/material_component_text_fields_floating_label_padding_between_label_and_input_text"
app:layout_constraintEnd_toStartOf="@id/txt_color_filter_alpha_value"
app:layout_constraintStart_toEndOf="@id/txt_color_filter_alpha_symbol"
app:layout_constraintTop_toBottomOf="@id/seekbar_color_filter_blue" />
<TextView
android:id="@+id/txt_color_filter_alpha_symbol"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/alpha_initial"
android:textAppearance="@style/TextAppearance.Regular.SubHeading.Secondary"
app:layout_constraintBottom_toBottomOf="@id/seekbar_color_filter_alpha"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@id/seekbar_color_filter_alpha" />
<TextView
android:id="@+id/txt_color_filter_alpha_value"
android:layout_width="30dp"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:textAppearance="@style/TextAppearance.Regular.SubHeading.Secondary"
app:layout_constraintBottom_toBottomOf="@id/seekbar_color_filter_alpha"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@id/seekbar_color_filter_alpha" />
<!-- Filter mode -->
<eu.kanade.tachiyomi.ui.reader.settings.ReaderPreferenceView
android:id="@+id/color_filter_mode"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:title="@string/color_filter_blend_mode"
android:entries="@array/color_filter_modes"
app:layout_constraintTop_toBottomOf="@id/seekbar_color_filter_alpha"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="@id/spinner_end" />
<!-- Brightness -->
<androidx.appcompat.widget.SwitchCompat
android:id="@+id/custom_brightness"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:text="@string/use_custom_brightness"
app:layout_constraintTop_toBottomOf="@id/color_filter_mode" />
<!-- Brightness value -->
<eu.kanade.tachiyomi.widget.NegativeSeekBar
android:id="@+id/brightness_seekbar"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginEnd="8dp"
android:padding="@dimen/material_component_text_fields_floating_label_padding_between_label_and_input_text"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@id/txt_brightness_seekbar_value"
app:layout_constraintStart_toEndOf="@id/txt_brightness_seekbar_icon"
app:layout_constraintTop_toBottomOf="@id/custom_brightness"
app:max_seek="100"
app:min_seek="-75" />
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/txt_brightness_seekbar_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="@style/TextAppearance.Regular.SubHeading.Secondary"
android:tint="?android:attr/textColorSecondary"
app:layout_constraintBottom_toBottomOf="@id/brightness_seekbar"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@id/brightness_seekbar"
app:srcCompat="@drawable/ic_brightness_day_24dp" />
<TextView
android:id="@+id/txt_brightness_seekbar_value"
android:layout_width="30dp"
android:layout_height="wrap_content"
android:textAppearance="@style/TextAppearance.Regular.SubHeading.Secondary"
app:layout_constraintBottom_toBottomOf="@id/brightness_seekbar"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@id/brightness_seekbar" />
<androidx.constraintlayout.widget.Guideline
android:id="@+id/bottom_line"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintGuide_percent="0.5" />
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.core.widget.NestedScrollView>
</eu.kanade.tachiyomi.ui.reader.settings.ReaderFilterView> </eu.kanade.tachiyomi.ui.reader.settings.ReaderFilterView>

View File

@ -5,82 +5,76 @@
android:id="@+id/filter_bottom_sheet" android:id="@+id/filter_bottom_sheet"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:clipToPadding="false"
android:background="@drawable/bottom_sheet_rounded_background" android:background="@drawable/bottom_sheet_rounded_background"
android:forceDarkAllowed="false"> android:forceDarkAllowed="false">
<androidx.core.widget.NestedScrollView <LinearLayout
android:id="@+id/settings_scroll_view" android:id="@+id/constraint_layout"
style="@style/BottomSheetDialogTheme"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@android:color/transparent"
android:clipToPadding="false" android:clipToPadding="false"
android:layout_height="wrap_content"> android:orientation="vertical"
android:paddingStart="@dimen/material_component_dialogs_padding_around_content_area"
android:paddingTop="0dp"
android:paddingEnd="@dimen/material_component_dialogs_padding_around_content_area">
<LinearLayout <eu.kanade.tachiyomi.ui.reader.settings.ReaderPreferenceView
android:id="@+id/constraint_layout" android:id="@+id/viewer_series"
style="@style/BottomSheetDialogTheme"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:background="@android:color/transparent" android:layout_marginTop="4dp"
android:clipToPadding="false" app:title="@string/viewer_for_this_series"
android:orientation="vertical" android:entries="@array/viewers_selector" />
android:paddingStart="@dimen/material_component_dialogs_padding_around_content_area"
android:paddingTop="0dp"
android:paddingEnd="@dimen/material_component_dialogs_padding_around_content_area">
<eu.kanade.tachiyomi.ui.reader.settings.ReaderPreferenceView <eu.kanade.tachiyomi.ui.reader.settings.ReaderPreferenceView
android:id="@+id/viewer_series" android:id="@+id/rotation_mode"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="4dp" android:layout_marginTop="4dp"
app:title="@string/viewer_for_this_series" app:title="@string/rotation"
android:entries="@array/viewers_selector" /> android:entries="@array/rotation_type" />
<eu.kanade.tachiyomi.ui.reader.settings.ReaderPreferenceView <eu.kanade.tachiyomi.ui.reader.settings.ReaderPreferenceView
android:id="@+id/rotation_mode" android:id="@+id/background_color"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="4dp" android:layout_marginTop="4dp"
app:title="@string/rotation" app:title="@string/background_color"
android:entries="@array/rotation_type" /> android:entries="@array/reader_themes" />
<eu.kanade.tachiyomi.ui.reader.settings.ReaderPreferenceView <com.google.android.material.switchmaterial.SwitchMaterial
android:id="@+id/background_color" android:id="@+id/show_page_number"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="4dp" android:layout_marginTop="4dp"
app:title="@string/background_color" android:text="@string/show_page_number"
android:entries="@array/reader_themes" /> android:textColor="?android:attr/textColorPrimary" />
<com.google.android.material.switchmaterial.SwitchMaterial <com.google.android.material.switchmaterial.SwitchMaterial
android:id="@+id/show_page_number" android:id="@+id/fullscreen"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="4dp" android:layout_marginTop="4dp"
android:text="@string/show_page_number" android:text="@string/fullscreen"
android:textColor="?android:attr/textColorPrimary" /> android:textColor="?android:attr/textColorPrimary" />
<com.google.android.material.switchmaterial.SwitchMaterial <com.google.android.material.switchmaterial.SwitchMaterial
android:id="@+id/fullscreen" android:id="@+id/keepscreen"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="4dp" android:layout_marginTop="4dp"
android:text="@string/fullscreen" android:text="@string/keep_screen_on"
android:textColor="?android:attr/textColorPrimary" /> android:textColor="?android:attr/textColorPrimary" />
<com.google.android.material.switchmaterial.SwitchMaterial <com.google.android.material.switchmaterial.SwitchMaterial
android:id="@+id/keepscreen" android:id="@+id/always_show_chapter_transition"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="4dp" android:layout_marginTop="4dp"
android:text="@string/keep_screen_on" android:text="@string/always_show_chapter_transition"
android:textColor="?android:attr/textColorPrimary" /> android:textColor="?android:attr/textColorPrimary" />
</LinearLayout>
<com.google.android.material.switchmaterial.SwitchMaterial
android:id="@+id/always_show_chapter_transition"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="4dp"
android:text="@string/always_show_chapter_transition"
android:textColor="?android:attr/textColorPrimary" />
</LinearLayout>
</androidx.core.widget.NestedScrollView>
</eu.kanade.tachiyomi.ui.reader.settings.ReaderGeneralView> </eu.kanade.tachiyomi.ui.reader.settings.ReaderGeneralView>

View File

@ -6,99 +6,92 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:background="@drawable/bottom_sheet_rounded_background" android:background="@drawable/bottom_sheet_rounded_background"
android:forceDarkAllowed="false"> android:clipToPadding="false">
<androidx.core.widget.NestedScrollView <LinearLayout
android:id="@+id/settings_scroll_view"
android:clipToPadding="false"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content"> android:layout_height="wrap_content"
android:paddingStart="@dimen/material_component_dialogs_padding_around_content_area"
android:orientation="vertical"
android:paddingTop="0dp"
android:paddingEnd="@dimen/material_component_dialogs_padding_around_content_area">
<LinearLayout <eu.kanade.tachiyomi.ui.reader.settings.ReaderPreferenceView
android:id="@+id/scale_type"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:paddingStart="@dimen/material_component_dialogs_padding_around_content_area" android:layout_marginTop="4dp"
android:orientation="vertical" app:title="@string/scale_type"
android:paddingTop="0dp" android:entries="@array/image_scale_type" />
android:paddingEnd="@dimen/material_component_dialogs_padding_around_content_area">
<eu.kanade.tachiyomi.ui.reader.settings.ReaderPreferenceView <eu.kanade.tachiyomi.ui.reader.settings.ReaderPreferenceView
android:id="@+id/scale_type" android:id="@+id/zoom_start"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="4dp" android:layout_marginTop="4dp"
app:title="@string/scale_type" app:title="@string/zoom_start_position"
android:entries="@array/image_scale_type" /> android:entries="@array/zoom_start" />
<eu.kanade.tachiyomi.ui.reader.settings.ReaderPreferenceView
android:id="@+id/zoom_start"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="4dp"
app:title="@string/zoom_start_position"
android:entries="@array/zoom_start" />
<com.google.android.material.switchmaterial.SwitchMaterial <com.google.android.material.switchmaterial.SwitchMaterial
android:id="@+id/crop_borders" android:id="@+id/crop_borders"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="4dp" android:layout_marginTop="4dp"
android:text="@string/crop_borders" android:text="@string/crop_borders"
android:textColor="?android:attr/textColorPrimary" /> android:textColor="?android:attr/textColorPrimary" />
<com.google.android.material.switchmaterial.SwitchMaterial <com.google.android.material.switchmaterial.SwitchMaterial
android:id="@+id/page_transitions" android:id="@+id/page_transitions"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="0dp" android:layout_marginTop="0dp"
android:text="@string/page_transitions" android:text="@string/page_transitions"
android:textColor="?android:attr/textColorPrimary" /> android:textColor="?android:attr/textColorPrimary" />
<!-- Webtoon Prefs --> <!-- Webtoon Prefs -->
<eu.kanade.tachiyomi.ui.reader.settings.ReaderPreferenceView <eu.kanade.tachiyomi.ui.reader.settings.ReaderPreferenceView
android:id="@+id/webtoon_side_padding" android:id="@+id/webtoon_side_padding"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="4dp" android:layout_marginTop="4dp"
app:title="@string/pref_webtoon_side_padding" app:title="@string/pref_webtoon_side_padding"
android:entries="@array/webtoon_side_padding" /> android:entries="@array/webtoon_side_padding" />
<com.google.android.material.switchmaterial.SwitchMaterial <com.google.android.material.switchmaterial.SwitchMaterial
android:id="@+id/crop_borders_webtoon" android:id="@+id/crop_borders_webtoon"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="4dp" android:layout_marginTop="4dp"
android:text="@string/crop_borders" android:text="@string/crop_borders"
android:textColor="?android:attr/textColorPrimary" android:textColor="?android:attr/textColorPrimary"
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintTop_toTopOf="parent" />
<com.google.android.material.switchmaterial.SwitchMaterial <com.google.android.material.switchmaterial.SwitchMaterial
android:id="@+id/webtoon_enable_zoom_out" android:id="@+id/webtoon_enable_zoom_out"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="4dp" android:layout_marginTop="4dp"
android:text="@string/enable_zoom_out" android:text="@string/enable_zoom_out"
android:textColor="?android:attr/textColorPrimary" android:textColor="?android:attr/textColorPrimary"
app:layout_constraintTop_toBottomOf="@id/webtoon_side_padding" /> app:layout_constraintTop_toBottomOf="@id/webtoon_side_padding" />
<androidx.constraintlayout.widget.Group <androidx.constraintlayout.widget.Group
android:id="@+id/pager_prefs_group" android:id="@+id/pager_prefs_group"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:visibility="gone" android:visibility="gone"
app:constraint_referenced_ids="scale_type,zoom_start,crop_borders,page_transitions" app:constraint_referenced_ids="scale_type,zoom_start,crop_borders,page_transitions"
tools:visibility="visible" /> tools:visibility="visible" />
<androidx.constraintlayout.widget.Group <androidx.constraintlayout.widget.Group
android:id="@+id/webtoon_prefs_group" android:id="@+id/webtoon_prefs_group"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:visibility="gone" android:visibility="gone"
app:constraint_referenced_ids="crop_borders_webtoon,webtoon_side_padding,webtoon_enable_zoom_out" /> app:constraint_referenced_ids="crop_borders_webtoon,webtoon_side_padding,webtoon_enable_zoom_out" />
</LinearLayout> </LinearLayout>
</androidx.core.widget.NestedScrollView>
</eu.kanade.tachiyomi.ui.reader.settings.ReaderPagedView> </eu.kanade.tachiyomi.ui.reader.settings.ReaderPagedView>