Fix navigation reset on configuration change
For example when rotating
This commit is contained in:
parent
ae6c5321e8
commit
9813ff3ed7
2 changed files with 17 additions and 2 deletions
|
@ -4,6 +4,7 @@ import android.app.UiModeManager
|
|||
import android.content.res.Configuration
|
||||
import android.os.Bundle
|
||||
import android.view.View
|
||||
import androidx.activity.viewModels
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.navigation.fragment.NavHostFragment
|
||||
import androidx.navigation.ui.AppBarConfiguration
|
||||
|
@ -15,6 +16,7 @@ import dagger.hilt.android.AndroidEntryPoint
|
|||
import dev.jdtech.jellyfin.database.ServerDatabaseDao
|
||||
import dev.jdtech.jellyfin.databinding.ActivityMainBinding
|
||||
import dev.jdtech.jellyfin.utils.loadDownloadLocation
|
||||
import dev.jdtech.jellyfin.viewmodels.MainViewModel
|
||||
import javax.inject.Inject
|
||||
|
||||
@AndroidEntryPoint
|
||||
|
@ -23,6 +25,8 @@ class MainActivity : AppCompatActivity() {
|
|||
private lateinit var binding: ActivityMainBinding
|
||||
private lateinit var uiModeManager: UiModeManager
|
||||
|
||||
private val viewModel : MainViewModel by viewModels()
|
||||
|
||||
@Inject
|
||||
lateinit var database: ServerDatabaseDao
|
||||
|
||||
|
@ -43,14 +47,18 @@ class MainActivity : AppCompatActivity() {
|
|||
|
||||
if (uiModeManager.currentModeType == Configuration.UI_MODE_TYPE_TELEVISION) {
|
||||
graph.setStartDestination(R.id.homeFragmentTv)
|
||||
navController.setGraph(graph, intent.extras)
|
||||
}
|
||||
|
||||
val nServers = database.getServersCount()
|
||||
if (nServers < 1) {
|
||||
graph.setStartDestination(R.id.addServerFragment)
|
||||
if (!viewModel.startDestinationChanged) {
|
||||
graph.setStartDestination(R.id.addServerFragment)
|
||||
navController.setGraph(graph, intent.extras)
|
||||
viewModel.startDestinationChanged = true
|
||||
}
|
||||
}
|
||||
|
||||
navController.setGraph(graph, intent.extras)
|
||||
|
||||
if (uiModeManager.currentModeType != Configuration.UI_MODE_TYPE_TELEVISION) {
|
||||
val navView: NavigationBarView = binding.navView as NavigationBarView
|
||||
|
|
|
@ -0,0 +1,7 @@
|
|||
package dev.jdtech.jellyfin.viewmodels
|
||||
|
||||
import androidx.lifecycle.ViewModel
|
||||
|
||||
class MainViewModel : ViewModel() {
|
||||
var startDestinationChanged = false
|
||||
}
|
Loading…
Reference in a new issue