mirror of
https://github.com/tachiyomiorg/tachiyomi.git
synced 2024-12-24 03:41:54 +01:00
Made description text selectable
+ fixes to when set default chapter sort should show
This commit is contained in:
parent
3ccaf92770
commit
0bcd8f2f68
@ -36,9 +36,9 @@ interface Manga : SManga {
|
|||||||
chapter_flags = chapter_flags and mask.inv() or (flag and mask)
|
chapter_flags = chapter_flags and mask.inv() or (flag and mask)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun sortDescending(): Boolean {
|
fun sortDescending(): Boolean = chapter_flags and SORT_MASK == SORT_DESC
|
||||||
return chapter_flags and SORT_MASK == SORT_DESC
|
|
||||||
}
|
fun usesLocalSort(): Boolean = chapter_flags and SORT_SELF_MASK == SORT_LOCAL
|
||||||
|
|
||||||
fun sortDescending(defaultDesc: Boolean): Boolean {
|
fun sortDescending(defaultDesc: Boolean): Boolean {
|
||||||
return if (chapter_flags and SORT_SELF_MASK == SORT_GLOBAL) defaultDesc
|
return if (chapter_flags and SORT_SELF_MASK == SORT_GLOBAL) defaultDesc
|
||||||
|
@ -218,6 +218,7 @@ class MangaDetailsController : BaseController,
|
|||||||
array.recycle()
|
array.recycle()
|
||||||
val offset = 10.dpToPx
|
val offset = 10.dpToPx
|
||||||
var statusBarHeight = -1
|
var statusBarHeight = -1
|
||||||
|
swipe_refresh.setDistanceToTriggerSync(70.dpToPx)
|
||||||
|
|
||||||
recycler.doOnApplyWindowInsets { v, insets, _ ->
|
recycler.doOnApplyWindowInsets { v, insets, _ ->
|
||||||
headerHeight = appbarHeight + insets.systemWindowInsetTop
|
headerHeight = appbarHeight + insets.systemWindowInsetTop
|
||||||
|
@ -3,6 +3,7 @@ package eu.kanade.tachiyomi.ui.manga
|
|||||||
import android.annotation.SuppressLint
|
import android.annotation.SuppressLint
|
||||||
import android.content.res.ColorStateList
|
import android.content.res.ColorStateList
|
||||||
import android.graphics.Color
|
import android.graphics.Color
|
||||||
|
import android.view.MotionEvent
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import androidx.constraintlayout.widget.ConstraintLayout
|
import androidx.constraintlayout.widget.ConstraintLayout
|
||||||
import androidx.core.content.ContextCompat
|
import androidx.core.content.ContextCompat
|
||||||
@ -25,6 +26,7 @@ import eu.kanade.tachiyomi.util.view.resetStrokeColor
|
|||||||
import eu.kanade.tachiyomi.util.view.updateLayoutParams
|
import eu.kanade.tachiyomi.util.view.updateLayoutParams
|
||||||
import eu.kanade.tachiyomi.util.view.visible
|
import eu.kanade.tachiyomi.util.view.visible
|
||||||
import eu.kanade.tachiyomi.util.view.visibleIf
|
import eu.kanade.tachiyomi.util.view.visibleIf
|
||||||
|
import kotlinx.android.synthetic.main.manga_details_controller.*
|
||||||
import kotlinx.android.synthetic.main.manga_header_item.*
|
import kotlinx.android.synthetic.main.manga_header_item.*
|
||||||
import java.util.Locale
|
import java.util.Locale
|
||||||
|
|
||||||
@ -41,8 +43,21 @@ class MangaHeaderHolder(
|
|||||||
}
|
}
|
||||||
more_button.setOnClickListener { expandDesc() }
|
more_button.setOnClickListener { expandDesc() }
|
||||||
manga_summary.setOnClickListener { expandDesc() }
|
manga_summary.setOnClickListener { expandDesc() }
|
||||||
|
manga_summary.setOnLongClickListener {
|
||||||
|
if (manga_summary.isTextSelectable && !adapter.recyclerView.canScrollVertically(-1)) {
|
||||||
|
(adapter.delegate as MangaDetailsController).swipe_refresh.isEnabled = false
|
||||||
|
}
|
||||||
|
false
|
||||||
|
}
|
||||||
|
manga_summary.setOnTouchListener { _, event ->
|
||||||
|
if (event.actionMasked == MotionEvent.ACTION_UP)
|
||||||
|
(adapter.delegate as MangaDetailsController).swipe_refresh.isEnabled = true
|
||||||
|
false
|
||||||
|
}
|
||||||
less_button.setOnClickListener {
|
less_button.setOnClickListener {
|
||||||
|
manga_summary.setTextIsSelectable(false)
|
||||||
manga_summary.maxLines = 3
|
manga_summary.maxLines = 3
|
||||||
|
manga_summary.setOnClickListener { expandDesc() }
|
||||||
manga_genres_tags.gone()
|
manga_genres_tags.gone()
|
||||||
less_button.gone()
|
less_button.gone()
|
||||||
more_button_group.visible()
|
more_button_group.visible()
|
||||||
@ -77,6 +92,7 @@ class MangaHeaderHolder(
|
|||||||
private fun expandDesc() {
|
private fun expandDesc() {
|
||||||
if (more_button.visibility == View.VISIBLE) {
|
if (more_button.visibility == View.VISIBLE) {
|
||||||
manga_summary.maxLines = Integer.MAX_VALUE
|
manga_summary.maxLines = Integer.MAX_VALUE
|
||||||
|
manga_summary.setTextIsSelectable(true)
|
||||||
manga_genres_tags.visible()
|
manga_genres_tags.visible()
|
||||||
less_button.visible()
|
less_button.visible()
|
||||||
more_button_group.gone()
|
more_button_group.gone()
|
||||||
|
@ -34,7 +34,7 @@ class ChaptersSortBottomSheet(controller: MangaDetailsController) : BottomSheetD
|
|||||||
sheetBehavior = BottomSheetBehavior.from(view.parent as ViewGroup)
|
sheetBehavior = BottomSheetBehavior.from(view.parent as ViewGroup)
|
||||||
setEdgeToEdge(activity, view)
|
setEdgeToEdge(activity, view)
|
||||||
val height = activity.window.decorView.rootWindowInsets.systemWindowInsetBottom
|
val height = activity.window.decorView.rootWindowInsets.systemWindowInsetBottom
|
||||||
sheetBehavior.peekHeight = 380.dpToPx + height
|
sheetBehavior.peekHeight = 415.dpToPx + height
|
||||||
|
|
||||||
sheetBehavior.addBottomSheetCallback(object : BottomSheetBehavior.BottomSheetCallback() {
|
sheetBehavior.addBottomSheetCallback(object : BottomSheetBehavior.BottomSheetCallback() {
|
||||||
override fun onSlide(bottomSheet: View, progress: Float) { }
|
override fun onSlide(bottomSheet: View, progress: Float) { }
|
||||||
@ -94,10 +94,12 @@ class ChaptersSortBottomSheet(controller: MangaDetailsController) : BottomSheetD
|
|||||||
sort_method_group.check(if (presenter.manga.sorting == Manga.SORTING_SOURCE) R.id.sort_by_source else
|
sort_method_group.check(if (presenter.manga.sorting == Manga.SORTING_SOURCE) R.id.sort_by_source else
|
||||||
R.id.sort_by_number)
|
R.id.sort_by_number)
|
||||||
|
|
||||||
set_as_default_sort.visInvisIf(defPref != presenter.manga.sortDescending())
|
set_as_default_sort.visInvisIf(defPref != presenter.manga.sortDescending() &&
|
||||||
|
presenter.manga.usesLocalSort())
|
||||||
sort_group.setOnCheckedChangeListener { _, checkedId ->
|
sort_group.setOnCheckedChangeListener { _, checkedId ->
|
||||||
presenter.setSortOrder(checkedId == R.id.sort_newest)
|
presenter.setSortOrder(checkedId == R.id.sort_newest)
|
||||||
set_as_default_sort.visInvisIf(defPref != presenter.manga.sortDescending())
|
set_as_default_sort.visInvisIf(defPref != presenter.manga.sortDescending() &&
|
||||||
|
presenter.manga.usesLocalSort())
|
||||||
}
|
}
|
||||||
|
|
||||||
set_as_default_sort.setOnClickListener {
|
set_as_default_sort.setOnClickListener {
|
||||||
|
@ -18,7 +18,6 @@
|
|||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:clipToPadding="false"
|
android:clipToPadding="false"
|
||||||
android:descendantFocusability="blocksDescendants"
|
|
||||||
android:nestedScrollingEnabled="false"
|
android:nestedScrollingEnabled="false"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
@ -228,7 +228,6 @@
|
|||||||
android:clickable="true"
|
android:clickable="true"
|
||||||
android:focusable="true"
|
android:focusable="true"
|
||||||
android:maxLines="3"
|
android:maxLines="3"
|
||||||
android:textIsSelectable="false"
|
|
||||||
app:layout_constraintBottom_toTopOf="@id/manga_genres_tags"
|
app:layout_constraintBottom_toTopOf="@id/manga_genres_tags"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
Loading…
Reference in New Issue
Block a user