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;
}
});
}
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) {
}
});
}
Aggregations