When I use Flow ( kotlinx.coroutines.flow.Flow)
I get null as response. Dao code below :
@Query("SELECT * FROM connect")
fun getProfiles(): Flow<List<ConnectModel>>
But when I use List<ConnectModel>
and remove flow I get expected result.
My connectImpl code:
override fun getProfilesFromDB(): LiveData<List<ConnectModel>>
{
val result = connectDAO.getProfiles()
return result.asLiveData()
}
In viewmodel
private val _users = MutableLiveData<List<ConnectModel>>()
val users: LiveData<List<ConnectModel>>
get() = _users
fun getConnectUsers() {
viewModelScope.launch {
val response = getConnectUsersFromDbUseCase.invoke()
_users.postValue(response.value)
}
}
If I make the _users lateinit then it works fine but not when it is MutableLiveData.
In Fragment
viewModel.users.observe(viewLifecycleOwner,{list ->
if (list != null) {
for(profile in list)
Timber.i("Observer Active ${profile.name}")
}
})
Database
Any kind of help is appreciated. Thanks in advance.