Update bottom sheets

This commit is contained in:
Koitharu
2023-05-31 15:17:24 +03:00
parent 0c132a521e
commit f0a4fa4e95
26 changed files with 377 additions and 263 deletions

View File

@@ -6,7 +6,6 @@ import android.os.Bundle
import android.view.View
import androidx.activity.viewModels
import androidx.core.graphics.Insets
import androidx.core.view.isVisible
import androidx.core.view.updatePadding
import coil.ImageLoader
import com.google.android.material.dialog.MaterialAlertDialogBuilder
@@ -29,6 +28,7 @@ import org.koitharu.kotatsu.scrobbling.common.domain.model.ScrobblingInfo
import org.koitharu.kotatsu.scrobbling.common.ui.config.adapter.ScrobblingMangaAdapter
import org.koitharu.kotatsu.tracker.ui.feed.adapter.FeedAdapter
import javax.inject.Inject
import com.google.android.material.R as materialR
@AndroidEntryPoint
class ScrobblerConfigActivity : BaseActivity<ActivityScrobblerConfigBinding>(),
@@ -115,11 +115,11 @@ class ScrobblerConfigActivity : BaseActivity<ActivityScrobblerConfigBinding>(),
private fun onUserChanged(user: ScrobblerUser?) {
if (user == null) {
viewBinding.imageViewAvatar.disposeImageRequest()
viewBinding.imageViewAvatar.isVisible = false
viewBinding.imageViewAvatar.setImageResource(materialR.drawable.abc_ic_menu_overflow_material)
return
}
viewBinding.imageViewAvatar.isVisible = true
viewBinding.imageViewAvatar.newImageRequest(this, user.avatar)
?.placeholder(R.drawable.bg_badge_empty)
?.enqueueWith(coil)
}

View File

@@ -7,7 +7,6 @@ import android.view.View
import android.view.ViewGroup
import android.widget.Toast
import androidx.appcompat.widget.SearchView
import androidx.core.view.isVisible
import androidx.fragment.app.FragmentManager
import androidx.fragment.app.viewModels
import coil.ImageLoader
@@ -58,6 +57,7 @@ class ScrobblingSelectorSheet :
override fun onViewBindingCreated(binding: SheetScrobblingSelectorBinding, savedInstanceState: Bundle?) {
super.onViewBindingCreated(binding, savedInstanceState)
disableFitToContents()
val listAdapter = ScrobblerSelectorAdapter(viewLifecycleOwner, coil, this, this)
val decoration = ScrobblerMangaSelectionDecoration(binding.root.context)
with(binding.recyclerView) {
@@ -84,9 +84,7 @@ class ScrobblingSelectorSheet :
tab.select()
}
}
viewModel.searchQuery.observe(viewLifecycleOwner) {
binding.headerBar.subtitle = it
}
viewModel.searchQuery.observe(viewLifecycleOwner, ::onSearchQueryChanged)
}
override fun onDestroyView() {
@@ -135,7 +133,7 @@ class ScrobblingSelectorSheet :
return false
}
viewModel.search(query)
requireViewBinding().headerBar.menu.findItem(R.id.action_search)?.collapseActionView()
requireViewBinding().toolbar.menu.findItem(R.id.action_search)?.collapseActionView()
return true
}
@@ -155,10 +153,14 @@ class ScrobblingSelectorSheet :
}
private fun openSearch() {
val menuItem = requireViewBinding().headerBar.menu.findItem(R.id.action_search) ?: return
val menuItem = requireViewBinding().toolbar.menu.findItem(R.id.action_search) ?: return
menuItem.expandActionView()
}
private fun onSearchQueryChanged(query: String?) {
}
private fun onError(e: Throwable) {
Toast.makeText(requireContext(), e.getDisplayMessage(resources), Toast.LENGTH_LONG).show()
if (viewModel.isEmpty) {
@@ -167,8 +169,8 @@ class ScrobblingSelectorSheet :
}
private fun initOptionsMenu() {
requireViewBinding().headerBar.inflateMenu(R.menu.opt_shiki_selector)
val searchMenuItem = requireViewBinding().headerBar.menu.findItem(R.id.action_search)
requireViewBinding().toolbar.inflateMenu(R.menu.opt_shiki_selector)
val searchMenuItem = requireViewBinding().toolbar.menu.findItem(R.id.action_search)
searchMenuItem.setOnActionExpandListener(this)
val searchView = searchMenuItem.actionView as SearchView
searchView.setOnQueryTextListener(this)
@@ -182,10 +184,6 @@ class ScrobblingSelectorSheet :
private fun initTabs() {
val entries = viewModel.availableScrobblers
val tabs = requireViewBinding().tabs
if (entries.size <= 1) {
tabs.isVisible = false
return
}
val selectedId = arguments?.getInt(ARG_SCROBBLER, -1) ?: -1
tabs.removeAllTabs()
tabs.clearOnTabSelectedListeners()
@@ -200,7 +198,6 @@ class ScrobblingSelectorSheet :
tab.select()
}
}
tabs.isVisible = true
}
companion object {