mirror of
https://github.com/tachiyomiorg/tachiyomi.git
synced 2024-12-23 19:51:50 +01:00
Change chapter filters in reader
And some refactoring
This commit is contained in:
parent
bd748f6a62
commit
45161220b8
@ -0,0 +1,50 @@
|
|||||||
|
package eu.kanade.tachiyomi.ui.manga.chapter
|
||||||
|
|
||||||
|
import android.content.Context
|
||||||
|
import android.util.AttributeSet
|
||||||
|
import android.widget.CompoundButton
|
||||||
|
import android.widget.FrameLayout
|
||||||
|
import android.widget.RelativeLayout
|
||||||
|
import eu.kanade.tachiyomi.R
|
||||||
|
import eu.kanade.tachiyomi.data.database.models.Manga
|
||||||
|
import kotlinx.android.synthetic.main.chapter_filter_layout.view.*
|
||||||
|
|
||||||
|
class ChapterFilterLayout @JvmOverloads constructor(context: Context, attrs: AttributeSet? = null) :
|
||||||
|
FrameLayout(context, attrs) {
|
||||||
|
|
||||||
|
init {
|
||||||
|
RelativeLayout.inflate(context, R.layout.chapter_filter_layout, this)
|
||||||
|
show_all.setOnCheckedChangeListener(::checkedFilter)
|
||||||
|
show_read.setOnCheckedChangeListener(::checkedFilter)
|
||||||
|
show_unread.setOnCheckedChangeListener(::checkedFilter)
|
||||||
|
show_download.setOnCheckedChangeListener(::checkedFilter)
|
||||||
|
show_bookmark.setOnCheckedChangeListener(::checkedFilter)
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun checkedFilter(checkBox: CompoundButton, isChecked: Boolean) {
|
||||||
|
if (isChecked) {
|
||||||
|
if (show_all == checkBox) {
|
||||||
|
show_read.isChecked = false
|
||||||
|
show_unread.isChecked = false
|
||||||
|
show_download.isChecked = false
|
||||||
|
show_bookmark.isChecked = false
|
||||||
|
} else {
|
||||||
|
show_all.isChecked = false
|
||||||
|
if (show_read == checkBox) show_unread.isChecked = false
|
||||||
|
else if (show_unread == checkBox) show_read.isChecked = false
|
||||||
|
}
|
||||||
|
} else if (!show_read.isChecked && !show_unread.isChecked && !show_download.isChecked && !show_bookmark.isChecked) {
|
||||||
|
show_all.isChecked = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fun setCheckboxes(manga: Manga) {
|
||||||
|
show_read.isChecked = manga.readFilter == Manga.SHOW_READ
|
||||||
|
show_unread.isChecked = manga.readFilter == Manga.SHOW_UNREAD
|
||||||
|
show_download.isChecked = manga.downloadedFilter == Manga.SHOW_DOWNLOADED
|
||||||
|
show_bookmark.isChecked = manga.bookmarkedFilter == Manga.SHOW_BOOKMARKED
|
||||||
|
|
||||||
|
show_all.isChecked = !(show_read.isChecked || show_unread.isChecked ||
|
||||||
|
show_download.isChecked || show_bookmark.isChecked)
|
||||||
|
}
|
||||||
|
}
|
@ -3,7 +3,6 @@ package eu.kanade.tachiyomi.ui.manga.chapter
|
|||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
import android.widget.CompoundButton
|
|
||||||
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 eu.kanade.tachiyomi.R
|
import eu.kanade.tachiyomi.R
|
||||||
@ -15,6 +14,7 @@ import eu.kanade.tachiyomi.util.view.setBottomEdge
|
|||||||
import eu.kanade.tachiyomi.util.view.setEdgeToEdge
|
import eu.kanade.tachiyomi.util.view.setEdgeToEdge
|
||||||
import eu.kanade.tachiyomi.util.view.visInvisIf
|
import eu.kanade.tachiyomi.util.view.visInvisIf
|
||||||
import eu.kanade.tachiyomi.util.view.visibleIf
|
import eu.kanade.tachiyomi.util.view.visibleIf
|
||||||
|
import kotlinx.android.synthetic.main.chapter_filter_layout.*
|
||||||
import kotlinx.android.synthetic.main.chapter_sort_bottom_sheet.*
|
import kotlinx.android.synthetic.main.chapter_sort_bottom_sheet.*
|
||||||
import kotlin.math.max
|
import kotlin.math.max
|
||||||
|
|
||||||
@ -86,13 +86,7 @@ class ChaptersSortBottomSheet(controller: MangaDetailsController) : BottomSheetD
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun initGeneralPreferences() {
|
private fun initGeneralPreferences() {
|
||||||
show_read.isChecked = presenter.onlyRead()
|
chapter_filter_layout.setCheckboxes(presenter.manga)
|
||||||
show_unread.isChecked = presenter.onlyUnread()
|
|
||||||
show_download.isChecked = presenter.onlyDownloaded()
|
|
||||||
show_bookmark.isChecked = presenter.onlyBookmarked()
|
|
||||||
|
|
||||||
show_all.isChecked = !(show_read.isChecked || show_unread.isChecked ||
|
|
||||||
show_download.isChecked || show_bookmark.isChecked)
|
|
||||||
|
|
||||||
var defPref = presenter.globalSort()
|
var defPref = presenter.globalSort()
|
||||||
sort_group.check(if (presenter.manga.sortDescending(defPref)) R.id.sort_newest else
|
sort_group.check(if (presenter.manga.sortDescending(defPref)) R.id.sort_newest else
|
||||||
@ -124,29 +118,5 @@ class ChaptersSortBottomSheet(controller: MangaDetailsController) : BottomSheetD
|
|||||||
hide_titles.setOnCheckedChangeListener { _, isChecked ->
|
hide_titles.setOnCheckedChangeListener { _, isChecked ->
|
||||||
presenter.hideTitle(isChecked)
|
presenter.hideTitle(isChecked)
|
||||||
}
|
}
|
||||||
|
|
||||||
show_all.setOnCheckedChangeListener(::checkedFilter)
|
|
||||||
show_read.setOnCheckedChangeListener(::checkedFilter)
|
|
||||||
show_unread.setOnCheckedChangeListener(::checkedFilter)
|
|
||||||
show_download.setOnCheckedChangeListener(::checkedFilter)
|
|
||||||
show_bookmark.setOnCheckedChangeListener(::checkedFilter)
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun checkedFilter(checkBox: CompoundButton, isChecked: Boolean) {
|
|
||||||
if (isChecked) {
|
|
||||||
if (show_all == checkBox) {
|
|
||||||
show_read.isChecked = false
|
|
||||||
show_unread.isChecked = false
|
|
||||||
show_download.isChecked = false
|
|
||||||
show_bookmark.isChecked = false
|
|
||||||
} else {
|
|
||||||
show_all.isChecked = false
|
|
||||||
if (show_read == checkBox) show_unread.isChecked = false
|
|
||||||
else if (show_unread == checkBox) show_read.isChecked = false
|
|
||||||
}
|
|
||||||
} else if (!show_read.isChecked && !show_unread.isChecked &&
|
|
||||||
!show_download.isChecked && !show_bookmark.isChecked) {
|
|
||||||
show_all.isChecked = true
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -18,6 +18,7 @@ import eu.kanade.tachiyomi.source.LocalSource
|
|||||||
import eu.kanade.tachiyomi.source.SourceManager
|
import eu.kanade.tachiyomi.source.SourceManager
|
||||||
import eu.kanade.tachiyomi.source.model.Page
|
import eu.kanade.tachiyomi.source.model.Page
|
||||||
import eu.kanade.tachiyomi.ui.base.presenter.BasePresenter
|
import eu.kanade.tachiyomi.ui.base.presenter.BasePresenter
|
||||||
|
import eu.kanade.tachiyomi.ui.reader.chapter.ReaderChapterItem
|
||||||
import eu.kanade.tachiyomi.ui.reader.loader.ChapterLoader
|
import eu.kanade.tachiyomi.ui.reader.loader.ChapterLoader
|
||||||
import eu.kanade.tachiyomi.ui.reader.loader.DownloadPageLoader
|
import eu.kanade.tachiyomi.ui.reader.loader.DownloadPageLoader
|
||||||
import eu.kanade.tachiyomi.ui.reader.model.ReaderChapter
|
import eu.kanade.tachiyomi.ui.reader.model.ReaderChapter
|
||||||
@ -229,8 +230,9 @@ class ReaderPresenter(
|
|||||||
else -> it.source_order.toFloat()
|
else -> it.source_order.toFloat()
|
||||||
}
|
}
|
||||||
}.map {
|
}.map {
|
||||||
ReaderChapterItem(it, manga, it.id ==
|
ReaderChapterItem(
|
||||||
getCurrentChapter()?.chapter?.id ?: chapterId)
|
it, manga, it.id == getCurrentChapter()?.chapter?.id ?: chapterId
|
||||||
|
)
|
||||||
}
|
}
|
||||||
if (!manga.sortDescending(preferences.chaptersDescAsDefault().getOrDefault()))
|
if (!manga.sortDescending(preferences.chaptersDescAsDefault().getOrDefault()))
|
||||||
list.reversed()
|
list.reversed()
|
||||||
@ -239,6 +241,21 @@ class ReaderPresenter(
|
|||||||
return chapterItems
|
return chapterItems
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Removes all filters and requests an UI update.
|
||||||
|
*/
|
||||||
|
fun setFilters(read: Boolean, unread: Boolean, downloaded: Boolean, bookmarked: Boolean) {
|
||||||
|
val manga = manga ?: return
|
||||||
|
manga.readFilter = when {
|
||||||
|
read -> Manga.SHOW_READ
|
||||||
|
unread -> Manga.SHOW_UNREAD
|
||||||
|
else -> Manga.SHOW_ALL
|
||||||
|
}
|
||||||
|
manga.downloadedFilter = if (downloaded) Manga.SHOW_DOWNLOADED else Manga.SHOW_ALL
|
||||||
|
manga.bookmarkedFilter = if (bookmarked) Manga.SHOW_BOOKMARKED else Manga.SHOW_ALL
|
||||||
|
db.updateFlags(manga).executeAsBlocking()
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Initializes this presenter with the given [manga] and [initialChapterId]. This method will
|
* Initializes this presenter with the given [manga] and [initialChapterId]. This method will
|
||||||
* set the chapter loader, view subscriptions and trigger an initial load.
|
* set the chapter loader, view subscriptions and trigger an initial load.
|
||||||
|
@ -0,0 +1,37 @@
|
|||||||
|
package eu.kanade.tachiyomi.ui.reader.chapter
|
||||||
|
|
||||||
|
import android.view.ViewGroup
|
||||||
|
import com.google.android.material.bottomsheet.BottomSheetBehavior
|
||||||
|
import com.google.android.material.bottomsheet.BottomSheetDialog
|
||||||
|
import eu.kanade.tachiyomi.R
|
||||||
|
import eu.kanade.tachiyomi.data.database.models.Manga
|
||||||
|
import eu.kanade.tachiyomi.ui.reader.ReaderActivity
|
||||||
|
import eu.kanade.tachiyomi.util.view.expand
|
||||||
|
import eu.kanade.tachiyomi.util.view.setBottomEdge
|
||||||
|
import eu.kanade.tachiyomi.util.view.setEdgeToEdge
|
||||||
|
import kotlinx.android.synthetic.main.chapter_filter_layout.*
|
||||||
|
import kotlinx.android.synthetic.main.chapter_filter_sheet.*
|
||||||
|
import kotlinx.android.synthetic.main.reader_chapters_sheet.*
|
||||||
|
|
||||||
|
class ChapterFilterSheet(activity: ReaderActivity, manga: Manga) :
|
||||||
|
BottomSheetDialog(activity, R.style.BottomSheetDialogTheme) {
|
||||||
|
|
||||||
|
init {
|
||||||
|
val view = activity.layoutInflater.inflate(R.layout.chapter_filter_sheet, null)
|
||||||
|
setContentView(view)
|
||||||
|
BottomSheetBehavior.from(view.parent as ViewGroup).expand()
|
||||||
|
setEdgeToEdge(activity, view)
|
||||||
|
setBottomEdge(show_bookmark, activity)
|
||||||
|
|
||||||
|
chapter_filter_layout.setCheckboxes(manga)
|
||||||
|
setOnDismissListener {
|
||||||
|
activity.presenter.setFilters(
|
||||||
|
show_read.isChecked,
|
||||||
|
show_unread.isChecked,
|
||||||
|
show_download.isChecked,
|
||||||
|
show_bookmark.isChecked
|
||||||
|
)
|
||||||
|
activity.chapters_bottom_sheet.refreshList()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -1,4 +1,4 @@
|
|||||||
package eu.kanade.tachiyomi.ui.reader
|
package eu.kanade.tachiyomi.ui.reader.chapter
|
||||||
|
|
||||||
import android.graphics.Typeface
|
import android.graphics.Typeface
|
||||||
import android.view.View
|
import android.view.View
|
@ -1,4 +1,4 @@
|
|||||||
package eu.kanade.tachiyomi.ui.reader
|
package eu.kanade.tachiyomi.ui.reader.chapter
|
||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.content.res.ColorStateList
|
import android.content.res.ColorStateList
|
||||||
@ -14,12 +14,16 @@ import com.mikepenz.fastadapter.FastAdapter
|
|||||||
import com.mikepenz.fastadapter.adapters.ItemAdapter
|
import com.mikepenz.fastadapter.adapters.ItemAdapter
|
||||||
import com.mikepenz.fastadapter.listeners.ClickEventHook
|
import com.mikepenz.fastadapter.listeners.ClickEventHook
|
||||||
import eu.kanade.tachiyomi.R
|
import eu.kanade.tachiyomi.R
|
||||||
|
import eu.kanade.tachiyomi.ui.reader.ReaderActivity
|
||||||
|
import eu.kanade.tachiyomi.ui.reader.ReaderPresenter
|
||||||
import eu.kanade.tachiyomi.util.system.dpToPx
|
import eu.kanade.tachiyomi.util.system.dpToPx
|
||||||
import eu.kanade.tachiyomi.util.system.getResourceColor
|
import eu.kanade.tachiyomi.util.system.getResourceColor
|
||||||
import eu.kanade.tachiyomi.util.system.launchUI
|
import eu.kanade.tachiyomi.util.system.launchUI
|
||||||
import eu.kanade.tachiyomi.util.view.collapse
|
import eu.kanade.tachiyomi.util.view.collapse
|
||||||
import eu.kanade.tachiyomi.util.view.expand
|
import eu.kanade.tachiyomi.util.view.expand
|
||||||
import eu.kanade.tachiyomi.util.view.isExpanded
|
import eu.kanade.tachiyomi.util.view.isExpanded
|
||||||
|
import eu.kanade.tachiyomi.util.view.visInvisIf
|
||||||
|
import eu.kanade.tachiyomi.util.view.visibleIf
|
||||||
import kotlinx.android.synthetic.main.reader_chapters_sheet.view.*
|
import kotlinx.android.synthetic.main.reader_chapters_sheet.view.*
|
||||||
import kotlin.math.max
|
import kotlin.math.max
|
||||||
import kotlin.math.min
|
import kotlin.math.min
|
||||||
@ -49,6 +53,10 @@ class ReaderChapterSheet @JvmOverloads constructor(context: Context, attrs: Attr
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
filter_button.setOnClickListener {
|
||||||
|
ChapterFilterSheet(activity, presenter.manga!!).show()
|
||||||
|
}
|
||||||
|
|
||||||
post {
|
post {
|
||||||
chapter_recycler.alpha = if (sheetBehavior.isExpanded()) 1f else 0f
|
chapter_recycler.alpha = if (sheetBehavior.isExpanded()) 1f else 0f
|
||||||
}
|
}
|
||||||
@ -57,6 +65,10 @@ class ReaderChapterSheet @JvmOverloads constructor(context: Context, attrs: Attr
|
|||||||
override fun onSlide(bottomSheet: View, progress: Float) {
|
override fun onSlide(bottomSheet: View, progress: Float) {
|
||||||
pill.alpha = (1 - max(0f, progress)) * 0.25f
|
pill.alpha = (1 - max(0f, progress)) * 0.25f
|
||||||
val trueProgress = max(progress, 0f)
|
val trueProgress = max(progress, 0f)
|
||||||
|
chapters_button.alpha = 1 - trueProgress
|
||||||
|
filter_button.alpha = trueProgress
|
||||||
|
filter_button.visibleIf(filter_button.alpha > 0)
|
||||||
|
chapters_button.visInvisIf(chapters_button.alpha > 0)
|
||||||
backgroundTintList =
|
backgroundTintList =
|
||||||
ColorStateList.valueOf(lerpColor(primary, fullPrimary, trueProgress))
|
ColorStateList.valueOf(lerpColor(primary, fullPrimary, trueProgress))
|
||||||
chapter_recycler.alpha = trueProgress
|
chapter_recycler.alpha = trueProgress
|
||||||
@ -74,11 +86,17 @@ class ReaderChapterSheet @JvmOverloads constructor(context: Context, attrs: Attr
|
|||||||
adapter?.getPosition(presenter.getCurrentChapter()?.chapter?.id ?: 0L) ?: 0,
|
adapter?.getPosition(presenter.getCurrentChapter()?.chapter?.id ?: 0L) ?: 0,
|
||||||
chapter_recycler.height / 2 - 30.dpToPx
|
chapter_recycler.height / 2 - 30.dpToPx
|
||||||
)
|
)
|
||||||
|
chapters_button.alpha = 1f
|
||||||
|
filter_button.alpha = 0f
|
||||||
}
|
}
|
||||||
if (state == BottomSheetBehavior.STATE_EXPANDED) {
|
if (state == BottomSheetBehavior.STATE_EXPANDED) {
|
||||||
chapter_recycler.alpha = 1f
|
chapter_recycler.alpha = 1f
|
||||||
|
chapters_button.alpha = 0f
|
||||||
|
filter_button.alpha = 1f
|
||||||
if (activity.sheetManageNavColor) activity.window.navigationBarColor = primary
|
if (activity.sheetManageNavColor) activity.window.navigationBarColor = primary
|
||||||
}
|
}
|
||||||
|
filter_button.visibleIf(state != BottomSheetBehavior.STATE_COLLAPSED)
|
||||||
|
chapters_button.visInvisIf(state != BottomSheetBehavior.STATE_EXPANDED)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
55
app/src/main/res/layout/chapter_filter_layout.xml
Normal file
55
app/src/main/res/layout/chapter_filter_layout.xml
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
<com.google.android.material.textview.MaterialTextView
|
||||||
|
style="@style/TextAppearance.MaterialComponents.Headline6"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="12dp"
|
||||||
|
android:paddingStart="16dp"
|
||||||
|
android:paddingEnd="12dp"
|
||||||
|
android:text="@string/filter" />
|
||||||
|
|
||||||
|
<com.google.android.material.checkbox.MaterialCheckBox
|
||||||
|
android:id="@+id/show_all"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginStart="12dp"
|
||||||
|
android:layout_marginEnd="12dp"
|
||||||
|
android:text="@string/show_all" />
|
||||||
|
|
||||||
|
<com.google.android.material.checkbox.MaterialCheckBox
|
||||||
|
android:id="@+id/show_read"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginStart="12dp"
|
||||||
|
android:layout_marginEnd="12dp"
|
||||||
|
android:text="@string/show_read_chapters" />
|
||||||
|
|
||||||
|
<com.google.android.material.checkbox.MaterialCheckBox
|
||||||
|
android:id="@+id/show_unread"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginStart="12dp"
|
||||||
|
android:layout_marginEnd="12dp"
|
||||||
|
android:text="@string/show_unread_chapters" />
|
||||||
|
|
||||||
|
<com.google.android.material.checkbox.MaterialCheckBox
|
||||||
|
android:id="@+id/show_download"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginStart="12dp"
|
||||||
|
android:layout_marginEnd="12dp"
|
||||||
|
android:text="@string/show_downloaded_chapters" />
|
||||||
|
|
||||||
|
<com.google.android.material.checkbox.MaterialCheckBox
|
||||||
|
android:id="@+id/show_bookmark"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginStart="12dp"
|
||||||
|
android:layout_marginEnd="12dp"
|
||||||
|
android:text="@string/show_bookmarked_chapters" />
|
||||||
|
</LinearLayout>
|
16
app/src/main/res/layout/chapter_filter_sheet.xml
Normal file
16
app/src/main/res/layout/chapter_filter_sheet.xml
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:background="@drawable/bottom_sheet_rounded_background">
|
||||||
|
|
||||||
|
<androidx.core.widget.NestedScrollView
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content">
|
||||||
|
|
||||||
|
<eu.kanade.tachiyomi.ui.manga.chapter.ChapterFilterLayout
|
||||||
|
android:id="@+id/chapter_filter_layout"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content" />
|
||||||
|
</androidx.core.widget.NestedScrollView>
|
||||||
|
</FrameLayout>
|
@ -3,8 +3,8 @@
|
|||||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
android:id="@+id/display_bottom_sheet"
|
android:id="@+id/display_bottom_sheet"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:background="@drawable/bottom_sheet_rounded_background"
|
android:layout_height="wrap_content"
|
||||||
android:layout_height="wrap_content">
|
android:background="@drawable/bottom_sheet_rounded_background">
|
||||||
|
|
||||||
<androidx.core.widget.NestedScrollView
|
<androidx.core.widget.NestedScrollView
|
||||||
android:id="@+id/settings_scroll_view"
|
android:id="@+id/settings_scroll_view"
|
||||||
@ -23,8 +23,8 @@
|
|||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:orientation="horizontal"
|
android:layout_height="wrap_content"
|
||||||
android:layout_height="wrap_content">
|
android:orientation="horizontal">
|
||||||
|
|
||||||
<com.google.android.material.textview.MaterialTextView
|
<com.google.android.material.textview.MaterialTextView
|
||||||
style="@style/TextAppearance.MaterialComponents.Headline6"
|
style="@style/TextAppearance.MaterialComponents.Headline6"
|
||||||
@ -66,54 +66,10 @@
|
|||||||
android:text="@string/oldest_first" />
|
android:text="@string/oldest_first" />
|
||||||
</RadioGroup>
|
</RadioGroup>
|
||||||
|
|
||||||
<com.google.android.material.textview.MaterialTextView
|
<eu.kanade.tachiyomi.ui.manga.chapter.ChapterFilterLayout
|
||||||
style="@style/TextAppearance.MaterialComponents.Headline6"
|
android:id="@+id/chapter_filter_layout"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content" />
|
||||||
android:layout_marginTop="12dp"
|
|
||||||
android:paddingStart="16dp"
|
|
||||||
android:paddingEnd="12dp"
|
|
||||||
android:text="@string/filter" />
|
|
||||||
|
|
||||||
<com.google.android.material.checkbox.MaterialCheckBox
|
|
||||||
android:id="@+id/show_all"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_marginStart="12dp"
|
|
||||||
android:layout_marginEnd="12dp"
|
|
||||||
android:text="@string/show_all" />
|
|
||||||
|
|
||||||
<com.google.android.material.checkbox.MaterialCheckBox
|
|
||||||
android:id="@+id/show_read"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_marginStart="12dp"
|
|
||||||
android:layout_marginEnd="12dp"
|
|
||||||
android:text="@string/show_read_chapters" />
|
|
||||||
|
|
||||||
<com.google.android.material.checkbox.MaterialCheckBox
|
|
||||||
android:id="@+id/show_unread"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_marginStart="12dp"
|
|
||||||
android:layout_marginEnd="12dp"
|
|
||||||
android:text="@string/show_unread_chapters" />
|
|
||||||
|
|
||||||
<com.google.android.material.checkbox.MaterialCheckBox
|
|
||||||
android:id="@+id/show_download"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_marginStart="12dp"
|
|
||||||
android:layout_marginEnd="12dp"
|
|
||||||
android:text="@string/show_downloaded_chapters" />
|
|
||||||
|
|
||||||
<com.google.android.material.checkbox.MaterialCheckBox
|
|
||||||
android:id="@+id/show_bookmark"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_marginStart="12dp"
|
|
||||||
android:layout_marginEnd="12dp"
|
|
||||||
android:text="@string/show_bookmarked_chapters" />
|
|
||||||
|
|
||||||
<com.google.android.material.textview.MaterialTextView
|
<com.google.android.material.textview.MaterialTextView
|
||||||
style="@style/TextAppearance.MaterialComponents.Headline6"
|
style="@style/TextAppearance.MaterialComponents.Headline6"
|
||||||
@ -160,12 +116,12 @@
|
|||||||
android:id="@+id/pill"
|
android:id="@+id/pill"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_gravity="center|top"
|
||||||
android:layout_marginTop="5dp"
|
android:layout_marginTop="5dp"
|
||||||
android:alpha="0.25"
|
android:alpha="0.25"
|
||||||
android:contentDescription="@string/drag_handle"
|
android:contentDescription="@string/drag_handle"
|
||||||
android:src="@drawable/draggable_pill"
|
android:src="@drawable/draggable_pill"
|
||||||
android:tint="?android:attr/textColorPrimary"
|
android:tint="?android:attr/textColorPrimary" />
|
||||||
android:layout_gravity="center|top"/>
|
|
||||||
|
|
||||||
<ImageView
|
<ImageView
|
||||||
android:id="@+id/close_button"
|
android:id="@+id/close_button"
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<eu.kanade.tachiyomi.ui.reader.ReaderChapterSheet xmlns:android="http://schemas.android.com/apk/res/android"
|
<eu.kanade.tachiyomi.ui.reader.chapter.ReaderChapterSheet xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
xmlns:tools="http://schemas.android.com/tools"
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
android:id="@+id/chapters_bottom_sheet"
|
android:id="@+id/chapters_bottom_sheet"
|
||||||
@ -14,7 +14,7 @@
|
|||||||
<androidx.constraintlayout.widget.ConstraintLayout
|
<androidx.constraintlayout.widget.ConstraintLayout
|
||||||
android:id="@+id/topbar_layout"
|
android:id="@+id/topbar_layout"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="?attr/actionBarSize"
|
||||||
android:clickable="true"
|
android:clickable="true"
|
||||||
android:focusable="true">
|
android:focusable="true">
|
||||||
|
|
||||||
@ -31,47 +31,55 @@
|
|||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toTopOf="parent" />
|
app:layout_constraintTop_toTopOf="parent" />
|
||||||
|
|
||||||
<LinearLayout
|
<ImageButton
|
||||||
android:id="@+id/seekbar_layout"
|
android:id="@+id/chapters_button"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="?attr/actionBarSize"
|
android:layout_height="wrap_content"
|
||||||
android:layout_gravity="top"
|
android:background="?selectableItemBackgroundBorderless"
|
||||||
android:orientation="horizontal"
|
android:contentDescription="@string/next"
|
||||||
|
android:padding="@dimen/material_layout_keylines_screen_edge_margin"
|
||||||
|
android:tint="?actionBarTintColor"
|
||||||
|
android:tooltipText="@string/view_chapters"
|
||||||
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toTopOf="parent"
|
||||||
|
app:srcCompat="@drawable/ic_format_list_numbered_24dp" />
|
||||||
|
|
||||||
|
<ImageButton
|
||||||
|
android:id="@+id/filter_button"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:background="?selectableItemBackgroundBorderless"
|
||||||
|
android:contentDescription="@string/next"
|
||||||
|
android:padding="@dimen/material_layout_keylines_screen_edge_margin"
|
||||||
|
android:tint="?actionBarTintColor"
|
||||||
|
android:tooltipText="@string/filter"
|
||||||
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toTopOf="parent"
|
||||||
|
android:alpha="0.0"
|
||||||
|
app:srcCompat="@drawable/ic_filter_list_24dp" />
|
||||||
|
|
||||||
|
<eu.kanade.tachiyomi.ui.reader.ReaderSeekBar
|
||||||
|
android:id="@+id/page_seekbar"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
|
app:layout_constraintEnd_toStartOf="@id/page_text"
|
||||||
|
app:layout_constraintStart_toEndOf="@id/chapters_button"
|
||||||
|
app:layout_constraintTop_toTopOf="parent" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/page_text"
|
||||||
|
android:layout_width="100dp"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:gravity="center"
|
||||||
|
android:textColor="?actionBarTintColor"
|
||||||
|
android:textSize="15sp"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintTop_toTopOf="parent"
|
||||||
app:layout_constraintTop_toTopOf="parent">
|
tools:text="100 / 105" />
|
||||||
|
|
||||||
<ImageButton
|
|
||||||
android:id="@+id/chapters_button"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:background="?selectableItemBackgroundBorderless"
|
|
||||||
android:contentDescription="@string/next"
|
|
||||||
android:padding="@dimen/material_layout_keylines_screen_edge_margin"
|
|
||||||
android:tint="?actionBarTintColor"
|
|
||||||
android:tooltipText="@string/view_chapters"
|
|
||||||
app:srcCompat="@drawable/ic_format_list_numbered_24dp" />
|
|
||||||
|
|
||||||
<!--
|
|
||||||
Wonky way of setting height due to issues with horizontally centering the thumb in Android 5.
|
|
||||||
See https://stackoverflow.com/questions/15701767/android-thumb-is-not-centered-in-seekbar
|
|
||||||
-->
|
|
||||||
<eu.kanade.tachiyomi.ui.reader.ReaderSeekBar
|
|
||||||
android:id="@+id/page_seekbar"
|
|
||||||
android:layout_width="0dp"
|
|
||||||
android:layout_height="match_parent"
|
|
||||||
android:layout_weight="1" />
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/page_text"
|
|
||||||
android:layout_width="100dp"
|
|
||||||
android:layout_height="match_parent"
|
|
||||||
android:gravity="center"
|
|
||||||
android:textColor="?actionBarTintColor"
|
|
||||||
android:textSize="15sp"
|
|
||||||
tools:text="100 / 105" />
|
|
||||||
</LinearLayout>
|
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
|
|
||||||
<androidx.recyclerview.widget.RecyclerView
|
<androidx.recyclerview.widget.RecyclerView
|
||||||
@ -82,4 +90,4 @@
|
|||||||
android:background="@android:color/transparent"
|
android:background="@android:color/transparent"
|
||||||
android:clipToPadding="false"
|
android:clipToPadding="false"
|
||||||
tools:listitem="@layout/reader_chapter_item" />
|
tools:listitem="@layout/reader_chapter_item" />
|
||||||
</eu.kanade.tachiyomi.ui.reader.ReaderChapterSheet>
|
</eu.kanade.tachiyomi.ui.reader.chapter.ReaderChapterSheet>
|
Loading…
Reference in New Issue
Block a user