Skip to content

Commit 790610f

Browse files
committed
#2005 fix: NPE in onSaveInstanceState due to null navhostcontroller
1 parent c54dc7c commit 790610f

File tree

2 files changed

+7
-6
lines changed

2 files changed

+7
-6
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
## Fixed
66
- #2007 Volume up/down action bottom sheet is cut off on some devices.
77
- #2004 Do not crash when launching wireless debugging screen on some devices.
8+
- #2005 NPE in onSaveInstanceState
89

910
## [4.0.0](https://github.com/sds100/KeyMapper/releases/tag/v4.0.0)
1011

app/src/main/java/io/github/sds100/keymapper/MainFragment.kt

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ class MainFragment : Fragment() {
6060

6161
private lateinit var composeView: ComposeView
6262

63-
private lateinit var navController: NavHostController
63+
private var navController: NavHostController? = null
6464

6565
override fun onCreate(savedInstanceState: Bundle?) {
6666
super.onCreate(savedInstanceState)
@@ -98,7 +98,7 @@ class MainFragment : Fragment() {
9898
// is destroyed
9999
setViewCompositionStrategy(ViewCompositionStrategy.DisposeOnViewTreeLifecycleDestroyed)
100100
setContent {
101-
SetupNavigation(navigationProvider, navController)
101+
SetupNavigation(navigationProvider, navController!!)
102102

103103
KeyMapperTheme {
104104
BaseMainNavHost(
@@ -111,10 +111,10 @@ class MainFragment : Fragment() {
111111
),
112112
),
113113
),
114-
navController = navController,
114+
navController = navController!!,
115115
setupAccessibilityServiceDelegate = setupAccessibilityServiceDelegate,
116116
composableDestinations = {
117-
composableDestinations(navController)
117+
composableDestinations(navController!!)
118118
},
119119
)
120120
}
@@ -123,15 +123,15 @@ class MainFragment : Fragment() {
123123
}
124124

125125
override fun onSaveInstanceState(outState: Bundle) {
126-
navController.saveState()?.let(outState::putAll)
126+
navController?.saveState()?.let(outState::putAll)
127127

128128
super.onSaveInstanceState(outState)
129129
}
130130

131131
override fun onDestroyView() {
132132
// onSaveInstanceState is only called when the activity's onSaveInstanceState method
133133
// is called so use our own place to save the navigation state
134-
navigationProvider.savedState = navController.saveState()
134+
navigationProvider.savedState = navController?.saveState()
135135

136136
super.onDestroyView()
137137
}

0 commit comments

Comments
 (0)