Skip to content

Instantly share code, notes, and snippets.

@tylerjroach
Created September 28, 2016 17:23

Revisions

  1. tylerjroach created this gist Sep 28, 2016.
    51 changes: 51 additions & 0 deletions Retrofit2Client.java
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,51 @@
    package com.tylerjroach.example.retrofit2;

    import com.tylerjroach.example.BuildConfig;
    import com.tylerjroach.example.util.Constants;
    import okhttp3.OkHttpClient;
    import okhttp3.logging.HttpLoggingInterceptor;
    import retrofit.RestAdapter;
    import retrofit2.Retrofit;
    import retrofit2.converter.gson.GsonConverterFactory;

    public class Retrofit2Client {

    private static Retrofit2Client instance = null;
    private Retrofit retrofit;
    private OkHttpClient client;

    private ExploreService exploreService;

    public Retrofit2Client() {

    HttpLoggingInterceptor loggingInterceptor = new HttpLoggingInterceptor();
    loggingInterceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
    OkHttpClient.Builder okHttpBuilder = new OkHttpClient.Builder();
    okHttpBuilder.addInterceptor(new TokenInterceptor());

    if (BuildConfig.DEBUG) {
    okHttpBuilder.addInterceptor(loggingInterceptor);
    }

    client = okHttpBuilder.build();

    retrofit = new Retrofit.Builder().baseUrl(Constants.API_URL)
    .addConverterFactory(GsonConverterFactory.create())
    .client(client)
    .build();

    exploreService = retrofit.create(ExploreService.class);
    }

    public static Retrofit2Client getInstance() {
    if (instance == null) {
    instance = new Retrofit2Client();
    }

    return instance;
    }

    public ExploreService getExploreService() {
    return exploreService;
    }
    }