Skip to content

Commit

Permalink
Fix torrent list fragment being replaced on configuration change
Browse files Browse the repository at this point in the history
  • Loading branch information
Bartuzen committed Jul 6, 2024
1 parent 41503ce commit 0032f82
Showing 1 changed file with 10 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ import dev.bartuzen.qbitcontroller.model.ServerConfig
import dev.bartuzen.qbitcontroller.ui.settings.SettingsActivity
import dev.bartuzen.qbitcontroller.ui.torrentlist.TorrentListFragment
import dev.bartuzen.qbitcontroller.utils.applySystemBarInsets
import dev.bartuzen.qbitcontroller.utils.getParcelableCompat
import dev.bartuzen.qbitcontroller.utils.launchAndCollectLatestIn
import dev.bartuzen.qbitcontroller.utils.setPositiveButton
import dev.bartuzen.qbitcontroller.utils.showDialog
Expand Down Expand Up @@ -57,6 +58,8 @@ class MainActivity : AppCompatActivity() {

private val permissionLauncher = registerForActivityResult(ActivityResultContracts.RequestPermission()) {}

private var currentServerConfig: ServerConfig? = null

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityMainBinding.inflate(layoutInflater)
Expand Down Expand Up @@ -165,7 +168,7 @@ class MainActivity : AppCompatActivity() {
}
}

var currentServerConfig: ServerConfig? = null
currentServerConfig = savedInstanceState?.getParcelableCompat("currentServerConfig")
viewModel.currentServer.launchAndCollectLatestIn(this) { serverConfig ->
serverListAdapter.selectedServerId = serverConfig?.id ?: -1

Expand Down Expand Up @@ -205,6 +208,12 @@ class MainActivity : AppCompatActivity() {
}
}

override fun onSaveInstanceState(outState: Bundle) {
super.onSaveInstanceState(outState)

outState.putParcelable("currentServerConfig", currentServerConfig)
}

override fun onRestoreInstanceState(savedInstanceState: Bundle) {
super.onRestoreInstanceState(savedInstanceState)

Expand Down

0 comments on commit 0032f82

Please sign in to comment.