package org.onebrick.android.core;
import android.support.annotation.NonNull;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import org.onebrick.android.helpers.Utils;
import org.onebrick.android.models.GeocodeResponse;
import retrofit.Callback;
import retrofit.RestAdapter;
import retrofit.converter.GsonConverter;
public class OneBrickMapRESTClient {
private static OneBrickMapRESTClient sInstance;
private OneBrickMapService mRestService;
private OneBrickMapRESTClient() {
final Gson gson = new GsonBuilder()
.create();
final RestAdapter.Builder builder = new RestAdapter.Builder()
.setEndpoint("https://maps.googleapis.com/")
.setConverter(new GsonConverter(gson));
if (Utils.isDebug()) {
builder.setLogLevel(RestAdapter.LogLevel.FULL);
}
mRestService = builder.build().create(OneBrickMapService.class);
}
public static void init() {
if (sInstance != null) {
throw new IllegalStateException("OneBrickMapRESTClient is already initialized");
}
sInstance = new OneBrickMapRESTClient();
}
public static OneBrickMapRESTClient getInstance() {
if (sInstance == null) {
throw new IllegalStateException("OneBrickMapRESTClient is not initialized, call init() first");
}
return sInstance;
}
public void geocodeResponse(@NonNull String address, Callback<GeocodeResponse> cb) {
mRestService.geocodeResponse(address, cb);
}
}