package com.appboy.sample;
import android.net.Uri;
import com.appboy.IAppboyEndpointProvider;
import com.appboy.support.StringUtils;
import java.util.HashMap;
/**
* An AppboyEndpointProvider that sets an override endpoint if given
*/
public class DroidboyEndpointProvider implements IAppboyEndpointProvider {
public static final String ENDPOINT_REGEX = "https.*\\.com";
private String mEndpoint = null;
private boolean mEndpointSet = false;
private HashMap<Uri, Uri> endpointCache;
public DroidboyEndpointProvider(String endpoint) {
if (!StringUtils.isNullOrBlank(endpoint)) {
mEndpoint = endpoint;
mEndpointSet = true;
endpointCache = new HashMap<>();
}
}
public Uri getApiEndpoint(Uri appboyEndpoint) {
return getEndpoint(appboyEndpoint);
}
public Uri getResourceEndpoint(Uri appboyEndpoint) {
return getEndpoint(appboyEndpoint);
}
private Uri getEndpoint(Uri appboyEndpoint) {
if (mEndpointSet) {
if (endpointCache.containsKey(appboyEndpoint)) {
return endpointCache.get(appboyEndpoint);
}
Uri endpoint = Uri.parse(appboyEndpoint.toString().replaceAll(ENDPOINT_REGEX, mEndpoint));
endpointCache.put(appboyEndpoint, endpoint);
return endpoint;
}
return appboyEndpoint;
}
}