com.jess.arms.di.module.GlobalConfigModule Java Examples

The following examples show how to use com.jess.arms.di.module.GlobalConfigModule. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: AppDelegate.java    From Aurora with Apache License 2.0 5 votes vote down vote up
/**
 * 将app的全局配置信息封装进module(使用Dagger注入到需要配置信息的地方)
 * 需要在AndroidManifest中声明{@link ConfigModule}的实现类,和Glide的配置方式相似
 *
 * @return
 */
private GlobalConfigModule getGlobalConfigModule(Context context, List<ConfigModule> modules) {

    GlobalConfigModule.Builder builder = GlobalConfigModule
            .builder();

    //遍历 ConfigModule 集合, 给全局配置 GlobalConfigModule 添加参数
    for (ConfigModule module : modules) {
        module.applyOptions(context, builder);
    }

    return builder.build();
}
 
Example #2
Source File: GlobalConfiguration.java    From LQRBiliBlili with MIT License 5 votes vote down vote up
@Override
    public void applyOptions(Context context, GlobalConfigModule.Builder builder) {
        //使用builder可以为框架配置一些配置信息
        builder
                //.baseurl(Api.APP_DOMAIN)
                .retrofitConfiguration(new MyRetrofitConfiguration())
                // 使用统一UserAgent
//                .addInterceptor(new UserAgentInterceptor())
                .rxCacheConfiguration(new MyRxCacheConfiguration())
                .globalHttpHandler(new MyGlobalHttpHandler())
                .responseErrorListener(new MyResponseErrorListener())
                .cacheFile(new File(DataHelper.getCacheFile(context), "rxCache"))
                .gsonConfiguration(new MyGsonConfiguration());
    }
 
Example #3
Source File: AppDelegate.java    From MVPArms with Apache License 2.0 5 votes vote down vote up
/**
 * 将app的全局配置信息封装进module(使用Dagger注入到需要配置信息的地方)
 * 需要在AndroidManifest中声明{@link ConfigModule}的实现类,和Glide的配置方式相似
 *
 * @return GlobalConfigModule
 */
private GlobalConfigModule getGlobalConfigModule(Context context, List<ConfigModule> modules) {
    GlobalConfigModule.Builder builder = GlobalConfigModule
            .builder();

    //遍历 ConfigModule 集合, 给全局配置 GlobalConfigModule 添加参数
    for (ConfigModule module : modules) {
        module.applyOptions(context, builder);
    }

    return builder.build();
}
 
Example #4
Source File: GlobalConfiguration.java    From Hands-Chopping with Apache License 2.0 4 votes vote down vote up
@Override
public void applyOptions(Context context, GlobalConfigModule.Builder builder) {
}
 
Example #5
Source File: GlobalConfiguration.java    From Hands-Chopping with Apache License 2.0 4 votes vote down vote up
@Override
public void applyOptions(Context context, GlobalConfigModule.Builder builder) {
}
 
