public class NetMgr {
private final long connectTimeoutMills = 10 * 1000L;
private final long readTimeoutMills = 10 * 1000L;
private NetProvider sProvider = null;
private static NetMgr instance;
private Map<String, NetProvider> providerMap = new HashMap<>();
private Map<String, Retrofit> retrofitMap = new HashMap<>();
private Map<String, OkHttpClient> clientMap = new HashMap<>();
public static NetMgr getInstance() {
if (instance == null) {
synchronized (NetMgr.class) {
if (instance == null) {
instance = new NetMgr();
}
}
}
return instance;
}
public <S> S get(String baseUrl, Class<S> service) {
return getInstance().getRetrofit(baseUrl).create(service);
}
public void registerProvider(NetProvider provider) {
this.sProvider = provider;
}
public void registerProvider(String baseUrl, NetProvider provider) {
getInstance().providerMap.put(baseUrl, provider);
}
public NetProvider getCommonProvider() {
return sProvider;
}
public void clearCache() {
getInstance().retrofitMap.clear();
getInstance().clientMap.clear();
}
public Retrofit getRetrofit(String baseUrl) {
return getRetrofit(baseUrl, null);
}
public Retrofit getRetrofit(String baseUrl, NetProvider provider) {
if (empty(baseUrl)) {
throw new IllegalStateException("baseUrl can not be null");
}
if (retrofitMap.get(baseUrl) != null) {
return retrofitMap.get(baseUrl);
}
if (provider == null) {
provider = providerMap.get(baseUrl);
if (