Search in sources :

Example 1 with User

use of com.frame.mvp.entity.User in project MVPFrames by RockyQu.

the class AppConfiguration method applyOptions.

@Override
public void applyOptions(final Context context, AppConfigModule.Builder builder) {
    builder.httpUrl(Api.APP_DOMAIN).cacheFile(new File(ProjectUtils.CACHE)).networkHandler(new // Http全局响应结果的处理类
    NetworkHandler() {

        @Override
        public Request onHttpRequest(Interceptor.Chain chain, Request request) {
            // return chain.request().newBuilder().header("token", tokenId).build();
            return request;
        }

        @Override
        public Response onHttpResponse(String result, Interceptor.Chain chain, Request request, Response response) {
            return response;
        }
    }).interceptors(new Interceptor[] { new LoggingInterceptor(), new ParameterInterceptor(new ParameterInterceptor.ParameterCallback() {

        /**
         * 这里为接口添加类型为HashMap的统一参数,例如Token、版本号等。支持Get、Post方法,ParameterInterceptor会自动判断
         */
        @Override
        public HashMap<String, Object> parameters() {
            User user = (User) ((App) context).getAppComponent().extras().get(LoginActivity.class.getName());
            HashMap<String, Object> parameters = new HashMap<>();
            if (user != null) {
                // 为接口统一添加access_token参数
                parameters.put("access_token", user.getToken());
            }
            return parameters;
        }
    }) }).retrofitConfiguration(new // 扩展自定义配置Retrofit参数
    HttpModule.RetrofitConfiguration() {

        @Override
        public void configRetrofit(Context context, Retrofit.Builder builder) {
        }
    }).okHttpConfiguration(new // 扩展自定义配置OkHttp参数
    HttpModule.OkHttpConfiguration() {

        @Override
        public void configOkHttp(Context context, OkHttpClient.Builder builder) {
            builder.sslSocketFactory(SSL.createSSLSocketFactory(), new TrustAllX509TrustManager());
            builder.hostnameVerifier(new TrustAllHostnameVerifier());
        }
    }).gsonConfiguration(new // 扩展自定义配置Gson参数
    AppModule.GsonConfiguration() {

        @Override
        public void configGson(Context context, GsonBuilder builder) {
            builder.serializeNulls().registerTypeAdapter(ResponseEntity.class, new GsonResponseDeserializer());
        }
    }).cookieLoadForRequest(new PersistentCookieJar.CookieLoadForRequest() {

        @Override
        public void saveFromResponse(HttpUrl url, List<Cookie> cookies) {
        }

        @Override
        public List<Cookie> loadForRequest(List<Cookie> cookies) {
            return cookies;
        }
    });
}
Also used : User(com.frame.mvp.entity.User) OkHttpClient(okhttp3.OkHttpClient) HashMap(java.util.HashMap) GsonBuilder(com.google.gson.GsonBuilder) GsonResponseDeserializer(com.frame.mvp.app.utils.gson.GsonResponseDeserializer) TrustAllX509TrustManager(com.tool.common.http.ssl.TrustAllX509TrustManager) NetworkHandler(com.tool.common.http.NetworkHandler) List(java.util.List) ParameterInterceptor(com.tool.common.http.interceptor.ParameterInterceptor) Context(android.content.Context) Cookie(okhttp3.Cookie) LoggingInterceptor(com.tool.common.http.interceptor.LoggingInterceptor) GsonBuilder(com.google.gson.GsonBuilder) PersistentCookieJar(com.tool.common.http.cookie.PersistentCookieJar) Request(okhttp3.Request) HttpModule(com.tool.common.di.module.HttpModule) HttpUrl(okhttp3.HttpUrl) Response(okhttp3.Response) TrustAllHostnameVerifier(com.tool.common.http.ssl.TrustAllHostnameVerifier) File(java.io.File)

Example 2 with User

use of com.frame.mvp.entity.User in project MVPFrames by RockyQu.

