Bring back default tab feature

This time with navigation components

Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
This commit is contained in:
Aayush Gupta
2023-08-15 00:14:14 +05:30
parent ed8fb3b7df
commit c627db3e65
54 changed files with 154 additions and 8 deletions

View File

@@ -59,6 +59,7 @@ import com.aurora.store.data.providers.NetworkProvider
import com.aurora.store.databinding.ActivityMainBinding
import com.aurora.store.util.Log
import com.aurora.store.util.Preferences
import com.aurora.store.util.Preferences.PREFERENCE_DEFAULT_SELECTED_TAB
import com.aurora.store.view.ui.sheets.NetworkDialogSheet
import com.aurora.store.view.ui.sheets.SelfUpdateSheet
import com.aurora.store.viewmodel.MainViewModel
@@ -160,13 +161,18 @@ class MainActivity : AppCompatActivity() {
}
// Handle quick exit from back actions
val defaultTab = when (Preferences.getInteger(this, PREFERENCE_DEFAULT_SELECTED_TAB)) {
1 -> R.id.gamesContainerFragment
2 -> R.id.updatesFragment
else -> R.id.appsContainerFragment
}
onBackPressedDispatcher.addCallback(this) {
if (!B.drawerLayout.isOpen) {
if (navController.currentDestination?.id in topLevelFrags) {
if (navController.currentDestination?.id == R.id.appsContainerFragment) {
if (navController.currentDestination?.id == defaultTab) {
finish()
} else {
navController.navigate(R.id.appsContainerFragment)
navController.navigate(defaultTab)
}
} else {
navController.navigateUp()

View File

@@ -34,6 +34,7 @@ object Preferences {
const val PREFERENCE_THEME_TYPE = "PREFERENCE_THEME_TYPE"
const val PREFERENCE_THEME_ACCENT = "PREFERENCE_THEME_ACCENT"
const val PREFERENCE_FOR_YOU = "PREFERENCE_FOR_YOU"
const val PREFERENCE_DEFAULT_SELECTED_TAB = "PREFERENCE_DEFAULT_SELECTED_TAB"
const val PREFERENCE_SIMILAR = "PREFERENCE_SIMILAR"
const val PREFERENCE_INTRO = "PREFERENCE_INTRO"

View File

@@ -33,6 +33,7 @@ import com.aurora.store.databinding.FragmentOnboardingBinding
import com.aurora.store.util.Preferences
import com.aurora.store.util.Preferences.PREFERENCE_AUTO_DELETE
import com.aurora.store.util.Preferences.PREFERENCE_DEFAULT
import com.aurora.store.util.Preferences.PREFERENCE_DEFAULT_SELECTED_TAB
import com.aurora.store.util.Preferences.PREFERENCE_DOWNLOAD_ACTIVE
import com.aurora.store.util.Preferences.PREFERENCE_DOWNLOAD_EXTERNAL
import com.aurora.store.util.Preferences.PREFERENCE_FILTER_FDROID
@@ -153,6 +154,7 @@ class OnboardingFragment : Fragment(R.layout.fragment_onboarding) {
/*Customization*/
save(PREFERENCE_THEME_TYPE, 0)
save(PREFERENCE_THEME_ACCENT, if (isSAndAbove()) 0 else 1)
save(PREFERENCE_DEFAULT_SELECTED_TAB, 0)
save(PREFERENCE_FOR_YOU, true)
save(PREFERENCE_SIMILAR, true)

View File

@@ -31,6 +31,7 @@ import com.aurora.store.R
import com.aurora.store.data.AuthState
import com.aurora.store.databinding.FragmentSplashBinding
import com.aurora.store.util.Preferences
import com.aurora.store.util.Preferences.PREFERENCE_DEFAULT_SELECTED_TAB
import com.aurora.store.util.Preferences.PREFERENCE_INTRO
import com.aurora.store.viewmodel.auth.AuthViewModel
import com.bumptech.glide.load.resource.bitmap.RoundedCorners
@@ -92,9 +93,7 @@ class SplashFragment : Fragment(R.layout.fragment_splash) {
}
AuthState.Valid -> {
findNavController().navigate(
SplashFragmentDirections.actionSplashFragmentToNavigationApps()
)
navigateToDefaultTab()
}
AuthState.Available -> {
@@ -108,9 +107,7 @@ class SplashFragment : Fragment(R.layout.fragment_splash) {
}
AuthState.SignedIn -> {
findNavController().navigate(
SplashFragmentDirections.actionSplashFragmentToNavigationApps()
)
navigateToDefaultTab()
}
AuthState.SignedOut -> {
@@ -195,4 +192,14 @@ class SplashFragment : Fragment(R.layout.fragment_splash) {
isEnabled = true
}
}
private fun navigateToDefaultTab() {
val directions =
when (Preferences.getInteger(requireContext(), PREFERENCE_DEFAULT_SELECTED_TAB)) {
1 -> SplashFragmentDirections.actionSplashFragmentToGamesContainerFragment()
2 -> SplashFragmentDirections.actionSplashFragmentToUpdatesFragment()
else -> SplashFragmentDirections.actionSplashFragmentToNavigationApps()
}
findNavController().navigate(directions)
}
}