// Path: app/src/main/java/com/example/app/rxjava/base/interceptor/RequestInterceptor.java
// public class RequestInterceptor implements Interceptor {
// 
//     private final String mApiKey = "111111";
// 
//     public RequestInterceptor() {
// 
//     }
// 
//     @Override
//     public Response intercept(Interceptor.Chain chain) throws IOException {
//         Request oldRequest = chain.request();
//         // 添加新的参数
//         HttpUrl.Builder authorizedUrlBuilder = oldRequest.url()
//                 .newBuilder()
//                 .scheme(oldRequest.url().scheme())
//                 .host(oldRequest.url().host())
//                 .addQueryParameter("mApiKey", mApiKey);
// 
//         // 新的请求
//         Request newRequest = oldRequest.newBuilder()
//                 .method(oldRequest.method(), oldRequest.body())
//                 .url(authorizedUrlBuilder.build())
//                 .addHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8")
//                 .addHeader("Accept-Encoding", "gzip, deflate")
//                 .addHeader("Connection", "keep-alive")
//                 .addHeader("Accept", "*/*")
//                 .addHeader("Cookie", "add cookies here")
//                 .build();
// 
//         return chain.proceed(newRequest);
//     }
// }
// 
// Path: app/src/main/java/com/example/app/rxjava/base/ResultsDeserializer.java
// public class ResultsDeserializer<T> implements JsonDeserializer<T> {
//     @Override
//     public T deserialize(JsonElement je, Type typeOfT,
//                          JsonDeserializationContext context) throws JsonParseException {
//         // 转换Json的数据, 获取内部有用的信息
//         JsonElement results = je.getAsJsonObject();
//         return new Gson().fromJson(results, typeOfT);
//     }
// }
// 
// Path: app/src/main/java/com/example/app/rxjava/bean/picture/Picture.java
// public class Picture {
//     private String tag1;
//     private String tag2;
//     private int totalNum;
//     private int start_index;
//     private int return_number;
//     private List<Data> data;
// 
//     public String getTag1() {
//         return tag1;
//     }
// 
//     public void setTag1(String tag1) {
//         this.tag1 = tag1;
//     }
// 
//     public String getTag2() {
//         return tag2;
//     }
// 
//     public void setTag2(String tag2) {
//         this.tag2 = tag2;
//     }
// 
//     public int getTotalNum() {
//         return totalNum;
//     }
// 
//     public void setTotalNum(int totalNum) {
//         this.totalNum = totalNum;
//     }
// 
//     public int getStart_index() {
//         return start_index;
//     }
// 
//     public void setStart_index(int start_index) {
//         this.start_index = start_index;
//     }
// 
//     public int getReturn_number() {
//         return return_number;
//     }
// 
//     public void setReturn_number(int return_number) {
//         this.return_number = return_number;
//     }
// 
//     public List<Data> getData() {
//         return data;
//     }
// 
//     public void setData(List<Data> data) {
//         this.data = data;
//     }
// 
// }
// 
// Path: app/src/main/java/com/example/app/rxjava/widget/model/ia/WidgetIA.java
// public interface WidgetIA {
//     public Observable<Picture> getData();
// }


import com.example.app.rxjava.base.interceptor.RequestInterceptor;
import com.example.app.rxjava.base.ResultsDeserializer;
import com.example.app.rxjava.bean.picture.Picture;
import com.example.app.rxjava.widget.model.ia.WidgetIA;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.reflect.TypeToken;
import java.util.List;
import okhttp3.OkHttpClient;
import okhttp3.logging.HttpLoggingInterceptor;
import retrofit2.Retrofit;
import retrofit2.adapter.rxjava.RxJavaCallAdapterFactory;
import retrofit2.converter.gson.GsonConverterFactory;
import retrofit2.http.GET;
import retrofit2.http.Query;
import rx.Observable;
package com.example.app.rxjava.widget.model;




/**
 * Created by Administrator on 2016/2/29.
 */
public class WidgetModel implements WidgetIA {
    private static final String ENDPOINT = "http://image.baidu.com";
    private final Service mService;

    public static final int ROWNUM = 30;

