From 61839405ce23fce56178665756115cd45b243b8e Mon Sep 17 00:00:00 2001 From: OxygenCobalt Date: Fri, 20 May 2022 20:00:11 -0600 Subject: [PATCH] home: hide tabs when there is only one Hide the tab selector when there is only one tab. This is mostly to remove a redundant UI element that has no purpose when only one list is shown. --- .../main/java/org/oxycblt/auxio/home/HomeFragment.kt | 12 ++++++++++-- .../java/org/oxycblt/auxio/home/HomeViewModel.kt | 4 +--- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/org/oxycblt/auxio/home/HomeFragment.kt b/app/src/main/java/org/oxycblt/auxio/home/HomeFragment.kt index 5ce957f90..553fddd41 100644 --- a/app/src/main/java/org/oxycblt/auxio/home/HomeFragment.kt +++ b/app/src/main/java/org/oxycblt/auxio/home/HomeFragment.kt @@ -21,6 +21,7 @@ import android.os.Bundle import android.view.LayoutInflater import android.view.MenuItem import androidx.appcompat.widget.Toolbar +import androidx.core.view.isVisible import androidx.core.view.iterator import androidx.fragment.app.Fragment import androidx.fragment.app.activityViewModels @@ -56,8 +57,6 @@ import org.oxycblt.auxio.util.unlikelyToBeNull * The main "Launching Point" fragment of Auxio, allowing navigation to the detail views for each * respective item. * @author OxygenCobalt - * - * TODO: Make tabs invisible when there is only one */ class HomeFragment : ViewBindingFragment(), Toolbar.OnMenuItemClickListener { private val playbackModel: PlaybackViewModel by activityViewModels() @@ -75,6 +74,8 @@ class HomeFragment : ViewBindingFragment(), Toolbar.OnMenuI setOnMenuItemClickListener(this@HomeFragment) } + updateTabConfiguration() + binding.homePager.apply { adapter = HomePagerAdapter() @@ -224,10 +225,17 @@ class HomeFragment : ViewBindingFragment(), Toolbar.OnMenuI private fun handleRecreateTabs(recreate: Boolean) { if (recreate) { requireBinding().homePager.recreate() + updateTabConfiguration() homeModel.finishRecreateTabs() } } + private fun updateTabConfiguration() { + if (homeModel.tabs.size == 1) { + requireBinding().homeTabs.isVisible = false + } + } + private fun handleLoaderResponse(response: MusicStore.Response?) { val binding = requireBinding() when (response) { diff --git a/app/src/main/java/org/oxycblt/auxio/home/HomeViewModel.kt b/app/src/main/java/org/oxycblt/auxio/home/HomeViewModel.kt index adffe50dd..d2aa4745e 100644 --- a/app/src/main/java/org/oxycblt/auxio/home/HomeViewModel.kt +++ b/app/src/main/java/org/oxycblt/auxio/home/HomeViewModel.kt @@ -91,9 +91,7 @@ class HomeViewModel : ViewModel(), SettingsManager.Callback, MusicStore.Callback _shouldRecreateTabs.value = false } - /** - * Get the specific sort for the given [DisplayMode]. - */ + /** Get the specific sort for the given [DisplayMode]. */ fun getSortForDisplay(displayMode: DisplayMode): Sort { return when (displayMode) { DisplayMode.SHOW_SONGS -> settingsManager.libSongSort