package com.xda.one.api.retrofit;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.xda.one.constants.XDAConstants;
import android.content.Context;
import android.net.http.HttpResponseCache;
import java.io.File;
import java.io.IOException;
import retrofit.RequestInterceptor;
import retrofit.RestAdapter;
import retrofit.converter.JacksonConverter;
public class RetrofitClient {
public static final String FORCE_RELOAD = "force_reload";
public static final ObjectMapper OBJECT_MAPPER = new ObjectMapper();
private static final JacksonConverter JACKSON_CONVERTER
= new JacksonConverter(OBJECT_MAPPER);
private static String sAuthToken;
private static boolean sResponseCache = false;
public static RestAdapter.Builder getRestBuilder(final Context context, final String url) {
if (!sResponseCache) {
try {
final File httpCacheDir = new File(context.getCacheDir(), "http");
final long httpCacheSize = 10 * 1024 * 1024; // 10 MiB
HttpResponseCache.install(httpCacheDir, httpCacheSize);
} catch (IOException e) {
e.printStackTrace();
}
sResponseCache = true;
}
return new RestAdapter.Builder()
.setEndpoint(url)
.setConverter(JACKSON_CONVERTER)
.setRequestInterceptor(new RequestInterceptor() {
@Override
public void intercept(RequestFacade request) {
request.addHeader("Authorization",
"Basic " + XDAConstants.ENCODED_AUTHORIZATION);
}
});
}
public static String getAuthToken() {
return sAuthToken;
}
public static void setAuthToken(final String authToken) {
sAuthToken = authToken;
}
}