android: Sort games alphabetically by default

This commit is contained in:
Charles Lombardo 2023-05-02 00:14:58 -04:00 committed by bunnei
parent 9f433e281a
commit 03541703fa

View File

@ -20,8 +20,10 @@ import org.yuzu.yuzu_emu.R
import org.yuzu.yuzu_emu.adapters.GameAdapter import org.yuzu.yuzu_emu.adapters.GameAdapter
import org.yuzu.yuzu_emu.databinding.FragmentGamesBinding import org.yuzu.yuzu_emu.databinding.FragmentGamesBinding
import org.yuzu.yuzu_emu.layout.AutofitGridLayoutManager import org.yuzu.yuzu_emu.layout.AutofitGridLayoutManager
import org.yuzu.yuzu_emu.model.Game
import org.yuzu.yuzu_emu.model.GamesViewModel import org.yuzu.yuzu_emu.model.GamesViewModel
import org.yuzu.yuzu_emu.model.HomeViewModel import org.yuzu.yuzu_emu.model.HomeViewModel
import java.util.Locale
class GamesFragment : Fragment() { class GamesFragment : Fragment() {
private var _binding: FragmentGamesBinding? = null private var _binding: FragmentGamesBinding? = null
@ -73,7 +75,7 @@ class GamesFragment : Fragment() {
binding.swipeRefresh.isRefreshing = isReloading binding.swipeRefresh.isRefreshing = isReloading
} }
gamesViewModel.games.observe(viewLifecycleOwner) { gamesViewModel.games.observe(viewLifecycleOwner) {
(binding.gridGames.adapter as GameAdapter).submitList(it) submitGamesList(it)
if (it.isEmpty()) { if (it.isEmpty()) {
binding.noticeText.visibility = View.VISIBLE binding.noticeText.visibility = View.VISIBLE
} else { } else {
@ -83,7 +85,7 @@ class GamesFragment : Fragment() {
gamesViewModel.shouldSwapData.observe(viewLifecycleOwner) { shouldSwapData -> gamesViewModel.shouldSwapData.observe(viewLifecycleOwner) { shouldSwapData ->
if (shouldSwapData) { if (shouldSwapData) {
(binding.gridGames.adapter as GameAdapter).submitList(gamesViewModel.games.value) submitGamesList(gamesViewModel.games.value!!)
gamesViewModel.setShouldSwapData(false) gamesViewModel.setShouldSwapData(false)
} }
} }
@ -107,6 +109,11 @@ class GamesFragment : Fragment() {
} }
} }
private fun submitGamesList(gameList: List<Game>) {
val sortedList = gameList.sortedBy { it.title.lowercase(Locale.getDefault()) }
(binding.gridGames.adapter as GameAdapter).submitList(sortedList)
}
override fun onDestroyView() { override fun onDestroyView() {
super.onDestroyView() super.onDestroyView()
_binding = null _binding = null