Add functionality to expand manga title on click

This commit is contained in:
Mac135135
2024-07-05 21:23:15 +03:00
committed by Koitharu
parent 81aac0d431
commit 6048cb917e

View File

@@ -3,6 +3,11 @@ package org.koitharu.kotatsu.details.ui
import android.content.Context
import android.content.Intent
import android.graphics.Color
import android.view.MotionEvent
import android.content.ClipData
import android.content.ClipboardManager
import android.view.GestureDetector
import android.view.ViewGroup
import android.os.Bundle
import android.text.style.DynamicDrawableSpan
import android.text.style.ForegroundColorSpan
@@ -123,7 +128,7 @@ class DetailsActivity :
lateinit var tagHighlighter: ListExtraProvider
private val viewModel: DetailsViewModel by viewModels()
private lateinit var gestureDetector: GestureDetector
private lateinit var menuProvider: DetailsMenuProvider
override fun onCreate(savedInstanceState: Bundle?) {
@@ -157,6 +162,32 @@ class DetailsActivity :
viewBinding.containerBottomSheet?.let { sheet ->
onBackPressedDispatcher.addCallback(BottomSheetCollapseCallback(sheet))
}
gestureDetector = GestureDetector(this, object : GestureDetector.SimpleOnGestureListener() {
override fun onSingleTapConfirmed(e: MotionEvent): Boolean {
val tv = viewBinding.textViewTitle
TransitionManager.beginDelayedTransition(tv.parent as ViewGroup)
if (tv.maxLines == 5) {
tv.maxLines = 20 // Expand text
} else {
tv.maxLines = 5 // Collapse text
}
return true
}
override fun onLongPress(e: MotionEvent) {
val clipboardManager = getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager
val clip = ClipData.newPlainText("copied text", viewBinding.textViewTitle.text)
clipboardManager.setPrimaryClip(clip)
Toast.makeText(this@DetailsActivity, "Text copied", Toast.LENGTH_SHORT).show()
}
})
viewBinding.textViewTitle.setOnTouchListener { _, motionEvent ->
gestureDetector.onTouchEvent(motionEvent)
true
}
viewModel.details.filterNotNull().observe(this, ::onMangaUpdated)
viewModel.onMangaRemoved.observeEvent(this, ::onMangaRemoved)