Skip to content

Instantly share code, notes, and snippets.

@rimidalv
Created April 18, 2017 10:03
Show Gist options
  • Save rimidalv/d263a4e3807800d0beca59805e81c1f7 to your computer and use it in GitHub Desktop.
Save rimidalv/d263a4e3807800d0beca59805e81c1f7 to your computer and use it in GitHub Desktop.
@Provides
// @Named("retrofit")
@Singleton
Retrofit getRetrofit(Gson gson, Retrofit.Builder builder) {
builder
.addConverterFactory(new ErrorParserFactory(gson))
.addConverterFactory(GsonConverterFactory.create());
Retrofit retrofit = builder.build();
return retrofit;
}
@Provides
@Named("places")
@Singleton
Retrofit getRetrofitBuilderPlaces(OkHttpClient.Builder okHttpClientBuilder, ErrorPlaceParserFactory placeParserFactory) {
HttpLoggingInterceptor logger = new HttpLoggingInterceptor();
logger.setLevel(HttpLoggingInterceptor.Level.HEADERS);
okHttpClientBuilder.addInterceptor(logger);
OkHttpClient okHttpClient = okHttpClientBuilder.build();
Retrofit builder = new Retrofit.Builder()
.baseUrl(C.NET.API_BASE_URL)
.addCallAdapterFactory(RxJavaCallAdapterFactory.create())
.client(okHttpClient)
.addConverterFactory(placeParserFactory)
.build();
return builder;
}
@Provides
@Named("simple")
@Singleton
Retrofit getRetrofitSimple(OkHttpClient.Builder okHttpClientBuilder) {
HttpLoggingInterceptor logger = new HttpLoggingInterceptor();
logger.setLevel(HttpLoggingInterceptor.Level.BODY);
okHttpClientBuilder.addInterceptor(logger);
OkHttpClient okHttpClient = okHttpClientBuilder.build();
Retrofit.Builder builder = new Retrofit.Builder()
.baseUrl(C.NET.API_BASE_URL)
.addCallAdapterFactory(RxJavaCallAdapterFactory.create())
.client(okHttpClient);
builder.addConverterFactory(GsonConverterFactory.create());
Retrofit retrofit = builder.build();
return retrofit;
}
@Provides
@Named("orders")
@Singleton
Retrofit getRetrofitOrders(Application context, Retrofit.Builder builder, GsonBuilder gsonBuilder) {
Gson gson = gsonBuilder
.registerTypeAdapter(JsonOrders.class, new OrderSerializer(context))
.registerTypeAdapter(Date.class, new JsonDeserializer<Date>() {
public Date deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException {
return new Date(json.getAsJsonPrimitive().getAsLong());
}
}).create();
builder.addConverterFactory(new ErrorParserFactory(gson));
Retrofit retrofit = builder.build();
return retrofit;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment