package co.touchlab.droidconandroid.network; import android.content.Context; import android.text.TextUtils; import com.google.gson.Gson; import com.google.gson.GsonBuilder; import org.jetbrains.annotations.NotNull; import co.touchlab.droidconandroid.data.AppPrefs; import co.touchlab.droidconandroid.presenter.PlatformClient; import retrofit.ErrorHandler; import retrofit.RequestInterceptor; import retrofit.RestAdapter; import retrofit.android.AndroidLog; import retrofit.client.Client; /** * Created by kgalligan on 6/28/14. */ public class DataHelper { public static RestAdapter makeRequestAdapter(Context context, PlatformClient platformClient) { RestAdapter.Builder builder = makeRequestAdapterBuilder(context, platformClient); return builder.build(); } public static RestAdapter.Builder makeRequestAdapterBuilder(Context context, PlatformClient platformClient) { return makeRequestAdapterBuilder(context, platformClient, null); } @NotNull public static RestAdapter.Builder makeRequestAdapterBuilder(Context context, PlatformClient platformClient, ErrorHandler errorHandler) { return makeRequestAdapterBuilder(context, platformClient, platformClient.baseUrl(), errorHandler); } @NotNull public static RestAdapter.Builder makeRequestAdapterBuilder(Context context, PlatformClient platformClient, String baseUrl, ErrorHandler errorHandler) { AppPrefs appPrefs = AppPrefs.getInstance(context); final String userUuid = appPrefs.getUserUuid(); RequestInterceptor requestInterceptor = new RequestInterceptor() { @Override public void intercept(RequestFacade request) { request.addHeader("Accept", "application/json"); if(! TextUtils.isEmpty(userUuid)) { request.addHeader("uuid", userUuid); } } }; Gson gson = new GsonBuilder().create(); GsonConverter gsonConverter = new GsonConverter(gson); RestAdapter.Builder builder = new RestAdapter.Builder().setRequestInterceptor( requestInterceptor) .setConverter(gsonConverter) .setLogLevel(RestAdapter.LogLevel.FULL) .setLog(new AndroidLog("DroidconApp")) .setEndpoint(baseUrl); // .setClient(new OkClient(okHttpClient)); final Client client = platformClient.makeClient(); if(client != null) { builder.setClient(client); } if(errorHandler != null) { builder.setErrorHandler(errorHandler); } return builder; } }