Example #6
Source File: GlobalConfiguration.java    From MVPArms with Apache License 2.0 4 votes vote down vote up
@Override
    public void applyOptions(@NonNull Context context, @NonNull GlobalConfigModule.Builder builder) {
        if (!BuildConfig.LOG_DEBUG) { //Release 时, 让框架不再打印 Http 请求和响应的信息
            builder.printHttpLogLevel(RequestInterceptor.Level.NONE);
        }

        builder.baseurl(Api.APP_DOMAIN)
                //强烈建议自己自定义图片加载逻辑, 因为 arms-imageloader-glide 提供的 GlideImageLoaderStrategy 并不能满足复杂的需求
                //请参考 https://github.com/JessYanCoding/MVPArms/wiki#3.4
                .imageLoaderStrategy(new GlideImageLoaderStrategy())

                //想支持多 BaseUrl, 以及运行时动态切换任意一个 BaseUrl, 请使用 https://github.com/JessYanCoding/RetrofitUrlManager
                //如果 BaseUrl 在 App 启动时不能确定, 需要请求服务器接口动态获取, 请使用以下代码
                //以下方式是 Arms 框架自带的切换 BaseUrl 的方式, 在整个 App 生命周期内只能切换一次, 若需要无限次的切换 BaseUrl, 以及各种复杂的应用场景还是需要使用 RetrofitUrlManager 框架
                //以下代码只是配置, 还要使用 Okhttp (AppComponent 中提供) 请求服务器获取到正确的 BaseUrl 后赋值给 GlobalConfiguration.sDomain
                //切记整个过程必须在第一次调用 Retrofit 接口之前完成, 如果已经调用过 Retrofit 接口, 此种方式将不能切换 BaseUrl
//                .baseurl(new BaseUrl() {
//                    @Override
//                    public HttpUrl url() {
//                        return HttpUrl.parse(sDomain);
//                    }
//                })

                //可根据当前项目的情况以及环境为框架某些部件提供自定义的缓存策略, 具有强大的扩展性
//                .cacheFactory(new Cache.Factory() {
//                    @NonNull
//                    @Override
//                    public Cache build(CacheType type) {
//                        switch (type.getCacheTypeId()){
//                            case CacheType.EXTRAS_TYPE_ID:
//                                return new IntelligentCache(500);
//                            case CacheType.CACHE_SERVICE_CACHE_TYPE_ID:
//                                return new Cache(type.calculateCacheSize(context));//自定义 Cache
//                            default:
//                                return new LruCache(200);
//                        }
//                    }
//                })

                //若觉得框架默认的打印格式并不能满足自己的需求, 可自行扩展自己理想的打印格式 (以下只是简单实现)
//                .formatPrinter(new FormatPrinter() {
//                    @Override
//                    public void printJsonRequest(Request request, String bodyString) {
//                        Timber.i("printJsonRequest:" + bodyString);
//                    }
//
//                    @Override
//                    public void printFileRequest(Request request) {
//                        Timber.i("printFileRequest:" + request.url().toString());
//                    }
//
//                    @Override
//                    public void printJsonResponse(long chainMs, boolean isSuccessful, int code,
//                                                  String headers, MediaType contentType, String bodyString,
//                                                  List<String> segments, String message, String responseUrl) {
//                        Timber.i("printJsonResponse:" + bodyString);
//                    }
//
//                    @Override
//                    public void printFileResponse(long chainMs, boolean isSuccessful, int code, String headers,
//                                                  List<String> segments, String message, String responseUrl) {
//                        Timber.i("printFileResponse:" + responseUrl);
//                    }
//                })

                //可以自定义一个单例的线程池供全局使用
//                .executorService(Executors.newCachedThreadPool())

                //这里提供一个全局处理 Http 请求和响应结果的处理类, 可以比客户端提前一步拿到服务器返回的结果, 可以做一些操作, 比如 Token 超时后, 重新获取 Token
                .globalHttpHandler(new GlobalHttpHandlerImpl(context))
                //用来处理 RxJava 中发生的所有错误, RxJava 中发生的每个错误都会回调此接口
                //RxJava 必须要使用 ErrorHandleSubscriber (默认实现 Subscriber 的 onError 方法), 此监听才生效
                .responseErrorListener(new ResponseErrorListenerImpl())
                .gsonConfiguration((context1, gsonBuilder) -> {//这里可以自己自定义配置 Gson 的参数
                    gsonBuilder
                            .serializeNulls()//支持序列化值为 null 的参数
                            .enableComplexMapKeySerialization();//支持将序列化 key 为 Object 的 Map, 默认只能序列化 key 为 String 的 Map
                })
                .retrofitConfiguration((context1, retrofitBuilder) -> {//这里可以自己自定义配置 Retrofit 的参数, 甚至您可以替换框架配置好的 OkHttpClient 对象 (但是不建议这样做, 这样做您将损失框架提供的很多功能)
//                    retrofitBuilder.addConverterFactory(FastJsonConverterFactory.create());//比如使用 FastJson 替代 Gson
                })
                .okhttpConfiguration((context1, okhttpBuilder) -> {//这里可以自己自定义配置 Okhttp 的参数
//                    okhttpBuilder.sslSocketFactory(); //支持 Https, 详情请百度
                    okhttpBuilder.writeTimeout(10, TimeUnit.SECONDS);
                    //使用一行代码监听 Retrofit/Okhttp 上传下载进度监听,以及 Glide 加载进度监听, 详细使用方法请查看 https://github.com/JessYanCoding/ProgressManager
                    ProgressManager.getInstance().with(okhttpBuilder);
                    //让 Retrofit 同时支持多个 BaseUrl 以及动态改变 BaseUrl, 详细使用方法请查看 https://github.com/JessYanCoding/RetrofitUrlManager
                    RetrofitUrlManager.getInstance().with(okhttpBuilder);
                })
                .rxCacheConfiguration((context1, rxCacheBuilder) -> {//这里可以自己自定义配置 RxCache 的参数
                    rxCacheBuilder.useExpiredDataIfLoaderNotAvailable(true);
                    //想自定义 RxCache 的缓存文件夹或者解析方式, 如改成 FastJson, 请 return rxCacheBuilder.persistence(cacheDirectory, new FastJsonSpeaker());
                    //否则请 return null;
                    return null;
                });
    }
 
Example #7
Source File: GlobalConfiguration.java    From lifecycle-component with Apache License 2.0 2 votes vote down vote up
@Override
public void applyOptions(Context context, GlobalConfigModule.Builder builder) {

}
 
Example #8
Source File: GlobalConfiguration.java    From lifecycle-component with Apache License 2.0 2 votes vote down vote up
@Override
public void applyOptions(Context context, GlobalConfigModule.Builder builder) {

}
 
Example #9
Source File: GlobalConfiguration.java    From lifecycle-component with Apache License 2.0 2 votes vote down vote up
@Override
public void applyOptions(Context context, GlobalConfigModule.Builder builder) {

}
 
Example #10
Source File: GlobalConfiguration.java    From lifecycle-component with Apache License 2.0 2 votes vote down vote up
@Override
public void applyOptions(Context context, GlobalConfigModule.Builder builder) {

}
 
Example #11
Source File: GlobalConfiguration.java    From TikTok with Apache License 2.0 2 votes vote down vote up
@Override
public void applyOptions(Context context, GlobalConfigModule.Builder builder) {

}
 
Example #12
Source File: GlobalConfiguration.java    From Hands-Chopping with Apache License 2.0 2 votes vote down vote up
@Override
public void applyOptions(Context context, GlobalConfigModule.Builder builder) {

}
 
Example #13
Source File: ConfigModule.java    From Aurora with Apache License 2.0 2 votes vote down vote up
/**
 * 使用{@link GlobalConfigModule.Builder}给框架配置一些配置参数
 *
 * @param context
 * @param builder
 */
void applyOptions(Context context, GlobalConfigModule.Builder builder);
 
Example #14
Source File: ConfigModule.java    From MVPArms with Apache License 2.0 2 votes vote down vote up
/**
 * 使用 {@link GlobalConfigModule.Builder} 给框架配置一些配置参数
 *
 * @param context {@link Context}
 * @param builder {@link GlobalConfigModule.Builder}
 */
void applyOptions(@NonNull Context context, @NonNull GlobalConfigModule.Builder builder);