'How can i store mutablestates from viewmodel even navigate in my app?

i have a list from firebase database, i'm getting my values in viewmodel as mutableState and show in compose components. But if i navigate in my app, my list is gone because of (i think) my viewmodel instance recreated again and erase the list. I dont want to firabase call again. How can i solve that.

ViewModel:

var acceptedFriendRequestList = mutableStateOf<List<FriendListRow>>(listOf())
        private set

fun loadAcceptedFriendRequestListFromFirebase(){
        viewModelScope.launch {
            useCases.loadAcceptedFriendRequestListFromFirebase.invoke().collect { response ->
                when(response){
                    is Response.Loading -> {
                    }
                    is Response.Success -> {
                        if(response.data.size != 0){
                            acceptedFriendRequestList.value = response.data
                        }

                        delay(1000)
                        isRefreshing.value = false
                    }
                    is Response.Error -> {}
                }
            }
        }
    }

View:

@Composable
fun UserListScreen(){
    val acceptedFriendRequestList = userListViewModel.acceptedFriendRequestList
}

i am using this variable in lazyColumn. How can i prevent acceptedFriendRequestList value when i'am navigate and coming back in app.



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source