@@ -37,10 +37,13 @@ import androidx.compose.runtime.LaunchedEffect
3737import androidx.compose.runtime.remember
3838import androidx.compose.ui.Modifier
3939import androidx.compose.ui.platform.LocalFocusManager
40+ import androidx.compose.ui.platform.LocalLifecycleOwner
4041import androidx.compose.ui.res.stringResource
4142import androidx.compose.ui.text.font.FontWeight
4243import androidx.compose.ui.unit.dp
4344import androidx.compose.ui.unit.sp
45+ import androidx.lifecycle.Lifecycle
46+ import androidx.lifecycle.LifecycleEventObserver
4447import com.example.executorchllamademo.ui.components.ChatInput
4548import com.example.executorchllamademo.ui.components.MessageItem
4649import 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
0 commit comments