// Path: app/src/main/java/com/yunq/gankio/util/HttpUtils.java
// public class HttpUtils {
//     /**
//      * 生成离线缓存
//      */
//     public static Interceptor getCacheInterceptor(final Context context) {
//         return new Interceptor() {
//             @Override
//             public Response intercept(Interceptor.Chain chain) throws IOException {
//                 Request request = chain.request();
// 
// //                String tag = request.url().queryParameter("TAG");
// //
// //                HttpUrl.Builder urlBuilder = request.url().newBuilder()
// //                        .removeAllQueryParameters("TAG");
// //
// //                request = request.newBuilder()
// //                        .url(urlBuilder.build())
// //                        .tag(tag)
// //                        .build();
// 
//                 if (!NetworkUtil.isNetworkConnected(context)) {
//                     request = request.newBuilder()
//                             .cacheControl(CacheControl.FORCE_CACHE)
//                             .build();
//                 }
//              //   Log.e("response", request.httpUrl().toString());
//                 Response response = chain.proceed(request);
//                 if (NetworkUtil.isNetworkConnected(context)) {
//                 //    Log.e("response", "connected");
//                     int maxAge = 60 * 60;
//                     response.newBuilder()
//                             .removeHeader("Pragma")
//                             .header("Cache-Control", "public, max-age=" + maxAge)
//                             .build();
//                 } else {
//                  //   Log.e("response", "not connected");
//                     int maxStale = 60 * 60 * 24 * 28;
//                     response.newBuilder()
//                             .removeHeader("Pragma")
//                             .header("Cache-Control", "public, only-if-cached, max-stale=" + maxStale)
//                             .build();
//                 }
//               //  Log.e("response", "response");
//                 return response;
// 
// 
//             }
//         };
//     }
// }


import android.app.Application;
import com.yunq.gankio.util.HttpUtils;
import javax.inject.Singleton;
import dagger.Module;
import dagger.Provides;
import okhttp3.Cache;
import okhttp3.OkHttpClient;
package com.yunq.gankio.injection.module;





/**
 * Created by admin on 16/1/25.
 */
@Module
public class ApplicationModule {
    protected final Application mApplication;

    public ApplicationModule(Application application) {
        mApplication = application;
    }

    @Provides
    Application provideApplication() {
        return mApplication;
    }

//    @Provides
//   // @ApplicationContext
//    Context provideContext() {
//        return mApplication;
//    }

    @Provides
    @Singleton
    OkHttpClient provideOkHttpClient() {
        OkHttpClient.Builder builder = new OkHttpClient.Builder();
        builder.cache(new Cache(mApplication.getCacheDir(), 10 * 1024 * 1024));
// Path: app/src/main/java/com/yunq/gankio/util/HttpUtils.java
// public class HttpUtils {
//     /**
//      * 生成离线缓存
//      */
//     public static Interceptor getCacheInterceptor(final Context context) {
//         return new Interceptor() {
//             @Override
//             public Response intercept(Interceptor.Chain chain) throws IOException {
//                 Request request = chain.request();
// 
// //                String tag = request.url().queryParameter("TAG");
// //
// //                HttpUrl.Builder urlBuilder = request.url().newBuilder()
// //                        .removeAllQueryParameters("TAG");
// //
// //                request = request.newBuilder()
// //                        .url(urlBuilder.build())
// //                        .tag(tag)
// //                        .build();
// 
//                 if (!NetworkUtil.isNetworkConnected(context)) {
//                     request = request.newBuilder()
//                             .cacheControl(CacheControl.FORCE_CACHE)
//                             .build();
//                 }
//              //   Log.e("response", request.httpUrl().toString());
//                 Response response = chain.proceed(request);
//                 if (NetworkUtil.isNetworkConnected(context)) {
//                 //    Log.e("response", "connected");
//                     int maxAge = 60 * 60;
//                     response.newBuilder()
//                             .removeHeader("Pragma")
//                             .header("Cache-Control", "public, max-age=" + maxAge)
//                             .build();
//                 } else {
//                  //   Log.e("response", "not connected");
//                     int maxStale = 60 * 60 * 24 * 28;
//                     response.newBuilder()
//                             .removeHeader("Pragma")
//                             .header("Cache-Control", "public, only-if-cached, max-stale=" + maxStale)
//                             .build();
//                 }
//               //  Log.e("response", "response");
//                 return response;
// 
// 
//             }
//         };
//     }
// }


// Path: app/src/main/java/com/yunq/gankio/injection/module/ApplicationModule.java
import android.app.Application;
import com.yunq.gankio.util.HttpUtils;
import javax.inject.Singleton;
import dagger.Module;
import dagger.Provides;
import okhttp3.Cache;
import okhttp3.OkHttpClient;

package com.yunq.gankio.injection.module;





/**
 * Created by admin on 16/1/25.
 */
@Module
public class ApplicationModule {
    protected final Application mApplication;

    public ApplicationModule(Application application) {
        mApplication = application;
    }

    @Provides
    Application provideApplication() {
        return mApplication;
    }

//    @Provides
//   // @ApplicationContext
//    Context provideContext() {
//        return mApplication;
//    }

    @Provides
    @Singleton
    OkHttpClient provideOkHttpClient() {
        OkHttpClient.Builder builder = new OkHttpClient.Builder();
        builder.cache(new Cache(mApplication.getCacheDir(), 10 * 1024 * 1024));
        builder.addInterceptor(HttpUtils.getCacheInterceptor(mApplication));