    public WidgetModel() {
        // Log信息
        HttpLoggingInterceptor loggingInterceptor = new HttpLoggingInterceptor();
        loggingInterceptor.setLevel(HttpLoggingInterceptor.Level.BASIC);

        // 拦截器，在请求中增加额外参数
        RequestInterceptor requestInterceptor = new RequestInterceptor();

        // OkHttp3.0的使用方式
        OkHttpClient client = new OkHttpClient.Builder()
                .addInterceptor(requestInterceptor)
                .addInterceptor(loggingInterceptor)
                .build();

        // 对返回的数据进行解析
        Gson gsonInstance = new GsonBuilder()
// Path: app/src/main/java/com/example/app/rxjava/base/interceptor/RequestInterceptor.java
// public class RequestInterceptor implements Interceptor {
// 
//     private final String mApiKey = "111111";
// 
//     public RequestInterceptor() {
// 
//     }
// 
//     @Override
//     public Response intercept(Interceptor.Chain chain) throws IOException {
//         Request oldRequest = chain.request();
//         // 添加新的参数
//         HttpUrl.Builder authorizedUrlBuilder = oldRequest.url()
//                 .newBuilder()
//                 .scheme(oldRequest.url().scheme())
//                 .host(oldRequest.url().host())
//                 .addQueryParameter("mApiKey", mApiKey);
// 
//         // 新的请求
//         Request newRequest = oldRequest.newBuilder()
//                 .method(oldRequest.method(), oldRequest.body())
//                 .url(authorizedUrlBuilder.build())
//                 .addHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8")
//                 .addHeader("Accept-Encoding", "gzip, deflate")
//                 .addHeader("Connection", "keep-alive")
//                 .addHeader("Accept", "*/*")
//                 .addHeader("Cookie", "add cookies here")
//                 .build();
// 
//         return chain.proceed(newRequest);
//     }
// }
// 
// Path: app/src/main/java/com/example/app/rxjava/base/ResultsDeserializer.java
// public class ResultsDeserializer<T> implements JsonDeserializer<T> {
//     @Override
//     public T deserialize(JsonElement je, Type typeOfT,
//                          JsonDeserializationContext context) throws JsonParseException {
//         // 转换Json的数据, 获取内部有用的信息
//         JsonElement results = je.getAsJsonObject();
//         return new Gson().fromJson(results, typeOfT);
//     }
// }
// 
// Path: app/src/main/java/com/example/app/rxjava/bean/picture/Picture.java
// public class Picture {
//     private String tag1;
//     private String tag2;
//     private int totalNum;
//     private int start_index;
//     private int return_number;
//     private List<Data> data;
// 
//     public String getTag1() {
//         return tag1;
//     }
// 
//     public void setTag1(String tag1) {
//         this.tag1 = tag1;
//     }
// 
//     public String getTag2() {
//         return tag2;
//     }
// 
//     public void setTag2(String tag2) {
//         this.tag2 = tag2;
//     }
// 
//     public int getTotalNum() {
//         return totalNum;
//     }
// 
//     public void setTotalNum(int totalNum) {
//         this.totalNum = totalNum;
//     }
// 
//     public int getStart_index() {
//         return start_index;
//     }
// 
//     public void setStart_index(int start_index) {
//         this.start_index = start_index;
//     }
// 
//     public int getReturn_number() {
//         return return_number;
//     }
// 
//     public void setReturn_number(int return_number) {
//         this.return_number = return_number;
//     }
// 
//     public List<Data> getData() {
//         return data;
//     }
// 
//     public void setData(List<Data> data) {
//         this.data = data;
//     }
// 
// }
// 
// Path: app/src/main/java/com/example/app/rxjava/widget/model/ia/WidgetIA.java
// public interface WidgetIA {
//     public Observable<Picture> getData();
// }


// Path: app/src/main/java/com/example/app/rxjava/widget/model/WidgetModel.java
import com.example.app.rxjava.base.interceptor.RequestInterceptor;
import com.example.app.rxjava.base.ResultsDeserializer;
import com.example.app.rxjava.bean.picture.Picture;
import com.example.app.rxjava.widget.model.ia.WidgetIA;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.reflect.TypeToken;
import java.util.List;
import okhttp3.OkHttpClient;
import okhttp3.logging.HttpLoggingInterceptor;
import retrofit2.Retrofit;
import retrofit2.adapter.rxjava.RxJavaCallAdapterFactory;
import retrofit2.converter.gson.GsonConverterFactory;
import retrofit2.http.GET;
import retrofit2.http.Query;
import rx.Observable;

package com.example.app.rxjava.widget.model;




/**
 * Created by Administrator on 2016/2/29.
 */
public class WidgetModel implements WidgetIA {
    private static final String ENDPOINT = "http://image.baidu.com";
    private final Service mService;

    public static final int ROWNUM = 30;

    public WidgetModel() {
        // Log信息
        HttpLoggingInterceptor loggingInterceptor = new HttpLoggingInterceptor();
        loggingInterceptor.setLevel(HttpLoggingInterceptor.Level.BASIC);

        // 拦截器，在请求中增加额外参数
        RequestInterceptor requestInterceptor = new RequestInterceptor();

        // OkHttp3.0的使用方式
        OkHttpClient client = new OkHttpClient.Builder()
                .addInterceptor(requestInterceptor)
                .addInterceptor(loggingInterceptor)
                .build();

        // 对返回的数据进行解析
        Gson gsonInstance = new GsonBuilder()
                .registerTypeAdapter(new TypeToken<List<Picture>>() {