the class AppConfiguration method injectAppLifecycle.

@Override
public void injectAppLifecycle(Context context, List<ApplicationLifecycles> lifecycleManager) {
    // AppDelegateManager.Lifecycle的所有方法都会在基类Application对应的生命周期中被调用,所以在对应的方法中可以扩展一些自己需要的逻辑
    lifecycleManager.add(new ApplicationLifecycles() {

        @Override
        public void onCreate(Application application) {
            LoggConfiguration configuration = new LoggConfiguration.Buidler().setDebug(BuildConfig.DEBUG_FLAG).build();
            Logg.init(configuration);
            // LeakCanary内存泄露检查
            ((App) application).getAppComponent().extras().put(RefWatcher.class.getName(), BuildConfig.DEBUG_FLAG ? LeakCanary.install(application) : RefWatcher.DISABLED);
        }

        @Override
        public void onTerminate(Application application) {
        }
    });
    lifecycleManager.add(new ApplicationLifecycles() {

        // 渠道名称,必须与Mainfests渠道配置name相同
        final String CHANNEL = "Channel";

        @Override
        public void onCreate(Application application) {
            // 项目在SDCard下创建的目录
            if (!ProjectUtils.init(AppUtils.getAppChannel(application, CHANNEL))) {
            // 失败
            }
        }

        @Override
        public void onTerminate(Application application) {
        }
    });
    lifecycleManager.add(new ApplicationLifecycles() {

        @Override
        public void onCreate(Application application) {
            // 读取当前登录用户信息
            String value = PreferencesUtils.getString(application, LoginActivity.class.getName(), null);
            if (value != null) {
                User user = GsonUtils.getEntity(value, User.class);
                ((App) application).getAppComponent().extras().put(LoginActivity.class.getName(), user);
            }
        }

        @Override
        public void onTerminate(Application application) {
        }
    });
    lifecycleManager.add(new ApplicationLifecycles() {

        @Override
        public void onCreate(Application application) {
            DownloaderConfiguration configuration = DownloaderConfiguration.builder().application(application).debug(BuildConfig.DEBUG_FLAG).build();
            Downloader.getInstance().init(configuration);
        }

        @Override
        public void onTerminate(Application application) {
        }
    });
}
Also used : LoggConfiguration(com.logg.config.LoggConfiguration) User(com.frame.mvp.entity.User) ApplicationLifecycles(com.tool.common.base.delegate.ApplicationLifecycles) Application(android.app.Application) DownloaderConfiguration(com.tool.common.http.download.config.DownloaderConfiguration)

Aggregations

User (com.frame.mvp.entity.User)2 Application (android.app.Application)1 Context (android.content.Context)1 GsonResponseDeserializer (com.frame.mvp.app.utils.gson.GsonResponseDeserializer)1 GsonBuilder (com.google.gson.GsonBuilder)1 LoggConfiguration (com.logg.config.LoggConfiguration)1 ApplicationLifecycles (com.tool.common.base.delegate.ApplicationLifecycles)1 HttpModule (com.tool.common.di.module.HttpModule)1 NetworkHandler (com.tool.common.http.NetworkHandler)1 PersistentCookieJar (com.tool.common.http.cookie.PersistentCookieJar)1 DownloaderConfiguration (com.tool.common.http.download.config.DownloaderConfiguration)1 LoggingInterceptor (com.tool.common.http.interceptor.LoggingInterceptor)1 ParameterInterceptor (com.tool.common.http.interceptor.ParameterInterceptor)1 TrustAllHostnameVerifier (com.tool.common.http.ssl.TrustAllHostnameVerifier)1 TrustAllX509TrustManager (com.tool.common.http.ssl.TrustAllX509TrustManager)1 File (java.io.File)1 HashMap (java.util.HashMap)1 List (java.util.List)1 Cookie (okhttp3.Cookie)1 HttpUrl (okhttp3.HttpUrl)1