cardToolbar -> searchToolbar

been waiting for the big tb merge for this change
This commit is contained in:
Jays2Kings 2022-04-21 02:03:26 -04:00
parent 0c5b37d42b
commit e3b4918051
15 changed files with 94 additions and 94 deletions

View file

@ -36,7 +36,7 @@ import kotlin.math.roundToInt
class ExpandedAppBarLayout@JvmOverloads constructor(context: Context, attrs: AttributeSet? = null) : class ExpandedAppBarLayout@JvmOverloads constructor(context: Context, attrs: AttributeSet? = null) :
AppBarLayout(context, attrs) { AppBarLayout(context, attrs) {
var cardToolbar: FloatingToolbar? = null var searchToolbar: FloatingToolbar? = null
var cardFrame: FrameLayout? = null var cardFrame: FrameLayout? = null
var mainToolbar: CenteredToolbar? = null var mainToolbar: CenteredToolbar? = null
var bigTitleView: TextView? = null var bigTitleView: TextView? = null
@ -177,7 +177,7 @@ class ExpandedAppBarLayout@JvmOverloads constructor(context: Context, attrs: Att
override fun onFinishInflate() { override fun onFinishInflate() {
super.onFinishInflate() super.onFinishInflate()
bigTitleView = findViewById(R.id.big_title) bigTitleView = findViewById(R.id.big_title)
cardToolbar = findViewById(R.id.card_toolbar) searchToolbar = findViewById(R.id.search_toolbar)
mainToolbar = findViewById(R.id.toolbar) mainToolbar = findViewById(R.id.toolbar)
bigView = findViewById(R.id.big_toolbar) bigView = findViewById(R.id.big_toolbar)
cardFrame = findViewById(R.id.card_frame) cardFrame = findViewById(R.id.card_frame)
@ -328,7 +328,7 @@ class ExpandedAppBarLayout@JvmOverloads constructor(context: Context, attrs: Att
val useSearchToolbar = mainToolbar.alpha <= 0.025f val useSearchToolbar = mainToolbar.alpha <= 0.025f
val idle = RecyclerView.SCROLL_STATE_IDLE val idle = RecyclerView.SCROLL_STATE_IDLE
if (if (useSearchToolbar) -y >= height || recyclerView?.scrollState ?: idle <= idle || context.isTablet() if (if (useSearchToolbar) -y >= height || recyclerView?.scrollState ?: idle <= idle || context.isTablet()
else mainActivity.currentToolbar == cardToolbar else mainActivity.currentToolbar == searchToolbar
) { ) {
useSearchToolbarForMenu(useSearchToolbar) useSearchToolbarForMenu(useSearchToolbar)
} }
@ -373,12 +373,12 @@ class ExpandedAppBarLayout@JvmOverloads constructor(context: Context, attrs: Att
val mainActivity = mainActivity ?: return val mainActivity = mainActivity ?: return
if (lockYPos) return if (lockYPos) return
if ((showCardTB || toolbarMode == ToolbarState.SEARCH_ONLY) && cardFrame?.isVisible == true) { if ((showCardTB || toolbarMode == ToolbarState.SEARCH_ONLY) && cardFrame?.isVisible == true) {
if (mainActivity.currentToolbar != cardToolbar) { if (mainActivity.currentToolbar != searchToolbar) {
mainActivity.setFloatingToolbar(true, showSearchAnyway = true) mainActivity.setFloatingToolbar(true, showSearchAnyway = true)
} else { } else {
mainActivity.setSearchTBMenuIfInvalid() mainActivity.setSearchTBMenuIfInvalid()
} }
if (mainActivity.currentToolbar == cardToolbar) { if (mainActivity.currentToolbar == searchToolbar) {
if (toolbarMode == ToolbarState.EXPANDED) { if (toolbarMode == ToolbarState.EXPANDED) {
mainToolbar?.isInvisible = true mainToolbar?.isInvisible = true
} }

View file

@ -136,7 +136,7 @@ abstract class BaseController<VB : ViewBinding>(bundle: Bundle? = null) :
setOnActionExpandListener( setOnActionExpandListener(
object : MenuItem.OnActionExpandListener { object : MenuItem.OnActionExpandListener {
override fun onMenuItemActionExpand(item: MenuItem): Boolean { override fun onMenuItemActionExpand(item: MenuItem): Boolean {
hideItemsIfExpanded(item, activityBinding?.cardToolbar?.menu, true) hideItemsIfExpanded(item, activityBinding?.searchToolbar?.menu, true)
return onExpand?.invoke(item) ?: true return onExpand?.invoke(item) ?: true
} }

View file

@ -407,9 +407,9 @@ class LibraryController(
if (isBindingInitialized && !singleCategory && presenter.showAllCategories && if (isBindingInitialized && !singleCategory && presenter.showAllCategories &&
!binding.headerTitle.text.isNullOrBlank() && !binding.recyclerCover.isClickable !binding.headerTitle.text.isNullOrBlank() && !binding.recyclerCover.isClickable
) { ) {
activityBinding?.cardToolbar?.subtitle = binding.headerTitle.text.toString() activityBinding?.searchToolbar?.subtitle = binding.headerTitle.text.toString()
} else { } else {
activityBinding?.cardToolbar?.subtitle = null activityBinding?.searchToolbar?.subtitle = null
} }
} }
@ -545,7 +545,7 @@ class LibraryController(
showCategories(show = false, closeSearch = true) showCategories(show = false, closeSearch = true)
} }
binding.categoryRecycler.setOnTouchListener { _, _ -> binding.categoryRecycler.setOnTouchListener { _, _ ->
val searchView = activityBinding?.cardToolbar?.menu?.findItem(R.id.action_search)?.actionView val searchView = activityBinding?.searchToolbar?.menu?.findItem(R.id.action_search)?.actionView
?: return@setOnTouchListener false ?: return@setOnTouchListener false
val imm = activity?.getSystemService(Context.INPUT_METHOD_SERVICE) as? InputMethodManager val imm = activity?.getSystemService(Context.INPUT_METHOD_SERVICE) as? InputMethodManager
imm!!.hideSoftInputFromWindow(searchView.windowToken, 0) imm!!.hideSoftInputFromWindow(searchView.windowToken, 0)
@ -565,7 +565,7 @@ class LibraryController(
swipeRefreshLayout = binding.swipeRefresh, swipeRefreshLayout = binding.swipeRefresh,
afterInsets = { insets -> afterInsets = { insets ->
binding.categoryRecycler.updateLayoutParams<ViewGroup.MarginLayoutParams> { binding.categoryRecycler.updateLayoutParams<ViewGroup.MarginLayoutParams> {
topMargin = insets.getInsets(systemBars()).top + (activityBinding?.cardToolbar?.height ?: 0) + 12.dpToPx topMargin = insets.getInsets(systemBars()).top + (activityBinding?.searchToolbar?.height ?: 0) + 12.dpToPx
} }
updateSmallerViewsTopMargins() updateSmallerViewsTopMargins()
binding.headerCard.updateLayoutParams<ViewGroup.MarginLayoutParams> { binding.headerCard.updateLayoutParams<ViewGroup.MarginLayoutParams> {
@ -710,7 +710,7 @@ class LibraryController(
3 -> showGroupOptions() 3 -> showGroupOptions()
2 -> showDisplayOptions() 2 -> showDisplayOptions()
1 -> if (canCollapseOrExpandCategory() != null) presenter.toggleAllCategoryVisibility() 1 -> if (canCollapseOrExpandCategory() != null) presenter.toggleAllCategoryVisibility()
else -> activityBinding?.cardToolbar?.menu?.performIdentifierAction( else -> activityBinding?.searchToolbar?.menu?.performIdentifierAction(
R.id.action_search, R.id.action_search,
0 0
) )
@ -954,11 +954,11 @@ class LibraryController(
singleCategory = presenter.categories.size <= 1 singleCategory = presenter.categories.size <= 1
if (preferences.showLibrarySearchSuggestions().get()) { if (preferences.showLibrarySearchSuggestions().get()) {
activityBinding?.cardToolbar?.setOnLongClickListener { activityBinding?.searchToolbar?.setOnLongClickListener {
val suggestion = preferences.librarySearchSuggestion().get() val suggestion = preferences.librarySearchSuggestion().get()
if (suggestion.isNotBlank()) { if (suggestion.isNotBlank()) {
val searchItem = activityBinding?.cardToolbar?.searchItem val searchItem = activityBinding?.searchToolbar?.searchItem
val searchView = activityBinding?.cardToolbar?.searchView val searchView = activityBinding?.searchToolbar?.searchView
?: return@setOnLongClickListener false ?: return@setOnLongClickListener false
searchItem?.expandActionView() searchItem?.expandActionView()
searchView.setQuery(suggestion.removeSuffix(""), false) searchView.setQuery(suggestion.removeSuffix(""), false)
@ -974,7 +974,7 @@ class LibraryController(
if (binding.filterBottomSheet.filterBottomSheet.sheetBehavior.isHidden()) { if (binding.filterBottomSheet.filterBottomSheet.sheetBehavior.isHidden()) {
binding.filterBottomSheet.filterBottomSheet.isInvisible = true binding.filterBottomSheet.filterBottomSheet.isInvisible = true
} }
activityBinding?.cardToolbar?.setOnLongClickListener(null) activityBinding?.searchToolbar?.setOnLongClickListener(null)
} }
} }
@ -1124,7 +1124,7 @@ class LibraryController(
moveRecyclerViewUp() moveRecyclerViewUp()
} }
if (closeSearch) { if (closeSearch) {
activityBinding?.cardToolbar?.searchItem?.collapseActionView() activityBinding?.searchToolbar?.searchItem?.collapseActionView()
} }
val full = binding.categoryRecycler.height.toFloat() + binding.categoryRecycler.marginTop val full = binding.categoryRecycler.height.toFloat() + binding.categoryRecycler.marginTop
val translateY = if (show) full else 0f val translateY = if (show) full else 0f
@ -1639,12 +1639,12 @@ class LibraryController(
override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) { override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
inflater.inflate(R.menu.library, menu) inflater.inflate(R.menu.library, menu)
val searchItem = activityBinding?.cardToolbar?.searchItem val searchItem = activityBinding?.searchToolbar?.searchItem
val searchView = activityBinding?.cardToolbar?.searchView val searchView = activityBinding?.searchToolbar?.searchView
activityBinding?.cardToolbar?.setQueryHint(resources?.getString(R.string.library_search_hint), query.isEmpty()) activityBinding?.searchToolbar?.setQueryHint(resources?.getString(R.string.library_search_hint), query.isEmpty())
if (query.isNotEmpty()) { if (query.isNotEmpty()) {
if (activityBinding?.cardToolbar?.isSearchExpanded != true) { if (activityBinding?.searchToolbar?.isSearchExpanded != true) {
searchItem?.expandActionView() searchItem?.expandActionView()
searchView?.setQuery(query, true) searchView?.setQuery(query, true)
searchView?.clearFocus() searchView?.clearFocus()
@ -1652,11 +1652,11 @@ class LibraryController(
searchView?.setQuery(query, false) searchView?.setQuery(query, false)
} }
search(query) search(query)
} else if (activityBinding?.cardToolbar?.isSearchExpanded == true) { } else if (activityBinding?.searchToolbar?.isSearchExpanded == true) {
searchItem?.collapseActionView() searchItem?.collapseActionView()
} }
setOnQueryTextChangeListener(activityBinding?.cardToolbar?.searchView) { setOnQueryTextChangeListener(activityBinding?.searchToolbar?.searchView) {
if (!it.isNullOrEmpty() && binding.recyclerCover.isClickable) { if (!it.isNullOrEmpty() && binding.recyclerCover.isClickable) {
showCategories(false) showCategories(false)
} }

View file

@ -278,7 +278,7 @@ open class MainActivity : BaseActivity<MainActivityBinding>(), DownloadServiceLi
router = Conductor.attachRouter(this, container, savedInstanceState) router = Conductor.attachRouter(this, container, savedInstanceState)
arrayOf(binding.toolbar, binding.cardToolbar).forEach { toolbar -> arrayOf(binding.toolbar, binding.searchToolbar).forEach { toolbar ->
toolbar.setNavigationIconTint(getResourceColor(R.attr.actionBarTintColor)) toolbar.setNavigationIconTint(getResourceColor(R.attr.actionBarTintColor))
toolbar.router = router toolbar.router = router
} }
@ -333,19 +333,19 @@ open class MainActivity : BaseActivity<MainActivityBinding>(), DownloadServiceLi
onBackPressed() onBackPressed()
} }
binding.cardToolbar.setNavigationOnClickListener { binding.searchToolbar.setNavigationOnClickListener {
val rootSearchController = router.backstack.lastOrNull()?.controller val rootSearchController = router.backstack.lastOrNull()?.controller
if (( if ((
rootSearchController is RootSearchInterface || rootSearchController is RootSearchInterface ||
(currentToolbar != binding.cardToolbar && binding.appBar.useLargeToolbar) (currentToolbar != binding.searchToolbar && binding.appBar.useLargeToolbar)
) && ) &&
rootSearchController !is SmallToolbarInterface rootSearchController !is SmallToolbarInterface
) { ) {
binding.cardToolbar.menu.findItem(R.id.action_search)?.expandActionView() binding.searchToolbar.menu.findItem(R.id.action_search)?.expandActionView()
} else onBackPressed() } else onBackPressed()
} }
binding.cardToolbar.searchItem?.setOnActionExpandListener(object : MenuItem.OnActionExpandListener { binding.searchToolbar.searchItem?.setOnActionExpandListener(object : MenuItem.OnActionExpandListener {
override fun onMenuItemActionExpand(item: MenuItem?): Boolean { override fun onMenuItemActionExpand(item: MenuItem?): Boolean {
val controller = router.backstack.lastOrNull()?.controller val controller = router.backstack.lastOrNull()?.controller
binding.appBar.compactSearchMode = binding.appBar.useLargeToolbar && resources.configuration.screenHeightDp < 600 binding.appBar.compactSearchMode = binding.appBar.useLargeToolbar && resources.configuration.screenHeightDp < 600
@ -357,7 +357,7 @@ open class MainActivity : BaseActivity<MainActivityBinding>(), DownloadServiceLi
} }
(controller as? BaseController<*>)?.onActionViewExpand(item) (controller as? BaseController<*>)?.onActionViewExpand(item)
(controller as? SettingsController)?.onActionViewExpand(item) (controller as? SettingsController)?.onActionViewExpand(item)
binding.cardToolbar.menu.forEach { it.isVisible = false } binding.searchToolbar.menu.forEach { it.isVisible = false }
return true return true
} }
@ -374,11 +374,11 @@ open class MainActivity : BaseActivity<MainActivityBinding>(), DownloadServiceLi
binding.appBar.alpha = 1f binding.appBar.alpha = 1f
binding.cardToolbar.setOnClickListener { binding.searchToolbar.setOnClickListener {
binding.cardToolbar.menu.findItem(R.id.action_search)?.expandActionView() binding.searchToolbar.menu.findItem(R.id.action_search)?.expandActionView()
} }
binding.cardToolbar.setOnMenuItemClickListener { binding.searchToolbar.setOnMenuItemClickListener {
if (router.backstack.lastOrNull()?.controller?.onOptionsItemSelected(it) == true) { if (router.backstack.lastOrNull()?.controller?.onOptionsItemSelected(it) == true) {
return@setOnMenuItemClickListener true return@setOnMenuItemClickListener true
} else return@setOnMenuItemClickListener onOptionsItemSelected(it) } else return@setOnMenuItemClickListener onOptionsItemSelected(it)
@ -455,7 +455,7 @@ open class MainActivity : BaseActivity<MainActivityBinding>(), DownloadServiceLi
preferences.incognitoMode() preferences.incognitoMode()
.asImmediateFlowIn(lifecycleScope) { .asImmediateFlowIn(lifecycleScope) {
binding.toolbar.setIncognitoMode(it) binding.toolbar.setIncognitoMode(it)
binding.cardToolbar.setIncognitoMode(it) binding.searchToolbar.setIncognitoMode(it)
} }
preferences.sideNavIconAlignment() preferences.sideNavIconAlignment()
.asImmediateFlowIn(lifecycleScope) { .asImmediateFlowIn(lifecycleScope) {
@ -470,7 +470,7 @@ open class MainActivity : BaseActivity<MainActivityBinding>(), DownloadServiceLi
override fun onTitleChanged(title: CharSequence?, color: Int) { override fun onTitleChanged(title: CharSequence?, color: Int) {
super.onTitleChanged(title, color) super.onTitleChanged(title, color)
binding.cardToolbar.title = searchTitle binding.searchToolbar.title = searchTitle
val onExpandedController = if (this::router.isInitialized) router.backstack.lastOrNull()?.controller !is SmallToolbarInterface else false val onExpandedController = if (this::router.isInitialized) router.backstack.lastOrNull()?.controller !is SmallToolbarInterface else false
binding.appBar.setTitle(title, onExpandedController) binding.appBar.setTitle(title, onExpandedController)
} }
@ -481,11 +481,11 @@ open class MainActivity : BaseActivity<MainActivityBinding>(), DownloadServiceLi
(router.backstack.lastOrNull()?.controller as? BaseController<*>)?.getSearchTitle() (router.backstack.lastOrNull()?.controller as? BaseController<*>)?.getSearchTitle()
?: (router.backstack.lastOrNull()?.controller as? SettingsController)?.getSearchTitle() ?: (router.backstack.lastOrNull()?.controller as? SettingsController)?.getSearchTitle()
} catch (_: Exception) { } catch (_: Exception) {
binding.cardToolbar.title?.toString() binding.searchToolbar.title?.toString()
} }
} }
set(title) { set(title) {
binding.cardToolbar.title = title binding.searchToolbar.title = title
} }
open fun setFloatingToolbar(show: Boolean, solidBG: Boolean = false, changeBG: Boolean = true, showSearchAnyway: Boolean = false) { open fun setFloatingToolbar(show: Boolean, solidBG: Boolean = false, changeBG: Boolean = true, showSearchAnyway: Boolean = false) {
@ -494,7 +494,7 @@ open class MainActivity : BaseActivity<MainActivityBinding>(), DownloadServiceLi
val onSearchController = canShowFloatingToolbar(controller) val onSearchController = canShowFloatingToolbar(controller)
val onSmallerController = controller is SmallToolbarInterface || !useLargeTB val onSmallerController = controller is SmallToolbarInterface || !useLargeTB
currentToolbar = if (show && ((showSearchAnyway && onSearchController) || onSmallerController)) { currentToolbar = if (show && ((showSearchAnyway && onSearchController) || onSmallerController)) {
binding.cardToolbar binding.searchToolbar
} else { } else {
binding.toolbar binding.toolbar
} }
@ -507,18 +507,18 @@ open class MainActivity : BaseActivity<MainActivityBinding>(), DownloadServiceLi
) )
} }
setupSearchTBMenu(binding.toolbar.menu) setupSearchTBMenu(binding.toolbar.menu)
if (currentToolbar != binding.cardToolbar) { if (currentToolbar != binding.searchToolbar) {
binding.cardToolbar.menu?.children?.toList()?.forEach { binding.searchToolbar.menu?.children?.toList()?.forEach {
it.isVisible = false it.isVisible = false
} }
} }
val onRoot = !this::router.isInitialized || router.backstackSize == 1 val onRoot = !this::router.isInitialized || router.backstackSize == 1
if (!useLargeTB) { if (!useLargeTB) {
binding.cardToolbar.navigationIcon = if (onRoot) searchDrawable else backDrawable binding.searchToolbar.navigationIcon = if (onRoot) searchDrawable else backDrawable
} else if (showSearchAnyway) { } else if (showSearchAnyway) {
binding.cardToolbar.navigationIcon = if (!show || onRoot) searchDrawable else backDrawable binding.searchToolbar.navigationIcon = if (!show || onRoot) searchDrawable else backDrawable
} }
binding.cardToolbar.title = searchTitle binding.searchToolbar.title = searchTitle
} }
private fun setNavBarColor(insets: WindowInsetsCompat?) { private fun setNavBarColor(insets: WindowInsetsCompat?) {
@ -790,13 +790,13 @@ open class MainActivity : BaseActivity<MainActivityBinding>(), DownloadServiceLi
if (isBindingInitialized) { if (isBindingInitialized) {
binding.appBar.mainActivity = null binding.appBar.mainActivity = null
binding.toolbar.setNavigationOnClickListener(null) binding.toolbar.setNavigationOnClickListener(null)
binding.cardToolbar.setNavigationOnClickListener(null) binding.searchToolbar.setNavigationOnClickListener(null)
} }
} }
override fun onBackPressed() { override fun onBackPressed() {
if (binding.cardToolbar.isSearchExpanded && binding.cardFrame.isVisible) { if (binding.searchToolbar.isSearchExpanded && binding.cardFrame.isVisible) {
binding.cardToolbar.searchItem?.collapseActionView() binding.searchToolbar.searchItem?.collapseActionView()
return return
} }
backPress() backPress()
@ -874,7 +874,7 @@ open class MainActivity : BaseActivity<MainActivityBinding>(), DownloadServiceLi
fun setSearchTBMenuIfInvalid() = setupSearchTBMenu(binding.toolbar.menu) fun setSearchTBMenuIfInvalid() = setupSearchTBMenu(binding.toolbar.menu)
private fun setupSearchTBMenu(menu: Menu?, showAnyway: Boolean = false) { private fun setupSearchTBMenu(menu: Menu?, showAnyway: Boolean = false) {
val toolbar = binding.cardToolbar val toolbar = binding.searchToolbar
val currentItemsId = toolbar.menu.children.toList().map { it.itemId } val currentItemsId = toolbar.menu.children.toList().map { it.itemId }
val newMenuIds = menu?.children?.toList()?.map { it.itemId }.orEmpty() val newMenuIds = menu?.children?.toList()?.map { it.itemId }.orEmpty()
menu?.children?.toList()?.let { menuItems -> menu?.children?.toList()?.let { menuItems ->
@ -1045,8 +1045,8 @@ open class MainActivity : BaseActivity<MainActivityBinding>(), DownloadServiceLi
val onRoot = router.backstackSize == 1 val onRoot = router.backstackSize == 1
val navIcon = if (onRoot) searchDrawable else backDrawable val navIcon = if (onRoot) searchDrawable else backDrawable
binding.toolbar.navigationIcon = if (onRoot) null else backDrawable binding.toolbar.navigationIcon = if (onRoot) null else backDrawable
binding.cardToolbar.navigationIcon = if (binding.appBar.useLargeToolbar) searchDrawable else navIcon binding.searchToolbar.navigationIcon = if (binding.appBar.useLargeToolbar) searchDrawable else navIcon
binding.cardToolbar.subtitle = null binding.searchToolbar.subtitle = null
nav.visibility = if (!hideBottomNav) View.VISIBLE else nav.visibility nav.visibility = if (!hideBottomNav) View.VISIBLE else nav.visibility
if (nav == binding.sideNav) { if (nav == binding.sideNav) {
@ -1226,7 +1226,7 @@ interface RootSearchInterface {
fun expandSearch() { fun expandSearch() {
if (this is Controller) { if (this is Controller) {
val mainActivity = activity as? MainActivity ?: return val mainActivity = activity as? MainActivity ?: return
mainActivity.binding.cardToolbar.menu.findItem(R.id.action_search)?.expandActionView() mainActivity.binding.searchToolbar.menu.findItem(R.id.action_search)?.expandActionView()
} }
} }
} }

View file

@ -32,16 +32,16 @@ class SearchActivity : MainActivity() {
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
binding.toolbar.navigationIcon = backDrawable binding.toolbar.navigationIcon = backDrawable
binding.cardToolbar.navigationIcon = backDrawable binding.searchToolbar.navigationIcon = backDrawable
binding.toolbar.setNavigationOnClickListener { popToRoot() } binding.toolbar.setNavigationOnClickListener { popToRoot() }
binding.cardToolbar.setNavigationOnClickListener { popToRoot() } binding.searchToolbar.setNavigationOnClickListener { popToRoot() }
(router.backstack.lastOrNull()?.controller as? BaseController<*>)?.setTitle() (router.backstack.lastOrNull()?.controller as? BaseController<*>)?.setTitle()
(router.backstack.lastOrNull()?.controller as? SettingsController)?.setTitle() (router.backstack.lastOrNull()?.controller as? SettingsController)?.setTitle()
} }
override fun onBackPressed() { override fun onBackPressed() {
if (binding.cardToolbar.isSearchExpanded && binding.cardFrame.isVisible) { if (binding.searchToolbar.isSearchExpanded && binding.cardFrame.isVisible) {
binding.cardToolbar.searchItem?.collapseActionView() binding.searchToolbar.searchItem?.collapseActionView()
return return
} }
backPress() backPress()
@ -69,14 +69,14 @@ class SearchActivity : MainActivity() {
override fun setFloatingToolbar(show: Boolean, solidBG: Boolean, changeBG: Boolean, showSearchAnyway: Boolean) { override fun setFloatingToolbar(show: Boolean, solidBG: Boolean, changeBG: Boolean, showSearchAnyway: Boolean) {
super.setFloatingToolbar(show, solidBG, changeBG, showSearchAnyway) super.setFloatingToolbar(show, solidBG, changeBG, showSearchAnyway)
binding.toolbar.setNavigationOnClickListener { popToRoot() } binding.toolbar.setNavigationOnClickListener { popToRoot() }
binding.cardToolbar.setNavigationOnClickListener { binding.searchToolbar.setNavigationOnClickListener {
val rootSearchController = router.backstack.lastOrNull()?.controller val rootSearchController = router.backstack.lastOrNull()?.controller
if (( if ((
rootSearchController is RootSearchInterface || rootSearchController is RootSearchInterface ||
(currentToolbar != binding.cardToolbar && binding.appBar.useLargeToolbar) (currentToolbar != binding.searchToolbar && binding.appBar.useLargeToolbar)
) && rootSearchController !is SmallToolbarInterface ) && rootSearchController !is SmallToolbarInterface
) { ) {
binding.cardToolbar.menu.findItem(R.id.action_search)?.expandActionView() binding.searchToolbar.menu.findItem(R.id.action_search)?.expandActionView()
} else popToRoot() } else popToRoot()
} }
} }
@ -94,7 +94,7 @@ class SearchActivity : MainActivity() {
return return
} }
setFloatingToolbar(canShowFloatingToolbar(to)) setFloatingToolbar(canShowFloatingToolbar(to))
binding.cardToolbar.navigationIcon = if (binding.appBar.useLargeToolbar) searchDrawable else backDrawable binding.searchToolbar.navigationIcon = if (binding.appBar.useLargeToolbar) searchDrawable else backDrawable
binding.toolbar.navigationIcon = backDrawable binding.toolbar.navigationIcon = backDrawable
nav.isVisible = false nav.isVisible = false

View file

@ -478,7 +478,7 @@ class RecentsController(bundle: Bundle? = null) :
if (BuildConfig.DEBUG && query.isBlank() && isControllerVisible) { if (BuildConfig.DEBUG && query.isBlank() && isControllerVisible) {
val searchItem = val searchItem =
(activity as? MainActivity)?.binding?.cardToolbar?.menu?.findItem(R.id.action_search) (activity as? MainActivity)?.binding?.searchToolbar?.menu?.findItem(R.id.action_search)
val searchView = searchItem?.actionView as? SearchView ?: return val searchView = searchItem?.actionView as? SearchView ?: return
if (!isControllerVisible) return if (!isControllerVisible) return
setOnQueryTextChangeListener(searchView) { setOnQueryTextChangeListener(searchView) {
@ -542,7 +542,7 @@ class RecentsController(bundle: Bundle? = null) :
} else { } else {
binding.recentsEmptyView.hide() binding.recentsEmptyView.hide()
} }
val isSearchExpanded = activityBinding?.cardToolbar?.isSearchExpanded == true val isSearchExpanded = activityBinding?.searchToolbar?.isSearchExpanded == true
if (shouldMoveToTop) { if (shouldMoveToTop) {
if (isSearchExpanded) { if (isSearchExpanded) {
moveRecyclerViewUp(scrollUpAnyway = true) moveRecyclerViewUp(scrollUpAnyway = true)
@ -708,15 +708,15 @@ class RecentsController(bundle: Bundle? = null) :
override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) { override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
inflater.inflate(R.menu.recents, menu) inflater.inflate(R.menu.recents, menu)
val searchItem = activityBinding?.cardToolbar?.searchItem val searchItem = activityBinding?.searchToolbar?.searchItem
val searchView = activityBinding?.cardToolbar?.searchView val searchView = activityBinding?.searchToolbar?.searchView
activityBinding?.cardToolbar?.setQueryHint(view?.context?.getString(R.string.search_recents), !isSearching()) activityBinding?.searchToolbar?.setQueryHint(view?.context?.getString(R.string.search_recents), !isSearching())
if (isSearching()) { if (isSearching()) {
searchItem?.expandActionView() searchItem?.expandActionView()
searchView?.setQuery(query, true) searchView?.setQuery(query, true)
searchView?.clearFocus() searchView?.clearFocus()
} }
setOnQueryTextChangeListener(activityBinding?.cardToolbar?.searchView) { setOnQueryTextChangeListener(activityBinding?.searchToolbar?.searchView) {
if (query != it) { if (query != it) {
query = it ?: return@setOnQueryTextChangeListener false query = it ?: return@setOnQueryTextChangeListener false
// loadNoMore() // loadNoMore()
@ -808,7 +808,7 @@ class RecentsController(bundle: Bundle? = null) :
if (showingDownloads) { if (showingDownloads) {
binding.downloadBottomSheet.dlBottomSheet.dismiss() binding.downloadBottomSheet.dlBottomSheet.dismiss()
} else { } else {
activityBinding?.cardToolbar?.menu?.findItem(R.id.action_search)?.expandActionView() activityBinding?.searchToolbar?.menu?.findItem(R.id.action_search)?.expandActionView()
} }
} }

View file

@ -89,7 +89,7 @@ class SettingsMainController : SettingsController(), FloatingSearchInterface {
override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) { override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
inflater.inflate(R.menu.settings_main, menu) inflater.inflate(R.menu.settings_main, menu)
// Change hint to show global search. // Change hint to show global search.
activityBinding?.cardToolbar?.searchQueryHint = applicationContext?.getString(R.string.search_settings) activityBinding?.searchToolbar?.searchQueryHint = applicationContext?.getString(R.string.search_settings)
} }
override fun onActionViewExpand(item: MenuItem?) { override fun onActionViewExpand(item: MenuItem?) {

View file

@ -173,15 +173,15 @@ class SettingsSourcesController : SettingsController(), FloatingSearchInterface
else menu.findItem(R.id.action_sort_enabled).isChecked = true else menu.findItem(R.id.action_sort_enabled).isChecked = true
val useSearchTB = showFloatingBar() val useSearchTB = showFloatingBar()
val searchItem = if (useSearchTB) activityBinding?.cardToolbar?.searchItem val searchItem = if (useSearchTB) activityBinding?.searchToolbar?.searchItem
else (menu.findItem(R.id.action_search)) else (menu.findItem(R.id.action_search))
val searchView = if (useSearchTB) activityBinding?.cardToolbar?.searchView val searchView = if (useSearchTB) activityBinding?.searchToolbar?.searchView
else searchItem?.actionView as? SearchView else searchItem?.actionView as? SearchView
if (!useSearchTB) { if (!useSearchTB) {
searchView?.maxWidth = Int.MAX_VALUE searchView?.maxWidth = Int.MAX_VALUE
} }
activityBinding?.cardToolbar?.setQueryHint(getSearchTitle(), query.isEmpty()) activityBinding?.searchToolbar?.setQueryHint(getSearchTitle(), query.isEmpty())
if (query.isNotEmpty()) { if (query.isNotEmpty()) {
searchItem?.expandActionView() searchItem?.expandActionView()
@ -189,7 +189,7 @@ class SettingsSourcesController : SettingsController(), FloatingSearchInterface
searchView?.clearFocus() searchView?.clearFocus()
} }
setOnQueryTextChangeListener(activityBinding?.cardToolbar?.searchView) { setOnQueryTextChangeListener(activityBinding?.searchToolbar?.searchView) {
query = it ?: "" query = it ?: ""
drawSources() drawSources()
true true
@ -275,10 +275,10 @@ class SettingsSourcesController : SettingsController(), FloatingSearchInterface
} }
item.isChecked = true item.isChecked = true
(activity as? MainActivity)?.let { (activity as? MainActivity)?.let {
val otherTB = if (it.currentToolbar == it.binding.cardToolbar) { val otherTB = if (it.currentToolbar == it.binding.searchToolbar) {
it.binding.toolbar it.binding.toolbar
} else { } else {
it.binding.cardToolbar it.binding.searchToolbar
} }
otherTB.menu.findItem(item.itemId).isChecked = true otherTB.menu.findItem(item.itemId).isChecked = true
} }

View file

@ -63,10 +63,10 @@ class SettingsSearchController :
// Inflate menu. // Inflate menu.
inflater.inflate(R.menu.settings_main, menu) inflater.inflate(R.menu.settings_main, menu)
val searchItem = activityBinding?.cardToolbar?.searchItem val searchItem = activityBinding?.searchToolbar?.searchItem
searchView = activityBinding?.cardToolbar?.searchView searchView = activityBinding?.searchToolbar?.searchView
activityBinding?.cardToolbar?.setQueryHint(applicationContext?.getString(R.string.search_settings), false) activityBinding?.searchToolbar?.setQueryHint(applicationContext?.getString(R.string.search_settings), false)
searchItem?.expandActionView() searchItem?.expandActionView()
setItems(getResultSet()) setItems(getResultSet())

View file

@ -475,7 +475,7 @@ class BrowseController :
updateSheetMenu() updateSheetMenu()
} }
if (BuildConfig.DEBUG && isControllerVisible) { if (BuildConfig.DEBUG && isControllerVisible) {
val searchView = activityBinding?.cardToolbar?.searchView val searchView = activityBinding?.searchToolbar?.searchView
setOnQueryTextChangeListener(searchView, onlyOnSubmit = true) { setOnQueryTextChangeListener(searchView, onlyOnSubmit = true) {
if (!it.isNullOrBlank()) performGlobalSearch(it) if (!it.isNullOrBlank()) performGlobalSearch(it)
@ -560,7 +560,7 @@ class BrowseController :
override fun expandSearch() { override fun expandSearch() {
if (showingExtensions) binding.bottomSheet.root.sheetBehavior?.collapse() if (showingExtensions) binding.bottomSheet.root.sheetBehavior?.collapse()
else activityBinding?.cardToolbar?.menu?.findItem(R.id.action_search)?.expandActionView() else activityBinding?.searchToolbar?.menu?.findItem(R.id.action_search)?.expandActionView()
} }
/** /**
@ -574,10 +574,10 @@ class BrowseController :
inflater.inflate(R.menu.catalogue_main, menu) inflater.inflate(R.menu.catalogue_main, menu)
// Initialize search option. // Initialize search option.
val searchView = activityBinding?.cardToolbar?.searchView val searchView = activityBinding?.searchToolbar?.searchView
// Change hint to show global search. // Change hint to show global search.
activityBinding?.cardToolbar?.searchQueryHint = view?.context?.getString(R.string.global_search) activityBinding?.searchToolbar?.searchQueryHint = view?.context?.getString(R.string.global_search)
// Create query listener which opens the global search view. // Create query listener which opens the global search view.
setOnQueryTextChangeListener(searchView, true) { setOnQueryTextChangeListener(searchView, true) {

View file

@ -248,7 +248,7 @@ open class BrowseSourceController(bundle: Bundle) :
if (oldPosition != RecyclerView.NO_POSITION) { if (oldPosition != RecyclerView.NO_POSITION) {
(recycler.layoutManager as LinearLayoutManager).scrollToPositionWithOffset(oldPosition, oldOffset.roundToInt()) (recycler.layoutManager as LinearLayoutManager).scrollToPositionWithOffset(oldPosition, oldOffset.roundToInt())
if (oldPosition > 0 && (activity as? MainActivity)?.currentToolbar != activityBinding?.cardToolbar) { if (oldPosition > 0 && (activity as? MainActivity)?.currentToolbar != activityBinding?.searchToolbar) {
activityBinding?.appBar?.useSearchToolbarForMenu(true) activityBinding?.appBar?.useSearchToolbarForMenu(true)
} }
} }
@ -259,16 +259,16 @@ open class BrowseSourceController(bundle: Bundle) :
inflater.inflate(R.menu.browse_source, menu) inflater.inflate(R.menu.browse_source, menu)
// Initialize search menu // Initialize search menu
val searchItem = activityBinding?.cardToolbar?.searchItem val searchItem = activityBinding?.searchToolbar?.searchItem
val searchView = activityBinding?.cardToolbar?.searchView val searchView = activityBinding?.searchToolbar?.searchView
activityBinding?.cardToolbar?.setQueryHint("", !isBehindGlobalSearch && presenter.query.isBlank()) activityBinding?.searchToolbar?.setQueryHint("", !isBehindGlobalSearch && presenter.query.isBlank())
val query = presenter.query val query = presenter.query
if (query.isNotBlank()) { if (query.isNotBlank()) {
searchItem?.expandActionView() searchItem?.expandActionView()
searchView?.setQuery(query, true) searchView?.setQuery(query, true)
searchView?.clearFocus() searchView?.clearFocus()
} else if (activityBinding?.cardToolbar?.isSearchExpanded == true) { } else if (activityBinding?.searchToolbar?.isSearchExpanded == true) {
searchItem?.collapseActionView() searchItem?.collapseActionView()
searchView?.setQuery("", true) searchView?.setQuery("", true)
} }
@ -499,7 +499,7 @@ open class BrowseSourceController(bundle: Bundle) :
super.onActivityResumed(activity) super.onActivityResumed(activity)
if (BuildConfig.DEBUG && isControllerVisible) { if (BuildConfig.DEBUG && isControllerVisible) {
val searchView = activityBinding?.cardToolbar?.searchView val searchView = activityBinding?.searchToolbar?.searchView
setOnQueryTextChangeListener(searchView, onlyOnSubmit = true, hideKbOnSubmit = true) { setOnQueryTextChangeListener(searchView, onlyOnSubmit = true, hideKbOnSubmit = true) {
searchWithQuery(it ?: "") searchWithQuery(it ?: "")
true true
@ -618,7 +618,7 @@ open class BrowseSourceController(bundle: Bundle) :
val isListMode = !presenter.prefs.browseAsList().get() val isListMode = !presenter.prefs.browseAsList().get()
presenter.prefs.browseAsList().set(isListMode) presenter.prefs.browseAsList().set(isListMode)
listOf(activityBinding?.toolbar?.menu, activityBinding?.cardToolbar?.menu).forEach { listOf(activityBinding?.toolbar?.menu, activityBinding?.searchToolbar?.menu).forEach {
updateDisplayMenuItem(it, isListMode) updateDisplayMenuItem(it, isListMode)
} }
setupRecycler(view) setupRecycler(view)

View file

@ -151,11 +151,11 @@ open class GlobalSearchController(
inflater.inflate(R.menu.catalogue_new_list, menu) inflater.inflate(R.menu.catalogue_new_list, menu)
// Initialize search menu // Initialize search menu
activityBinding?.cardToolbar?.setQueryHint(view?.context?.getString(R.string.global_search), false) activityBinding?.searchToolbar?.setQueryHint(view?.context?.getString(R.string.global_search), false)
activityBinding?.cardToolbar?.searchItem?.expandActionView() activityBinding?.searchToolbar?.searchItem?.expandActionView()
activityBinding?.cardToolbar?.searchView?.setQuery(presenter.query, false) activityBinding?.searchToolbar?.searchView?.setQuery(presenter.query, false)
setOnQueryTextChangeListener(activityBinding?.cardToolbar?.searchView, onlyOnSubmit = true, hideKbOnSubmit = true) { setOnQueryTextChangeListener(activityBinding?.searchToolbar?.searchView, onlyOnSubmit = true, hideKbOnSubmit = true) {
presenter.search(it ?: "") presenter.search(it ?: "")
setTitle() // Update toolbar title setTitle() // Update toolbar title
true true
@ -165,8 +165,8 @@ open class GlobalSearchController(
override fun onChangeStarted(handler: ControllerChangeHandler, type: ControllerChangeType) { override fun onChangeStarted(handler: ControllerChangeHandler, type: ControllerChangeType) {
super.onChangeStarted(handler, type) super.onChangeStarted(handler, type)
if (type.isEnter) { if (type.isEnter) {
val searchView = activityBinding?.cardToolbar?.searchView ?: return val searchView = activityBinding?.searchToolbar?.searchView ?: return
val searchItem = activityBinding?.cardToolbar?.searchItem ?: return val searchItem = activityBinding?.searchToolbar?.searchItem ?: return
searchItem.expandActionView() searchItem.expandActionView()
searchView.setQuery(presenter.query, false) searchView.setQuery(presenter.query, false)
searchView.clearFocus() searchView.clearFocus()
@ -174,7 +174,7 @@ open class GlobalSearchController(
} }
override fun onActionViewExpand(item: MenuItem?) { override fun onActionViewExpand(item: MenuItem?) {
val searchView = activityBinding?.cardToolbar?.searchView ?: return val searchView = activityBinding?.searchToolbar?.searchView ?: return
searchView.setQuery(presenter.query, false) searchView.setQuery(presenter.query, false)
} }

View file

@ -98,7 +98,7 @@ fun Controller.setOnQueryTextChangeListener(
} }
fun Controller.removeQueryListener() { fun Controller.removeQueryListener() {
val searchView = activityBinding?.cardToolbar?.menu?.findItem(R.id.action_search)?.actionView as? SearchView val searchView = activityBinding?.searchToolbar?.menu?.findItem(R.id.action_search)?.actionView as? SearchView
val searchView2 = activityBinding?.toolbar?.menu?.findItem(R.id.action_search)?.actionView as? SearchView val searchView2 = activityBinding?.toolbar?.menu?.findItem(R.id.action_search)?.actionView as? SearchView
searchView?.setOnQueryTextListener(object : SearchView.OnQueryTextListener { searchView?.setOnQueryTextListener(object : SearchView.OnQueryTextListener {
override fun onQueryTextSubmit(query: String?) = true override fun onQueryTextSubmit(query: String?) = true

View file

@ -114,7 +114,7 @@
android:layout_height="match_parent" > android:layout_height="match_parent" >
<eu.kanade.tachiyomi.ui.base.FloatingToolbar <eu.kanade.tachiyomi.ui.base.FloatingToolbar
android:id="@+id/card_toolbar" android:id="@+id/search_toolbar"
tools:title="Search Library..." tools:title="Search Library..."
app:contentInsetStartWithNavigation="0dp" app:contentInsetStartWithNavigation="0dp"
app:contentInsetEndWithActions="0dp" app:contentInsetEndWithActions="0dp"

View file

@ -113,7 +113,7 @@
android:layout_height="match_parent" > android:layout_height="match_parent" >
<eu.kanade.tachiyomi.ui.base.FloatingToolbar <eu.kanade.tachiyomi.ui.base.FloatingToolbar
android:id="@+id/card_toolbar" android:id="@+id/search_toolbar"
tools:title="Search Library..." tools:title="Search Library..."
app:contentInsetStartWithNavigation="0dp" app:contentInsetStartWithNavigation="0dp"
app:contentInsetEndWithActions="0dp" app:contentInsetEndWithActions="0dp"