package com.sxjs.common.model; import android.content.Context; import com.google.gson.Gson; import com.sxjs.common.model.dao.DataBaseHelper; import com.sxjs.common.model.http.BaseApiService; import com.sxjs.common.model.http.HttpHelper; import com.sxjs.common.model.sp.SharePreferenceHelper; import com.sxjs.common.util.FillUtil; import java.io.InputStream; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.inject.Inject; import javax.inject.Singleton; import io.reactivex.Observable; import io.reactivex.ObservableEmitter; import io.reactivex.ObservableOnSubscribe; import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.disposables.Disposable; import io.reactivex.observers.DisposableObserver; import io.reactivex.schedulers.Schedulers; import okhttp3.ResponseBody; /** * Created by admin on 2017/3/9. */ @Singleton public class DataManager { private HttpHelper httpHelper; private SharePreferenceHelper sharePreferenceHelper; private DataBaseHelper dataBaseHelper; private Context context; @Inject public DataManager( Context context ,HttpHelper httpHelper , SharePreferenceHelper sharePreferenceHelper , DataBaseHelper dataBaseHelper) { this.context = context; this.httpHelper = httpHelper; this.sharePreferenceHelper = sharePreferenceHelper; this.dataBaseHelper = dataBaseHelper; } public Disposable getMainData(int start , int count , DisposableObserver<ResponseBody> consumer){ Map<String,Object> map = new HashMap<>(2); map.put("start",start); map.put("count",count); return changeIOToMainThread(httpHelper.getService(BaseApiService.class).executeGet("http://www.baidu.com",map),consumer); } private Disposable changeIOToMainThread(Observable<ResponseBody> observable ,DisposableObserver<ResponseBody> consumer ){ return observable.subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribeWith(consumer); } public void saveSPData(String key , String value){ sharePreferenceHelper.saveData(key , value); } public void saveSPMapData(Map<String,String> map){ sharePreferenceHelper.saveData(map); } public String getSPData(String key){ return sharePreferenceHelper.getValue(key); } public void deleteSPData(){ sharePreferenceHelper.deletePreference(); } public Map<String ,String> getSPMapData(){ return sharePreferenceHelper.readData(); } public List<String> getTypeOfNameData(){ ArrayList<String> list = new ArrayList<>(20); for (int i = 0; i < 20; i++) { list.add("家用电器"); } return list; } public<S> Disposable getData(DisposableObserver<S> consumer , final Class<S> clazz , final String fillName) { return Observable.create(new ObservableOnSubscribe<S>() { @Override public void subscribe(ObservableEmitter<S> e) throws Exception { InputStream is = context.getAssets().open(fillName); String text = FillUtil.readTextFromFile(is); Gson gson = new Gson(); e.onNext(gson.fromJson(text, clazz)); } }).subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribeWith(consumer); } }