// Path: app/src/main/java/com/example/app/rxjava/module/main/model/ChartModel.java
// public class ChartModel extends BaseModel implements ChartIA {
//     private static final String ENDPOINT = "http://m.xueka.com";
//     private final Service mService;
// 
//     public ChartModel() {
//         // 适配器
//         Retrofit mRetrofit = getRetrofitBuilder()
//                 .baseUrl(ENDPOINT)
//                 .addConverterFactory(HtmlConverterFactory.create())
//                 .build();
// 
//         // 服务
//         mService = mRetrofit.create(Service.class);
//     }
// 
//     @Override
//     public Observable<LineData> getServerData(int count, float range) {
//         mService.getData().flatMap(new Func1<String, Observable<?>>() {
//             @Override
//             public Observable<?> call(String data) {
//                 Log.e("result", data);
//                 return null;
//             }
//         });
// 
//         ArrayList<String> xVals = new ArrayList<String>();
//         for (int i = 0; i < count; i++) {
//             xVals.add((i) + "");
//         }
// 
//         ArrayList<Entry> yVals = new ArrayList<Entry>();
// 
//         for (int i = 0; i < count; i++) {
// 
//             float mult = (range + 1);
//             float val = (float) (Math.random() * mult) + 3;// + (float)
//             // ((mult *
//             // 0.1) / 10);
//             yVals.add(new Entry(val, i));
//         }
// 
//         // create a dataset and give it a type
//         LineDataSet set1 = new LineDataSet(yVals, "DataSet 1");
//         // set1.setFillAlpha(110);
//         // set1.setFillColor(Color.RED);
// 
//         // set the line to be drawn like this "- - - - - -"
//         set1.enableDashedLine(10f, 5f, 0f);
//         set1.enableDashedHighlightLine(10f, 5f, 0f);
//         set1.setColor(Color.BLACK);
//         set1.setCircleColor(Color.BLACK);
//         set1.setLineWidth(1f);
//         set1.setCircleRadius(3f);
//         set1.setDrawCircleHole(false);
//         set1.setValueTextSize(9f);
//         Drawable drawable = ContextCompat.getDrawable(AppApplication.getInstance(), R.drawable.fade_red);
//         set1.setFillDrawable(drawable);
//         set1.setDrawFilled(true);
// 
//         ArrayList<ILineDataSet> dataSets = new ArrayList<ILineDataSet>();
//         dataSets.add(set1); // add the datasets
// 
//         // create a data object with the datasets
//         LineData data = new LineData(xVals, dataSets);
//         return Observable.just(data);
//     }
// 
//     /**
//      * 服务接口
//      */
//     private interface Service {
// 
//         @GET("/student/version.action")
//         Observable<String> getData();
// 
//     }
// }
// 
// Path: app/src/main/java/com/example/app/rxjava/module/main/model/ia/ChartIA.java
// public interface ChartIA {
//     public Observable<LineData> getServerData(int count, float range);
// }
// 
// Path: app/src/main/java/com/example/app/rxjava/module/main/view/ia/ChartViewIA.java
// public interface ChartViewIA extends BaseViewIA {
//     void refresh(LineData data);
// }


import com.example.app.rxjava.module.main.model.ChartModel;
import com.example.app.rxjava.module.main.model.ia.ChartIA;
import com.example.app.rxjava.module.main.view.ia.ChartViewIA;
import com.github.mikephil.charting.data.LineData;
import rx.Subscriber;
import rx.android.schedulers.AndroidSchedulers;
import rx.functions.Action0;
import rx.schedulers.Schedulers;
package com.example.app.rxjava.module.main.presenter;



/**
 * Created by Administrator on 2016/2/29.
 */
public class ChartPresenter {
    private ChartViewIA mChartViewIA;
    private ChartIA mChartIA;

    public ChartPresenter(ChartViewIA mChartViewIA) {
        this.mChartViewIA = mChartViewIA;
        this.mChartIA = new ChartModel();
    }

