Added Search tab
This commit is contained in:
parent
f769740d17
commit
ff1c83c91d
9 changed files with 18 additions and 31 deletions
|
@ -103,7 +103,7 @@ class MainActivity : AbsCastActivity(), OnSharedPreferenceChangeListener {
|
||||||
currentFragment(R.id.fragment_container)?.enterTransition = null
|
currentFragment(R.id.fragment_container)?.enterTransition = null
|
||||||
}
|
}
|
||||||
when (destination.id) {
|
when (destination.id) {
|
||||||
R.id.action_home, R.id.action_song, R.id.action_album, R.id.action_artist, R.id.action_folder, R.id.action_playlist, R.id.action_genre -> {
|
R.id.action_home, R.id.action_song, R.id.action_album, R.id.action_artist, R.id.action_folder, R.id.action_playlist, R.id.action_genre, R.id.action_search -> {
|
||||||
// Save the last tab
|
// Save the last tab
|
||||||
if (PreferenceUtil.rememberLastTab) {
|
if (PreferenceUtil.rememberLastTab) {
|
||||||
saveTab(destination.id)
|
saveTab(destination.id)
|
||||||
|
|
|
@ -39,7 +39,6 @@ import code.name.monkey.retromusic.util.PreferenceUtil
|
||||||
import code.name.monkey.retromusic.util.ThemedFastScroller.create
|
import code.name.monkey.retromusic.util.ThemedFastScroller.create
|
||||||
import com.google.android.material.shape.MaterialShapeDrawable
|
import com.google.android.material.shape.MaterialShapeDrawable
|
||||||
import com.google.android.material.transition.MaterialFadeThrough
|
import com.google.android.material.transition.MaterialFadeThrough
|
||||||
import com.google.android.material.transition.MaterialSharedAxis
|
|
||||||
import me.zhanghai.android.fastscroll.FastScroller
|
import me.zhanghai.android.fastscroll.FastScroller
|
||||||
import me.zhanghai.android.fastscroll.FastScrollerBuilder
|
import me.zhanghai.android.fastscroll.FastScrollerBuilder
|
||||||
|
|
||||||
|
@ -105,10 +104,8 @@ abstract class AbsRecyclerViewFragment<A : RecyclerView.Adapter<*>, LM : Recycle
|
||||||
|
|
||||||
private fun setupToolbar() {
|
private fun setupToolbar() {
|
||||||
binding.toolbar.setNavigationOnClickListener {
|
binding.toolbar.setNavigationOnClickListener {
|
||||||
exitTransition = MaterialSharedAxis(MaterialSharedAxis.Z, true).addTarget(requireView())
|
|
||||||
reenterTransition = MaterialSharedAxis(MaterialSharedAxis.Z, false)
|
|
||||||
findNavController().navigate(
|
findNavController().navigate(
|
||||||
R.id.searchFragment,
|
R.id.action_search,
|
||||||
null,
|
null,
|
||||||
navOptions
|
navOptions
|
||||||
)
|
)
|
||||||
|
|
|
@ -24,9 +24,10 @@ import android.webkit.MimeTypeMap
|
||||||
import android.widget.Toast
|
import android.widget.Toast
|
||||||
import androidx.activity.OnBackPressedCallback
|
import androidx.activity.OnBackPressedCallback
|
||||||
import androidx.appcompat.widget.PopupMenu
|
import androidx.appcompat.widget.PopupMenu
|
||||||
|
import androidx.core.view.isVisible
|
||||||
import androidx.loader.app.LoaderManager
|
import androidx.loader.app.LoaderManager
|
||||||
import androidx.loader.content.Loader
|
import androidx.loader.content.Loader
|
||||||
import androidx.navigation.Navigation.findNavController
|
import androidx.navigation.fragment.findNavController
|
||||||
import androidx.recyclerview.widget.LinearLayoutManager
|
import androidx.recyclerview.widget.LinearLayoutManager
|
||||||
import androidx.recyclerview.widget.RecyclerView
|
import androidx.recyclerview.widget.RecyclerView
|
||||||
import code.name.monkey.appthemehelper.ThemeStore.Companion.accentColor
|
import code.name.monkey.appthemehelper.ThemeStore.Companion.accentColor
|
||||||
|
@ -57,12 +58,10 @@ import code.name.monkey.retromusic.misc.WrappedAsyncTaskLoader
|
||||||
import code.name.monkey.retromusic.model.Song
|
import code.name.monkey.retromusic.model.Song
|
||||||
import code.name.monkey.retromusic.providers.BlacklistStore
|
import code.name.monkey.retromusic.providers.BlacklistStore
|
||||||
import code.name.monkey.retromusic.util.*
|
import code.name.monkey.retromusic.util.*
|
||||||
import code.name.monkey.retromusic.util.DensityUtil.dip2px
|
|
||||||
import code.name.monkey.retromusic.util.PreferenceUtil.startDirectory
|
import code.name.monkey.retromusic.util.PreferenceUtil.startDirectory
|
||||||
import code.name.monkey.retromusic.util.ThemedFastScroller.create
|
import code.name.monkey.retromusic.util.ThemedFastScroller.create
|
||||||
import code.name.monkey.retromusic.views.BreadCrumbLayout.Crumb
|
import code.name.monkey.retromusic.views.BreadCrumbLayout.Crumb
|
||||||
import code.name.monkey.retromusic.views.BreadCrumbLayout.SelectionCallback
|
import code.name.monkey.retromusic.views.BreadCrumbLayout.SelectionCallback
|
||||||
import code.name.monkey.retromusic.views.ScrollingViewOnApplyWindowInsetsListener
|
|
||||||
import com.afollestad.materialcab.attached.AttachedCab
|
import com.afollestad.materialcab.attached.AttachedCab
|
||||||
import com.afollestad.materialcab.attached.destroy
|
import com.afollestad.materialcab.attached.destroy
|
||||||
import com.afollestad.materialcab.attached.isActive
|
import com.afollestad.materialcab.attached.isActive
|
||||||
|
@ -128,10 +127,8 @@ class FoldersFragment : AbsMainActivityFragment(R.layout.fragment_folder),
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun setUpTitle() {
|
private fun setUpTitle() {
|
||||||
binding.toolbar.setNavigationOnClickListener { v: View? ->
|
binding.toolbar.setNavigationOnClickListener {
|
||||||
exitTransition = MaterialSharedAxis(MaterialSharedAxis.Z, true).setDuration(300)
|
findNavController().navigate(R.id.action_search, null, navOptions)
|
||||||
reenterTransition = MaterialSharedAxis(MaterialSharedAxis.Z, false).setDuration(300)
|
|
||||||
findNavController(v!!).navigate(R.id.searchFragment, null, navOptions)
|
|
||||||
}
|
}
|
||||||
binding.appNameText.text = resources.getString(R.string.folders)
|
binding.appNameText.text = resources.getString(R.string.folders)
|
||||||
}
|
}
|
||||||
|
@ -461,8 +458,7 @@ class FoldersFragment : AbsMainActivityFragment(R.layout.fragment_folder),
|
||||||
private fun checkIsEmpty() {
|
private fun checkIsEmpty() {
|
||||||
if (_binding != null) {
|
if (_binding != null) {
|
||||||
binding.emptyEmoji.text = getEmojiByUnicode(0x1F631)
|
binding.emptyEmoji.text = getEmojiByUnicode(0x1F631)
|
||||||
binding.empty.visibility =
|
binding.empty.isVisible = adapter?.itemCount == 0
|
||||||
if (adapter == null || adapter!!.itemCount == 0) View.VISIBLE else View.GONE
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -175,10 +175,7 @@ class HomeFragment :
|
||||||
|
|
||||||
private fun setupTitle() {
|
private fun setupTitle() {
|
||||||
binding.toolbar.setNavigationOnClickListener {
|
binding.toolbar.setNavigationOnClickListener {
|
||||||
exitTransition = MaterialSharedAxis(MaterialSharedAxis.Z, true).addTarget(binding.root)
|
findNavController().navigate(R.id.action_search, null, navOptions)
|
||||||
reenterTransition =
|
|
||||||
MaterialSharedAxis(MaterialSharedAxis.Z, false)
|
|
||||||
findNavController().navigate(R.id.searchFragment, null, navOptions)
|
|
||||||
}
|
}
|
||||||
val hexColor = String.format("#%06X", 0xFFFFFF and accentColor())
|
val hexColor = String.format("#%06X", 0xFFFFFF and accentColor())
|
||||||
val appName = HtmlCompat.fromHtml(
|
val appName = HtmlCompat.fromHtml(
|
||||||
|
|
|
@ -54,7 +54,7 @@ class LibraryFragment : AbsMainActivityFragment(R.layout.fragment_library) {
|
||||||
mainActivity.supportActionBar?.title = null
|
mainActivity.supportActionBar?.title = null
|
||||||
binding.toolbar.setNavigationOnClickListener {
|
binding.toolbar.setNavigationOnClickListener {
|
||||||
findNavController().navigate(
|
findNavController().navigate(
|
||||||
R.id.searchFragment,
|
R.id.action_search,
|
||||||
null,
|
null,
|
||||||
navOptions
|
navOptions
|
||||||
)
|
)
|
||||||
|
|
|
@ -42,7 +42,7 @@ import com.google.android.material.chip.Chip
|
||||||
import com.google.android.material.chip.ChipGroup
|
import com.google.android.material.chip.ChipGroup
|
||||||
import com.google.android.material.shape.MaterialShapeDrawable
|
import com.google.android.material.shape.MaterialShapeDrawable
|
||||||
import com.google.android.material.textfield.TextInputEditText
|
import com.google.android.material.textfield.TextInputEditText
|
||||||
import com.google.android.material.transition.MaterialSharedAxis
|
import com.google.android.material.transition.MaterialFadeThrough
|
||||||
import net.yslibrary.android.keyboardvisibilityevent.KeyboardVisibilityEvent
|
import net.yslibrary.android.keyboardvisibilityevent.KeyboardVisibilityEvent
|
||||||
import java.util.*
|
import java.util.*
|
||||||
import kotlin.collections.ArrayList
|
import kotlin.collections.ArrayList
|
||||||
|
@ -63,8 +63,8 @@ class SearchFragment : AbsMainActivityFragment(R.layout.fragment_search), TextWa
|
||||||
|
|
||||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||||
super.onViewCreated(view, savedInstanceState)
|
super.onViewCreated(view, savedInstanceState)
|
||||||
enterTransition = MaterialSharedAxis(MaterialSharedAxis.Z, true).addTarget(view)
|
enterTransition = MaterialFadeThrough().addTarget(view)
|
||||||
returnTransition = MaterialSharedAxis(MaterialSharedAxis.Z, false)
|
reenterTransition = MaterialFadeThrough().addTarget(view)
|
||||||
_binding = FragmentSearchBinding.bind(view)
|
_binding = FragmentSearchBinding.bind(view)
|
||||||
mainActivity.setSupportActionBar(binding.toolbar)
|
mainActivity.setSupportActionBar(binding.toolbar)
|
||||||
libraryViewModel.clearSearchResult()
|
libraryViewModel.clearSearchResult()
|
||||||
|
@ -147,7 +147,7 @@ class SearchFragment : AbsMainActivityFragment(R.layout.fragment_search), TextWa
|
||||||
super.onChanged()
|
super.onChanged()
|
||||||
binding.empty.isVisible = searchAdapter.itemCount < 1
|
binding.empty.isVisible = searchAdapter.itemCount < 1
|
||||||
val height = dipToPix(52f)
|
val height = dipToPix(52f)
|
||||||
binding.recyclerView.setPadding(0, 0, 0, height.toInt())
|
binding.recyclerView.updatePadding(bottom = height.toInt())
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
binding.recyclerView.apply {
|
binding.recyclerView.apply {
|
||||||
|
@ -226,11 +226,6 @@ class SearchFragment : AbsMainActivityFragment(R.layout.fragment_search), TextWa
|
||||||
hideKeyboard(view)
|
hideKeyboard(view)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onResume() {
|
|
||||||
super.onResume()
|
|
||||||
mainActivity.setBottomNavVisibility(false)
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun hideKeyboard(view: View?) {
|
private fun hideKeyboard(view: View?) {
|
||||||
if (view != null) {
|
if (view != null) {
|
||||||
val imm: InputMethodManager =
|
val imm: InputMethodManager =
|
||||||
|
|
|
@ -37,6 +37,7 @@ data class CategoryInfo(
|
||||||
Artists(R.id.action_artist, R.string.artists, R.drawable.asld_artist),
|
Artists(R.id.action_artist, R.string.artists, R.drawable.asld_artist),
|
||||||
Playlists(R.id.action_playlist, R.string.playlists, R.drawable.asld_playlist),
|
Playlists(R.id.action_playlist, R.string.playlists, R.drawable.asld_playlist),
|
||||||
Genres(R.id.action_genre, R.string.genres, R.drawable.asld_guitar),
|
Genres(R.id.action_genre, R.string.genres, R.drawable.asld_guitar),
|
||||||
Folder(R.id.action_folder, R.string.folders, R.drawable.asld_folder);
|
Folder(R.id.action_folder, R.string.folders, R.drawable.asld_folder),
|
||||||
|
Search(R.id.action_search, R.string.action_search, R.drawable.ic_search);
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -36,7 +36,8 @@ object PreferenceUtil {
|
||||||
CategoryInfo(CategoryInfo.Category.Artists, true),
|
CategoryInfo(CategoryInfo.Category.Artists, true),
|
||||||
CategoryInfo(CategoryInfo.Category.Playlists, true),
|
CategoryInfo(CategoryInfo.Category.Playlists, true),
|
||||||
CategoryInfo(CategoryInfo.Category.Genres, false),
|
CategoryInfo(CategoryInfo.Category.Genres, false),
|
||||||
CategoryInfo(CategoryInfo.Category.Folder, false)
|
CategoryInfo(CategoryInfo.Category.Folder, false),
|
||||||
|
CategoryInfo(CategoryInfo.Category.Search, false)
|
||||||
)
|
)
|
||||||
|
|
||||||
var libraryCategory: List<CategoryInfo>
|
var libraryCategory: List<CategoryInfo>
|
||||||
|
|
|
@ -70,7 +70,7 @@
|
||||||
</fragment>
|
</fragment>
|
||||||
|
|
||||||
<fragment
|
<fragment
|
||||||
android:id="@+id/searchFragment"
|
android:id="@+id/action_search"
|
||||||
android:name="code.name.monkey.retromusic.fragments.search.SearchFragment"
|
android:name="code.name.monkey.retromusic.fragments.search.SearchFragment"
|
||||||
android:label="SearchFragment"
|
android:label="SearchFragment"
|
||||||
tools:layout="@layout/fragment_search" />
|
tools:layout="@layout/fragment_search" />
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue