Fixes to tracking sheet

Fix back button for A13+
fix keyboard not moving the sheet (as well as others
Fixed #1576
This commit is contained in:
Jays2Kings 2023-08-02 21:48:31 -04:00
parent 60fcbcc2a3
commit f3f8190bfa
3 changed files with 18 additions and 3 deletions

View file

@ -22,7 +22,7 @@ class TrackSearchItem(val trackSearch: TrackSearch) : AbstractItem<TrackSearchIt
* Returns the layout resource for this item. * Returns the layout resource for this item.
*/ */
override val layoutRes: Int = R.layout.track_search_item override val layoutRes: Int = R.layout.track_search_item
override var identifier = trackSearch.media_id.toLong() override var identifier = trackSearch.media_id
override fun getViewHolder(v: View): ViewHolder { override fun getViewHolder(v: View): ViewHolder {
return ViewHolder(v) return ViewHolder(v)
@ -47,7 +47,9 @@ class TrackSearchItem(val trackSearch: TrackSearch) : AbstractItem<TrackSearchIt
binding.trackSearchSummary.isVisible = track.summary.isNotBlank() binding.trackSearchSummary.isVisible = track.summary.isNotBlank()
binding.trackSearchCover.dispose() binding.trackSearchCover.dispose()
if (track.cover_url.isNotEmpty()) { if (track.cover_url.isNotEmpty()) {
binding.trackSearchCover.load(track.cover_url) binding.trackSearchCover.load(track.cover_url) {
allowHardware(false)
}
} }
if (track.publishing_status.isBlank()) { if (track.publishing_status.isBlank()) {

View file

@ -15,6 +15,7 @@ import android.view.ViewGroup
import android.view.inputmethod.EditorInfo import android.view.inputmethod.EditorInfo
import android.view.inputmethod.InputMethodManager import android.view.inputmethod.InputMethodManager
import android.widget.TextView import android.widget.TextView
import androidx.activity.OnBackPressedCallback
import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatActivity
import androidx.appcompat.widget.PopupMenu import androidx.appcompat.widget.PopupMenu
import androidx.constraintlayout.widget.ConstraintLayout import androidx.constraintlayout.widget.ConstraintLayout
@ -82,6 +83,14 @@ class TrackingBottomSheet(private val controller: MangaDetailsController) :
override var recyclerView: RecyclerView? = binding.trackRecycler override var recyclerView: RecyclerView? = binding.trackRecycler
private val backCallback = object : OnBackPressedCallback(enabled = false) {
override fun handleOnBackPressed() {
if (searchingItem != null) {
hideSearchView()
}
}
}
init { init {
val insets = activity.window.decorView.rootWindowInsetsCompat?.getInsets(systemBars()) val insets = activity.window.decorView.rootWindowInsetsCompat?.getInsets(systemBars())
val height = insets?.bottom ?: 0 val height = insets?.bottom ?: 0
@ -90,7 +99,7 @@ class TrackingBottomSheet(private val controller: MangaDetailsController) :
sheetBehavior.skipCollapsed = true sheetBehavior.skipCollapsed = true
binding.searchCloseButton.setOnClickListener { binding.searchCloseButton.setOnClickListener {
onBackPressed() onBackPressedDispatcher.onBackPressed()
} }
binding.trackSearchRecycler.adapter = adapter binding.trackSearchRecycler.adapter = adapter
@ -99,6 +108,7 @@ class TrackingBottomSheet(private val controller: MangaDetailsController) :
trackItem(position) trackItem(position)
true true
} }
onBackPressedDispatcher.addCallback(backCallback)
searchAdapter.addClickListener<TrackSearchItem.ViewHolder, TrackSearchItem>({ it.binding.linkButton }) { _, _, _, item -> searchAdapter.addClickListener<TrackSearchItem.ViewHolder, TrackSearchItem>({ it.binding.linkButton }) { _, _, _, item ->
activity.openInBrowser(item.trackSearch.tracking_url) activity.openInBrowser(item.trackSearch.tracking_url)
@ -248,6 +258,7 @@ class TrackingBottomSheet(private val controller: MangaDetailsController) :
private fun showSearchView(item: TrackItem) { private fun showSearchView(item: TrackItem) {
searchingItem = item searchingItem = item
backCallback.isEnabled = true
val title = presenter.manga.title val title = presenter.manga.title
sheetBehavior.expand() sheetBehavior.expand()
sheetBehavior.isDraggable = false sheetBehavior.isDraggable = false
@ -265,6 +276,7 @@ class TrackingBottomSheet(private val controller: MangaDetailsController) :
binding.trackRecycler.isVisible = true binding.trackRecycler.isVisible = true
binding.trackSearchConstraintLayout.isVisible = false binding.trackSearchConstraintLayout.isVisible = false
searchingItem = null searchingItem = null
backCallback.isEnabled = false
} }
private fun search(query: String) { private fun search(query: String) {

View file

@ -148,6 +148,7 @@
<style name="BottomSheetDialogTheme" parent="@style/ThemeOverlay.Material3.BottomSheetDialog"> <style name="BottomSheetDialogTheme" parent="@style/ThemeOverlay.Material3.BottomSheetDialog">
<item name="bottomSheetStyle">@style/BottomSheet.Modal</item> <item name="bottomSheetStyle">@style/BottomSheet.Modal</item>
<item name="android:windowSoftInputMode">adjustPan</item>
</style> </style>
<style name="BottomSheet.Modal" parent="Widget.Material3.BottomSheet.Modal"> <style name="BottomSheet.Modal" parent="Widget.Material3.BottomSheet.Modal">