Skip to content

Commit 09333ef

Browse files
committed
Fix back button
1 parent 9a1db57 commit 09333ef

2 files changed

Lines changed: 16 additions & 3 deletions

File tree

llm/android/LlamaDemo/app/src/main/java/com/example/executorchllamademo/ui/screens/ChatScreen.kt

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,10 +37,13 @@ import androidx.compose.runtime.LaunchedEffect
3737
import androidx.compose.runtime.remember
3838
import androidx.compose.ui.Modifier
3939
import androidx.compose.ui.platform.LocalFocusManager
40+
import androidx.compose.ui.platform.LocalLifecycleOwner
4041
import androidx.compose.ui.res.stringResource
4142
import androidx.compose.ui.text.font.FontWeight
4243
import androidx.compose.ui.unit.dp
4344
import androidx.compose.ui.unit.sp
45+
import androidx.lifecycle.Lifecycle
46+
import androidx.lifecycle.LifecycleEventObserver
4447
import com.example.executorchllamademo.ui.components.ChatInput
4548
import com.example.executorchllamademo.ui.components.MessageItem
4649
import com.example.executorchllamademo.ui.theme.LocalAppColors
@@ -76,9 +79,18 @@ fun ChatScreen(
7679
}
7780
}
7881

79-
// Check settings on resume
80-
LaunchedEffect(Unit) {
81-
viewModel.checkAndLoadSettings()
82+
// Check settings on resume (including when navigating back from Settings)
83+
val lifecycleOwner = LocalLifecycleOwner.current
84+
DisposableEffect(lifecycleOwner) {
85+
val observer = LifecycleEventObserver { _, event ->
86+
if (event == Lifecycle.Event.ON_RESUME) {
87+
viewModel.checkAndLoadSettings()
88+
}
89+
}
90+
lifecycleOwner.lifecycle.addObserver(observer)
91+
onDispose {
92+
lifecycleOwner.lifecycle.removeObserver(observer)
93+
}
8294
}
8395

8496
// Save messages when composable leaves composition

llm/android/LlamaDemo/app/src/main/java/com/example/executorchllamademo/ui/viewmodel/SettingsViewModel.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -197,6 +197,7 @@ class SettingsViewModel : ViewModel() {
197197
val newSettings = SettingsFields(settingsFields)
198198
newSettings.saveIsClearChatHistory(true)
199199
settingsFields = newSettings
200+
saveSettings()
200201
}
201202

202203
// Validation

0 commit comments

Comments
 (0)