Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class PacksFragment : BaseCompatFragment() {
- @Inject
- lateinit var presenter: PacksFragmentPresenter
- override fun onCreateView(
- ...
- }
- override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
- ...
- LibApp.get().injector.inject(this)
- ...
- //Working good
- val userData = ViewModelProviders.of(this).get(UserViewModel::class.java).getData()
- val user = userData.value
- //Correct value logged
- Timber.e(user?.coins.toString())
- }
- fun updateToolbar() {
- Timber.e("Loaded?")
- //"Loaded?" logged, so method called. Next line is reason of Error
- val userData = ViewModelProviders.of(this).get(UserViewModel::class.java).getData()
- presenter.openNewPack(packId)
- }
- }
- class PacksFragmentPresenter @Inject constructor(
- private val packsFragment: PacksFragment,
- private val getCoinsFromUserCase: GetCoinsFromUserCase
- ) {
- fun openNewPack(packId: Int) {
- if (getCoinsFromUserCase.getCoinsFromUser()){
- packsFragment.updateToolbar()
- }
- }
- }
- class GetCoinsFromUserCase {
- fun getCoinsFromUser(): Boolean {
- val userViewModel = UserViewModel()
- userViewModel.takeCoins(10)
- return true
- }
- }
- class UserViewModel : ViewModel(), UserApi {
- private val data = MutableLiveData<User>()
- fun setData(user: User) {
- //Logged fine
- Timber.e("User setted")
- data.value = user
- }
- fun getData(): LiveData<User> {
- if (data.value == null) {
- val user = User()
- user.coins = 200
- data.value = user
- }
- //Logged fine, "false"
- Timber.e("User getted")
- Timber.e("Is user == null? %s", (data.value == null).toString())
- return data
- }
- override fun takeCoins(value: Int) {
- //Specially commented it
- // getCoins(value)
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement