I'm trying to implement an onboarding screen on my app which uses jetpack compose, the screen will open only for the first time of using the app, and "onboarding" boolean value is saved on datastore preferences afterwards. if you know any better way to store datastore preferences i'd like to know too please, my minimal example that shows the problem:
val Context.dataStore: DataStore<Preferences> by preferencesDataStore(name = "settings")
val ONBOARDING = booleanPreferencesKey("onboarding")
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
NearbyConnectionsApi.setContext(applicationContext)
val onBoarding: Flow<Boolean> = baseContext.dataStore.data
.map { preferences ->
preferences[ONBOARDING] ?: false
}
super.onCreate(savedInstanceState)
setContent {
val navController = rememberNavController()
if(!onBoarding)//how to use the value here please
{
navController.navigate("onboarding"){
popUpTo(0)
}
}
//....screen implementation
}
how can i use the value of flow value please? thanks in advance