Мне интересно, есть ли способ, чтобы Кинжал знал, что он должен воссоздать объект, когда доступны новые данные.
Экземпляр, о котором я говорю, связан с заголовками запросов, которые у меня есть для доработки. В какой-то момент (когда пользователь входит в систему) я получаю токен, который мне нужно добавить в заголовки модификации, чтобы выполнить аутентифицированные запросы. Проблема в том, что я остался с той же версией, что и без проверки подлинности. Здесь мой код для инъекций:
@Provides
@Singleton
OkHttpClient provideOkHttpClient(Cache cache) {
HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor();
interceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
OkHttpClient client = new OkHttpClient.Builder()
.addInterceptor(interceptor)
.cache(cache).build();
client
.newBuilder()
.addInterceptor(
chain -> {
Request original = chain.request();
Request.Builder requestBuilder = original.newBuilder()
.addHeader("Accept", "Application/JSON");
Request request = requestBuilder.build();
return chain.proceed(request);
}).build();
return client;
}
@Provides
@Singleton
Retrofit provideRetrofit(Gson gson, OkHttpClient okHttpClient) {
Retrofit retrofit = new Retrofit.Builder()
.addConverterFactory(GsonConverterFactory.create(gson))
.addCallAdapterFactory(RxErrorHandlingCallAdapterFactory.create())
.baseUrl(mBaseUrl)
.client(okHttpClient)
.build();
return retrofit;
}
@Provides
@Singleton
public NetworkService providesNetworkService(Retrofit retrofit) {
return retrofit.create(NetworkService.class);
}
Любые идеи о том, как сделать эту работу?