package com.liuguangqiang.idaily.ui.model; import com.liuguangqiang.idaily.domain.RetrofitClient; import com.liuguangqiang.idaily.domain.entity.Story; import com.liuguangqiang.idaily.domain.service.StoryService; import javax.inject.Inject; import rx.Observer; import rx.Subscription; import rx.android.schedulers.AndroidSchedulers; import rx.schedulers.Schedulers; /** * Created by Eric on 15/6/9. */ public class StoryModel { private StoryService storyService; @Inject public StoryModel() { storyService = RetrofitClient.getInstance().create(StoryService.class); } public Subscription getStory(int id, Observer<Story> observer) { return storyService.getStory(id).subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(observer); } public String getBody(Story story) { if (story == null) return ""; return loadDataWithCSS(story.getBody(), story.getCss().get(0)); } private String loadDataWithCSS(String loadData, String cssPath) { String header = "<html><head><link href=\"%s\" type=\"text/css\" rel=\"stylesheet\"/></head><body>"; String footer = "</body></html>"; StringBuilder sb = new StringBuilder(); sb.append(String.format(header, cssPath)); sb.append(loadData); sb.append(footer); return sb.toString(); } }