package com.liuguangqiang.idaily.ui.viewmodel; import android.databinding.BaseObservable; import android.databinding.Bindable; import android.os.Bundle; import com.liuguangqiang.idaily.domain.entity.Story; import com.liuguangqiang.idaily.ui.act.StoryActivity; import com.liuguangqiang.idaily.ui.model.StoryModel; import javax.inject.Inject; import rx.Observer; import rx.Subscription; /** * Created by Eric on 15/6/23. */ public class StoryViewModel extends BaseObservable { private StoryModel storyModel; @Bindable public Story story; public String title = ""; private Subscription subscription; @Inject public StoryViewModel(StoryModel storyMode) { this.storyModel = storyMode; } public void onDestroy() { if (subscription != null) { subscription.unsubscribe(); } } public void pushArguments(Bundle bundle) { Story story = bundle.getParcelable(StoryActivity.ARG_STORY); if (story != null) { setTitle(story.getTitle()); getStory(story.id); } } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getImage() { if (story == null) return ""; return story.getImage(); } public String getBody() { return storyModel.getBody(story); } public void setStory(Story story) { this.story = story; this.title = story.getTitle(); notifyChange(); } public Story getStory() { return story; } public void getStory(int id) { subscription = storyModel.getStory(id, new Observer<Story>() { @Override public void onCompleted() { } @Override public void onError(Throwable e) { } @Override public void onNext(Story story) { setStory(story); } }); } }