Added Search tab

This commit is contained in:
Prathamesh More 2022-01-15 00:07:58 +05:30
parent f769740d17
commit ff1c83c91d
9 changed files with 18 additions and 31 deletions

View file

@ -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)

View file

@ -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
) )

View file

@ -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
} }
} }

View file

@ -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(

View file

@ -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
) )

View file

@ -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 =

View file

@ -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);
} }
} }

View file

@ -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>

View file

@ -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" />