package com.socialize.notifications;
import android.content.Context;
import com.socialize.Socialize;
import com.socialize.api.SocializeSession;
import com.socialize.api.action.user.UserSystem;
import com.socialize.config.SocializeConfig;
import com.socialize.error.SocializeException;
import com.socialize.listener.SocializeAuthListener;
import com.socialize.util.StringUtils;
public class SocializeNotificationAuthenticator implements NotificationAuthenticator {
private SocializeConfig config;
private UserSystem userSystem;
@Override
public SocializeSession authenticate(Context context) throws SocializeException {
String consumerKey = config.getProperty(SocializeConfig.SOCIALIZE_CONSUMER_KEY);
String consumerSecret = config.getProperty(SocializeConfig.SOCIALIZE_CONSUMER_SECRET);
if(checkKeys(consumerKey, consumerSecret)) {
return userSystem.authenticateSynchronous(context, consumerKey, consumerSecret);
}
else {
throw new SocializeException("Consumer key and/or secret not provided");
}
}
@Override
public void authenticateAsync(Context context, SocializeAuthListener listener) throws SocializeException {
String consumerKey = config.getProperty(SocializeConfig.SOCIALIZE_CONSUMER_KEY);
String consumerSecret = config.getProperty(SocializeConfig.SOCIALIZE_CONSUMER_SECRET);
if(checkKeys(consumerKey, consumerSecret)) {
userSystem.authenticate(context, consumerKey, consumerSecret, listener, Socialize.getSocialize());
}
}
protected boolean checkKeys(String consumerKey, String consumerSecret) {
return !StringUtils.isEmpty(consumerKey) && !StringUtils.isEmpty(consumerSecret);
}
public void setConfig(SocializeConfig config) {
this.config = config;
}
public void setUserSystem(UserSystem userSystem) {
this.userSystem = userSystem;
}
}