Bring back default tab feature
This time with navigation components Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
This commit is contained in:
@@ -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()
|
||||
|
||||
@@ -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"
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user