package com.github.captain_miao.agera.tutorial; import android.os.Bundle; import android.support.annotation.Nullable; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import com.github.captain_miao.agera.tutorial.base.BaseFragment; import com.github.captain_miao.agera.tutorial.databinding.LoadImageByUrlBinding; import com.github.captain_miao.agera.tutorial.helper.MockRandomData; import com.github.captain_miao.agera.tutorial.observable.OnClickObservable; import com.google.android.agera.MutableRepository; import com.google.android.agera.Repositories; import com.google.android.agera.Result; import com.google.android.agera.Updatable; /** * @author YanLu * @since 16/4/26 */ public class SimpleFragmentC extends BaseFragment implements Updatable { private LoadImageByUrlBinding mBinding; @Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setHasOptionsMenu(true); } @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { mBinding = LoadImageByUrlBinding.inflate(inflater, container, false); return mBinding.getRoot(); } @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); setUpRepository(); mBinding.setObservable(mObservable); } //for agera private OnClickObservable mObservable; private MutableRepository<Result<String>> mRepository; @Override public void onResume() { super.onResume(); mRepository.addUpdatable(this); } @Override public void onPause() { super.onPause(); mRepository.removeUpdatable(this); } @Override public void onDestroy() { super.onDestroy(); } private void setUpRepository() { mObservable = new OnClickObservable() { @Override public void onClick( ) { mRepository.accept(Result.success(MockRandomData.getRandomImage())); } }; mRepository = Repositories.mutableRepository(Result.success(MockRandomData.getRandomImage())); //initialization //mRepository.accept(Result.success(MockRandomData.getRandomImage())); } @Override public void update() { if(mRepository.get().succeeded()) { String result = mRepository.get().get(); mBinding.setImageUrl(result); } } }