    public void loadData(int count, float range) {
        mChartIA.getServerData(count, range)
                .subscribeOn(Schedulers.io())// 在非UI线程中执行getUser
                .doOnSubscribe(new Action0() {
                    @Override
                    public void call() {
// Path: app/src/main/java/com/example/app/rxjava/module/main/model/ChartModel.java
// public class ChartModel extends BaseModel implements ChartIA {
//     private static final String ENDPOINT = "http://m.xueka.com";
//     private final Service mService;
// 
//     public ChartModel() {
//         // 适配器
//         Retrofit mRetrofit = getRetrofitBuilder()
//                 .baseUrl(ENDPOINT)
//                 .addConverterFactory(HtmlConverterFactory.create())
//                 .build();
// 
//         // 服务
//         mService = mRetrofit.create(Service.class);
//     }
// 
//     @Override
//     public Observable<LineData> getServerData(int count, float range) {
//         mService.getData().flatMap(new Func1<String, Observable<?>>() {
//             @Override
//             public Observable<?> call(String data) {
//                 Log.e("result", data);
//                 return null;
//             }
//         });
// 
//         ArrayList<String> xVals = new ArrayList<String>();
//         for (int i = 0; i < count; i++) {
//             xVals.add((i) + "");
//         }
// 
//         ArrayList<Entry> yVals = new ArrayList<Entry>();
// 
//         for (int i = 0; i < count; i++) {
// 
//             float mult = (range + 1);
//             float val = (float) (Math.random() * mult) + 3;// + (float)
//             // ((mult *
//             // 0.1) / 10);
//             yVals.add(new Entry(val, i));
//         }
// 
//         // create a dataset and give it a type
//         LineDataSet set1 = new LineDataSet(yVals, "DataSet 1");
//         // set1.setFillAlpha(110);
//         // set1.setFillColor(Color.RED);
// 
//         // set the line to be drawn like this "- - - - - -"
//         set1.enableDashedLine(10f, 5f, 0f);
//         set1.enableDashedHighlightLine(10f, 5f, 0f);
//         set1.setColor(Color.BLACK);
//         set1.setCircleColor(Color.BLACK);
//         set1.setLineWidth(1f);
//         set1.setCircleRadius(3f);
//         set1.setDrawCircleHole(false);
//         set1.setValueTextSize(9f);
//         Drawable drawable = ContextCompat.getDrawable(AppApplication.getInstance(), R.drawable.fade_red);
//         set1.setFillDrawable(drawable);
//         set1.setDrawFilled(true);
// 
//         ArrayList<ILineDataSet> dataSets = new ArrayList<ILineDataSet>();
//         dataSets.add(set1); // add the datasets
// 
//         // create a data object with the datasets
//         LineData data = new LineData(xVals, dataSets);
//         return Observable.just(data);
//     }
// 
//     /**
//      * 服务接口
//      */
//     private interface Service {
// 
//         @GET("/student/version.action")
//         Observable<String> getData();
// 
//     }
// }
// 
// Path: app/src/main/java/com/example/app/rxjava/module/main/model/ia/ChartIA.java
// public interface ChartIA {
//     public Observable<LineData> getServerData(int count, float range);
// }
// 
// Path: app/src/main/java/com/example/app/rxjava/module/main/view/ia/ChartViewIA.java
// public interface ChartViewIA extends BaseViewIA {
//     void refresh(LineData data);
// }


// Path: app/src/main/java/com/example/app/rxjava/module/main/presenter/ChartPresenter.java
import com.example.app.rxjava.module.main.model.ChartModel;
import com.example.app.rxjava.module.main.model.ia.ChartIA;
import com.example.app.rxjava.module.main.view.ia.ChartViewIA;
import com.github.mikephil.charting.data.LineData;
import rx.Subscriber;
import rx.android.schedulers.AndroidSchedulers;
import rx.functions.Action0;
import rx.schedulers.Schedulers;

package com.example.app.rxjava.module.main.presenter;



/**
 * Created by Administrator on 2016/2/29.
 */
public class ChartPresenter {
    private ChartViewIA mChartViewIA;
    private ChartIA mChartIA;

    public ChartPresenter(ChartViewIA mChartViewIA) {
        this.mChartViewIA = mChartViewIA;
        this.mChartIA = new ChartModel();
    }

    public void loadData(int count, float range) {
        mChartIA.getServerData(count, range)
                .subscribeOn(Schedulers.io())// 在非UI线程中执行getUser
                .doOnSubscribe(new Action0() {
                    @Override
                    public void call() {
                        mChartViewIA.showProgressDialog(); // 需要在主线程执行