Имеет ли это смысл?AssetRepoImpl сначала проверяет базу данных и назначает currentUser, затем проверяет сервер (при необходимости) и обновляет currentUser на наблюдателе.Мне нужен доступ к currentUser внутри AssetRepo, чтобы получить активы.Так что я смотрю, чтобы увидеть, если это лучший путь / правильный путь?
class AssetRepositoryImpl(private val assetDao: AssetDao,
private val assetAPIDataSource: AssetAPIDataSource,
userAPIDataSource: UserAPIDataSource,
userDao: UserDao
) : AssetRepository {
private lateinit var currentUser: User
init {
//Check the database first
userDao.getCurrentUserLiveData().observeOnce {
println("ObserverOnce In AssetRepo Impl ${it.token}")
currentUser = it
}
//When there is an update then update here
userAPIDataSource.downloadedCurrentUser.observeForever {
currentUser = createUser(it)
}
assetAPIDataSource.downloadedCurrentAssets.observeForever { newCurrentAssets ->
persistFetchedCurrentAssets(newCurrentAssets)
}
}
Я должен отметить, что это работает, исправление (на самом деле это не так, если вы удаляете базу данных, она дает сбой :(Так что не правильный ответ. Надеюсь, у кого-то есть какое-то предложение). Однако то, что что-то работает, не всегда означает, что это правильно, и да, я знаю, что для правильного понимания многое не хватает. Надеюсь, большинство сможет понять, кто япытаюсь сделать. По сути, мне нужен способ доступа к пользователю внутри хранилища активов.