com.yy.httpproxy.Config Maven / Gradle / Ivy
package com.yy.httpproxy;
import android.content.Context;
import com.yy.httpproxy.socketio.RemoteClient;
import com.yy.httpproxy.subscribe.ConnectCallback;
import com.yy.httpproxy.subscribe.PushCallback;
import com.yy.httpproxy.subscribe.RandomPushIdGenerator;
import com.yy.httpproxy.util.Logger;
/**
* Created by xuduo on 10/19/15.
*/
public class Config {
private RemoteClient remoteClient;
private Context context;
private PushCallback pushCallback;
private ConnectCallback connectCallback;
private String host;
private String pushId;
private String notificationHandler;
private String dnsHandler;
private String logger;
public Config(Context context) {
this.context = context;
this.pushId = new RandomPushIdGenerator().generatePushId(context);
}
public RemoteClient getRemoteClient() {
if (remoteClient == null) {
remoteClient = new RemoteClient(context, host, pushId, notificationHandler, logger, dnsHandler);
}
return remoteClient;
}
public Config setHost(String host) {
this.host = host;
return this;
}
public Config setPushCallback(PushCallback pushCallback) {
this.pushCallback = pushCallback;
return this;
}
public PushCallback getPushCallback() {
return pushCallback;
}
public Config setLogger(Class extends Logger> logger) {
this.logger = logger.getName();
return this;
}
public Config setNotificationHandler(Class notificationHandler) {
this.notificationHandler = notificationHandler.getName();
return this;
}
public Config setDnsHandler(Class dnsHandler) {
this.dnsHandler = dnsHandler.getName();
return this;
}
public ConnectCallback getConnectCallback() {
return connectCallback;
}
public Config setConnectCallback(ConnectCallback connectCallback) {
this.connectCallback = connectCallback;
return this;
}
public String getPushId() {
return pushId;
}
public String getLogger() {
return logger;
}
public Context getContext() {
return context;
}
public String getHost() {
return host;
}
public String getNotificationHandler() {
return notificationHandler;
}
public String getDnsHandler() {
return dnsHandler;
}
@Override
public String toString() {
return "Config{" +
"remoteClient=" + remoteClient +
", context=" + context +
", pushCallback=" + pushCallback +
", connectCallback=" + connectCallback +
", host='" + host + '\'' +
", pushId='" + pushId + '\'' +
", notificationHandler='" + notificationHandler + '\'' +
", dnsHandler='" + dnsHandler + '\'' +
", logger='" + logger + '\'' +
'}';
}
}