package com.mediafire.sdk;
import java.util.HashMap;
import java.util.Map;
public class MFCredentialsStore implements MediaFireCredentialsStore {
private static final String KEY_EMAIL = "email";
private static final String KEY_PASSWORD = "password";
private static final String KEY_EKEY = "ekey";
private static final String KEY_FACEBOOK_ACCESS_TOKEN = "facebook_access_token";
private static final String KEY_TWITTER_OAUTH_TOKEN = "twitter_oauth_token";
private static final String KEY_TWITTER_OAUTH_TOKEN_SECRET = "twitter_oauth_token_secret";
private final Map<String, String> store = new HashMap<>();
private int storedType = TYPE_NONE;
public MFCredentialsStore() {
}
@Override
public void clear() {
store.clear();
storedType = TYPE_NONE;
}
@Override
public void setEmail(EmailCredentials credentials) {
clear();
this.storedType = TYPE_EMAIL;
store.put(KEY_EMAIL, credentials.getEmail());
store.put(KEY_PASSWORD, credentials.getPassword());
}
@Override
public void setEkey(EkeyCredentials credentials) {
clear();
this.storedType = TYPE_EKEY;
store.put(KEY_EKEY, credentials.getEkey());
store.put(KEY_PASSWORD, credentials.getPassword());
}
@Override
public void setFacebook(FacebookCredentials credentials) {
clear();
this.storedType = TYPE_FACEBOOK;
store.put(KEY_FACEBOOK_ACCESS_TOKEN, credentials.getFacebookAccessToken());
}
@Override
public void setTwitter(TwitterCredentials credentials) {
clear();
this.storedType = TYPE_TWITTER;
store.put(KEY_TWITTER_OAUTH_TOKEN, credentials.getTwitterOauthToken());
store.put(KEY_TWITTER_OAUTH_TOKEN_SECRET, credentials.getTwitterOauthTokenSecret());
}
@Override
public int getTypeStored() {
return storedType;
}
@Override
public EmailCredentials getEmailCredentials() {
if (storedType != TYPE_EMAIL) {
return null;
}
return new EmailCredentials(store.get(KEY_EMAIL), store.get(KEY_PASSWORD));
}
@Override
public EkeyCredentials getEkeyCredentials() {
if (storedType != TYPE_EKEY) {
return null;
}
return new EkeyCredentials(store.get(KEY_EKEY), store.get(KEY_PASSWORD));
}
@Override
public FacebookCredentials getFacebookCredentials() {
if (storedType != TYPE_FACEBOOK) {
return null;
}
return new FacebookCredentials(store.get(KEY_FACEBOOK_ACCESS_TOKEN));
}
@Override
public TwitterCredentials getTwitterCredentials() {
if (storedType != TYPE_TWITTER) {
return null;
}
return new TwitterCredentials(store.get(KEY_TWITTER_OAUTH_TOKEN), store.get(KEY_TWITTER_OAUTH_TOKEN_SECRET));
}
}