mirror of
https://github.com/libre-tube/LibreTube.git
synced 2025-04-29 00:10:32 +05:30
Merge pull request #3053 from Isira-Seneviratne/Search_binding
Use view binding extensions in the search fragments.
This commit is contained in:
commit
582ab70bd1
@ -2,12 +2,13 @@ package com.github.libretube.ui.fragments
|
|||||||
|
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.util.Log
|
import android.util.Log
|
||||||
import android.view.LayoutInflater
|
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.view.ViewGroup
|
import androidx.fragment.app.Fragment
|
||||||
import androidx.fragment.app.activityViewModels
|
import androidx.fragment.app.activityViewModels
|
||||||
import androidx.lifecycle.lifecycleScope
|
import androidx.lifecycle.lifecycleScope
|
||||||
import androidx.recyclerview.widget.LinearLayoutManager
|
import androidx.recyclerview.widget.LinearLayoutManager
|
||||||
|
import by.kirich1409.viewbindingdelegate.viewBinding
|
||||||
|
import com.github.libretube.R
|
||||||
import com.github.libretube.api.RetrofitInstance
|
import com.github.libretube.api.RetrofitInstance
|
||||||
import com.github.libretube.databinding.FragmentSearchBinding
|
import com.github.libretube.databinding.FragmentSearchBinding
|
||||||
import com.github.libretube.db.DatabaseHolder.Database
|
import com.github.libretube.db.DatabaseHolder.Database
|
||||||
@ -16,12 +17,10 @@ import com.github.libretube.extensions.awaitQuery
|
|||||||
import com.github.libretube.ui.activities.MainActivity
|
import com.github.libretube.ui.activities.MainActivity
|
||||||
import com.github.libretube.ui.adapters.SearchHistoryAdapter
|
import com.github.libretube.ui.adapters.SearchHistoryAdapter
|
||||||
import com.github.libretube.ui.adapters.SearchSuggestionsAdapter
|
import com.github.libretube.ui.adapters.SearchSuggestionsAdapter
|
||||||
import com.github.libretube.ui.base.BaseFragment
|
|
||||||
import com.github.libretube.ui.models.SearchViewModel
|
import com.github.libretube.ui.models.SearchViewModel
|
||||||
|
|
||||||
class SearchFragment : BaseFragment() {
|
class SearchFragment : Fragment(R.layout.fragment_search) {
|
||||||
private var _binding: FragmentSearchBinding? = null
|
private val binding by viewBinding(FragmentSearchBinding::bind)
|
||||||
private val binding get() = _binding!!
|
|
||||||
|
|
||||||
private val viewModel: SearchViewModel by activityViewModels()
|
private val viewModel: SearchViewModel by activityViewModels()
|
||||||
|
|
||||||
@ -32,15 +31,6 @@ class SearchFragment : BaseFragment() {
|
|||||||
query = arguments?.getString("query")
|
query = arguments?.getString("query")
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onCreateView(
|
|
||||||
inflater: LayoutInflater,
|
|
||||||
container: ViewGroup?,
|
|
||||||
savedInstanceState: Bundle?
|
|
||||||
): View {
|
|
||||||
_binding = FragmentSearchBinding.inflate(layoutInflater, container, false)
|
|
||||||
return binding.root
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||||
super.onViewCreated(view, savedInstanceState)
|
super.onViewCreated(view, savedInstanceState)
|
||||||
|
|
||||||
@ -75,15 +65,12 @@ class SearchFragment : BaseFragment() {
|
|||||||
return@launchWhenCreated
|
return@launchWhenCreated
|
||||||
}
|
}
|
||||||
// only load the suggestions if the input field didn't get cleared yet
|
// only load the suggestions if the input field didn't get cleared yet
|
||||||
val suggestionsAdapter =
|
val suggestionsAdapter = SearchSuggestionsAdapter(
|
||||||
SearchSuggestionsAdapter(
|
response.reversed(),
|
||||||
response.reversed(),
|
(activity as MainActivity).searchView
|
||||||
(activity as MainActivity).searchView
|
)
|
||||||
)
|
if (isAdded && viewModel.searchQuery.value != "") {
|
||||||
runOnUiThread {
|
binding.suggestionsRecycler.adapter = suggestionsAdapter
|
||||||
if (viewModel.searchQuery.value != "") {
|
|
||||||
binding.suggestionsRecycler.adapter = suggestionsAdapter
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2,12 +2,12 @@ package com.github.libretube.ui.fragments
|
|||||||
|
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.util.Log
|
import android.util.Log
|
||||||
import android.view.LayoutInflater
|
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.view.ViewGroup
|
|
||||||
import androidx.core.view.isVisible
|
import androidx.core.view.isVisible
|
||||||
|
import androidx.fragment.app.Fragment
|
||||||
import androidx.lifecycle.lifecycleScope
|
import androidx.lifecycle.lifecycleScope
|
||||||
import androidx.recyclerview.widget.LinearLayoutManager
|
import androidx.recyclerview.widget.LinearLayoutManager
|
||||||
|
import by.kirich1409.viewbindingdelegate.viewBinding
|
||||||
import com.github.libretube.R
|
import com.github.libretube.R
|
||||||
import com.github.libretube.api.RetrofitInstance
|
import com.github.libretube.api.RetrofitInstance
|
||||||
import com.github.libretube.constants.PreferenceKeys
|
import com.github.libretube.constants.PreferenceKeys
|
||||||
@ -18,15 +18,13 @@ import com.github.libretube.extensions.TAG
|
|||||||
import com.github.libretube.extensions.hideKeyboard
|
import com.github.libretube.extensions.hideKeyboard
|
||||||
import com.github.libretube.helpers.PreferenceHelper
|
import com.github.libretube.helpers.PreferenceHelper
|
||||||
import com.github.libretube.ui.adapters.SearchAdapter
|
import com.github.libretube.ui.adapters.SearchAdapter
|
||||||
import com.github.libretube.ui.base.BaseFragment
|
|
||||||
import java.io.IOException
|
import java.io.IOException
|
||||||
import kotlinx.coroutines.Dispatchers
|
import kotlinx.coroutines.Dispatchers
|
||||||
import kotlinx.coroutines.withContext
|
import kotlinx.coroutines.withContext
|
||||||
import retrofit2.HttpException
|
import retrofit2.HttpException
|
||||||
|
|
||||||
class SearchResultFragment : BaseFragment() {
|
class SearchResultFragment : Fragment(R.layout.fragment_search_result) {
|
||||||
private var _binding: FragmentSearchResultBinding? = null
|
private val binding by viewBinding(FragmentSearchResultBinding::bind)
|
||||||
private val binding get() = _binding!!
|
|
||||||
|
|
||||||
private var nextPage: String? = null
|
private var nextPage: String? = null
|
||||||
private var query: String = ""
|
private var query: String = ""
|
||||||
@ -39,15 +37,6 @@ class SearchResultFragment : BaseFragment() {
|
|||||||
query = arguments?.getString("query").toString()
|
query = arguments?.getString("query").toString()
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onCreateView(
|
|
||||||
inflater: LayoutInflater,
|
|
||||||
container: ViewGroup?,
|
|
||||||
savedInstanceState: Bundle?
|
|
||||||
): View {
|
|
||||||
_binding = FragmentSearchResultBinding.inflate(layoutInflater, container, false)
|
|
||||||
return binding.root
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||||
super.onViewCreated(view, savedInstanceState)
|
super.onViewCreated(view, savedInstanceState)
|
||||||
|
|
||||||
@ -77,7 +66,7 @@ class SearchResultFragment : BaseFragment() {
|
|||||||
fetchSearch()
|
fetchSearch()
|
||||||
|
|
||||||
binding.searchRecycler.viewTreeObserver.addOnScrollChangedListener {
|
binding.searchRecycler.viewTreeObserver.addOnScrollChangedListener {
|
||||||
if (_binding?.searchRecycler?.canScrollVertically(1) == false &&
|
if (isAdded && !binding.searchRecycler.canScrollVertically(1) &&
|
||||||
nextPage != null
|
nextPage != null
|
||||||
) {
|
) {
|
||||||
fetchNextSearchItems()
|
fetchNextSearchItems()
|
||||||
@ -85,11 +74,6 @@ class SearchResultFragment : BaseFragment() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onDestroyView() {
|
|
||||||
super.onDestroyView()
|
|
||||||
_binding = null
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun fetchSearch() {
|
private fun fetchSearch() {
|
||||||
lifecycleScope.launchWhenCreated {
|
lifecycleScope.launchWhenCreated {
|
||||||
view?.let { context?.hideKeyboard(it) }
|
view?.let { context?.hideKeyboard(it) }
|
||||||
|
Loading…
x
Reference in New Issue
Block a user