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
}
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
if (PreferenceUtil.rememberLastTab) {
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 com.google.android.material.shape.MaterialShapeDrawable
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.FastScrollerBuilder
@ -105,10 +104,8 @@ abstract class AbsRecyclerViewFragment<A : RecyclerView.Adapter<*>, LM : Recycle
private fun setupToolbar() {
binding.toolbar.setNavigationOnClickListener {
exitTransition = MaterialSharedAxis(MaterialSharedAxis.Z, true).addTarget(requireView())
reenterTransition = MaterialSharedAxis(MaterialSharedAxis.Z, false)
findNavController().navigate(
R.id.searchFragment,
R.id.action_search,
null,
navOptions
)

View file

@ -24,9 +24,10 @@ import android.webkit.MimeTypeMap
import android.widget.Toast
import androidx.activity.OnBackPressedCallback
import androidx.appcompat.widget.PopupMenu
import androidx.core.view.isVisible
import androidx.loader.app.LoaderManager
import androidx.loader.content.Loader
import androidx.navigation.Navigation.findNavController
import androidx.navigation.fragment.findNavController
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
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.providers.BlacklistStore
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.ThemedFastScroller.create
import code.name.monkey.retromusic.views.BreadCrumbLayout.Crumb
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.destroy
import com.afollestad.materialcab.attached.isActive
@ -128,10 +127,8 @@ class FoldersFragment : AbsMainActivityFragment(R.layout.fragment_folder),
}
private fun setUpTitle() {
binding.toolbar.setNavigationOnClickListener { v: View? ->
exitTransition = MaterialSharedAxis(MaterialSharedAxis.Z, true).setDuration(300)
reenterTransition = MaterialSharedAxis(MaterialSharedAxis.Z, false).setDuration(300)
findNavController(v!!).navigate(R.id.searchFragment, null, navOptions)
binding.toolbar.setNavigationOnClickListener {
findNavController().navigate(R.id.action_search, null, navOptions)
}
binding.appNameText.text = resources.getString(R.string.folders)
}
@ -461,8 +458,7 @@ class FoldersFragment : AbsMainActivityFragment(R.layout.fragment_folder),
private fun checkIsEmpty() {
if (_binding != null) {
binding.emptyEmoji.text = getEmojiByUnicode(0x1F631)
binding.empty.visibility =
if (adapter == null || adapter!!.itemCount == 0) View.VISIBLE else View.GONE
binding.empty.isVisible = adapter?.itemCount == 0
}
}

View file

@ -175,10 +175,7 @@ class HomeFragment :
private fun setupTitle() {
binding.toolbar.setNavigationOnClickListener {
exitTransition = MaterialSharedAxis(MaterialSharedAxis.Z, true).addTarget(binding.root)
reenterTransition =
MaterialSharedAxis(MaterialSharedAxis.Z, false)
findNavController().navigate(R.id.searchFragment, null, navOptions)
findNavController().navigate(R.id.action_search, null, navOptions)
}
val hexColor = String.format("#%06X", 0xFFFFFF and accentColor())
val appName = HtmlCompat.fromHtml(

View file

@ -54,7 +54,7 @@ class LibraryFragment : AbsMainActivityFragment(R.layout.fragment_library) {
mainActivity.supportActionBar?.title = null
binding.toolbar.setNavigationOnClickListener {
findNavController().navigate(
R.id.searchFragment,
R.id.action_search,
null,
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.shape.MaterialShapeDrawable
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 java.util.*
import kotlin.collections.ArrayList
@ -63,8 +63,8 @@ class SearchFragment : AbsMainActivityFragment(R.layout.fragment_search), TextWa
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
enterTransition = MaterialSharedAxis(MaterialSharedAxis.Z, true).addTarget(view)
returnTransition = MaterialSharedAxis(MaterialSharedAxis.Z, false)
enterTransition = MaterialFadeThrough().addTarget(view)
reenterTransition = MaterialFadeThrough().addTarget(view)
_binding = FragmentSearchBinding.bind(view)
mainActivity.setSupportActionBar(binding.toolbar)
libraryViewModel.clearSearchResult()
@ -147,7 +147,7 @@ class SearchFragment : AbsMainActivityFragment(R.layout.fragment_search), TextWa
super.onChanged()
binding.empty.isVisible = searchAdapter.itemCount < 1
val height = dipToPix(52f)
binding.recyclerView.setPadding(0, 0, 0, height.toInt())
binding.recyclerView.updatePadding(bottom = height.toInt())
}
})
binding.recyclerView.apply {
@ -226,11 +226,6 @@ class SearchFragment : AbsMainActivityFragment(R.layout.fragment_search), TextWa
hideKeyboard(view)
}
override fun onResume() {
super.onResume()
mainActivity.setBottomNavVisibility(false)
}
private fun hideKeyboard(view: View?) {
if (view != null) {
val imm: InputMethodManager =

View file

@ -37,6 +37,7 @@ data class CategoryInfo(
Artists(R.id.action_artist, R.string.artists, R.drawable.asld_artist),
Playlists(R.id.action_playlist, R.string.playlists, R.drawable.asld_playlist),
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.Playlists, true),
CategoryInfo(CategoryInfo.Category.Genres, false),
CategoryInfo(CategoryInfo.Category.Folder, false)
CategoryInfo(CategoryInfo.Category.Folder, false),
CategoryInfo(CategoryInfo.Category.Search, false)
)
var libraryCategory: List<CategoryInfo>

View file

@ -70,7 +70,7 @@
</fragment>
<fragment
android:id="@+id/searchFragment"
android:id="@+id/action_search"
android:name="code.name.monkey.retromusic.fragments.search.SearchFragment"
android:label="SearchFragment"
tools:layout="@layout/fragment_search" />