multi account bug fix, updated strings
Signed-off-by: nuclearfog <hatespirit666@gmail.com>
This commit is contained in:
parent
733051da63
commit
fd839dc956
|
@ -35,7 +35,9 @@ public class Registration extends AsyncTask<String, Void, String> {
|
|||
public Registration(LoginActivity activity) {
|
||||
super();
|
||||
this.callback = new WeakReference<>(activity);
|
||||
mTwitter = TwitterEngine.getInstance(activity);
|
||||
// get empty instance
|
||||
mTwitter = TwitterEngine.getInstance();
|
||||
// init database and storage
|
||||
accountDB = AccountDatabase.getInstance(activity);
|
||||
settings = GlobalSettings.getInstance(activity);
|
||||
}
|
||||
|
|
|
@ -65,8 +65,6 @@ public class TwitterEngine {
|
|||
|
||||
@Nullable
|
||||
private RequestToken reqToken;
|
||||
@Nullable
|
||||
private AccessToken aToken;
|
||||
private GlobalSettings settings;
|
||||
private AccountDatabase accountDB;
|
||||
private Twitter twitter;
|
||||
|
@ -80,9 +78,10 @@ public class TwitterEngine {
|
|||
/**
|
||||
* Initialize Twitter4J instance
|
||||
*/
|
||||
private void initTwitter() {
|
||||
private void initTwitter(AccessToken aToken) {
|
||||
TLSSocketFactory.getSupportTLSifNeeded();
|
||||
ConfigurationBuilder builder = new ConfigurationBuilder();
|
||||
// set API keys
|
||||
if (settings.isCustomApiSet()) {
|
||||
builder.setOAuthConsumerKey(settings.getConsumerKey());
|
||||
builder.setOAuthConsumerSecret(settings.getConsumerSecret());
|
||||
|
@ -99,13 +98,15 @@ public class TwitterEngine {
|
|||
builder.setHttpProxyPassword(settings.getProxyPass());
|
||||
}
|
||||
}
|
||||
// init proxy connection
|
||||
ProxySetup.setConnection(settings);
|
||||
// init Twitter instance
|
||||
TwitterFactory factory = new TwitterFactory(builder.build());
|
||||
if (aToken != null) {
|
||||
twitter = factory.getInstance(aToken);
|
||||
} else {
|
||||
twitter = factory.getInstance();
|
||||
}
|
||||
ProxySetup.setConnection(settings);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -116,25 +117,41 @@ public class TwitterEngine {
|
|||
*/
|
||||
public static TwitterEngine getInstance(Context context) {
|
||||
if (!mTwitter.isInitialized) {
|
||||
mTwitter.isInitialized = true;
|
||||
// initialize database and settings
|
||||
mTwitter.settings = GlobalSettings.getInstance(context);
|
||||
mTwitter.accountDB = AccountDatabase.getInstance(context);
|
||||
// check if already logged in
|
||||
if (mTwitter.settings.isLoggedIn()) {
|
||||
// init login access
|
||||
String[] keys = mTwitter.settings.getCurrentUserAccessToken();
|
||||
mTwitter.aToken = new AccessToken(keys[0], keys[1]);
|
||||
AccessToken token = new AccessToken(keys[0], keys[1]);
|
||||
mTwitter.initTwitter(token);
|
||||
} else {
|
||||
// init empty session
|
||||
mTwitter.initTwitter(null);
|
||||
}
|
||||
mTwitter.initTwitter();
|
||||
mTwitter.isInitialized = true;
|
||||
}
|
||||
return mTwitter;
|
||||
}
|
||||
|
||||
/**
|
||||
* get singleton instance with empty session
|
||||
*
|
||||
* @return TwitterEngine Instance
|
||||
*/
|
||||
public static TwitterEngine getInstance() {
|
||||
mTwitter.isInitialized = false;
|
||||
// init empty session
|
||||
mTwitter.initTwitter(null);
|
||||
return mTwitter;
|
||||
}
|
||||
|
||||
/**
|
||||
* reset Twitter state
|
||||
*/
|
||||
public static void resetTwitter() {
|
||||
mTwitter.isInitialized = false;
|
||||
mTwitter.reqToken = null; // Destroy connections
|
||||
mTwitter.aToken = null; //
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -145,8 +162,9 @@ public class TwitterEngine {
|
|||
*/
|
||||
public String request() throws EngineException {
|
||||
try {
|
||||
if (reqToken == null)
|
||||
if (reqToken == null) {
|
||||
reqToken = twitter.getOAuthRequestToken();
|
||||
}
|
||||
} catch (Exception err) {
|
||||
throw new EngineException(err);
|
||||
}
|
||||
|
@ -154,22 +172,28 @@ public class TwitterEngine {
|
|||
}
|
||||
|
||||
/**
|
||||
* Get Access-Token, store and initialize Twitter
|
||||
* Get account access keys, store them and initialize Twitter login
|
||||
*
|
||||
* @param twitterPin PIN for accessing account
|
||||
* @param twitterPin PIN from the twitter login page, after successful login
|
||||
* @throws EngineException if pin is false or request token is null
|
||||
*/
|
||||
public void initialize(String twitterPin) throws EngineException {
|
||||
try {
|
||||
// check if corresponding request key is valid
|
||||
if (reqToken != null) {
|
||||
// get login keys
|
||||
AccessToken accessToken = twitter.getOAuthAccessToken(reqToken, twitterPin);
|
||||
String key1 = accessToken.getToken();
|
||||
String key2 = accessToken.getTokenSecret();
|
||||
aToken = new AccessToken(key1, key2);
|
||||
initTwitter();
|
||||
// init twitter login
|
||||
initTwitter(new AccessToken(key1, key2));
|
||||
// save login to storage and database
|
||||
settings.setConnection(key1, key2, twitter.getId());
|
||||
accountDB.setLogin(twitter.getId(), key1, key2);
|
||||
// request token is not needed anymore
|
||||
reqToken = null;
|
||||
} else {
|
||||
// request token does not exist, open login page first
|
||||
throw new EngineException(EngineException.InternalErrorType.TOKENNOTSET);
|
||||
}
|
||||
} catch (Exception err) {
|
||||
|
|
|
@ -165,7 +165,7 @@
|
|||
<string name="info_list_unfollowed">Liste entfolgt</string>
|
||||
<string name="info_unfollowed">entfolgt!</string>
|
||||
<string name="descr_add_profile_image">Profilbild ändern</string>
|
||||
<string name="settings_enable_hq_img">Hohe Qualität</string>
|
||||
<string name="settings_enable_hq_img">Bilder in hoher Auflösung</string>
|
||||
<string name="menu_app_info">Über</string>
|
||||
<string name="info_user_added_to_list">Nutzer wurde zur Liste hinzugefügt!</string>
|
||||
<string name="error_username_format">Nutzername falsch!</string>
|
||||
|
|
|
@ -79,7 +79,7 @@
|
|||
<string name="enter_username">enter username</string>
|
||||
<string name="profile_banner">Banner Image</string>
|
||||
<string name="editprofile_add_banner">add banner</string>
|
||||
<string name="settings_enable_hq_img">high quality</string>
|
||||
<string name="settings_enable_hq_img">High resolution images</string>
|
||||
<string name="settings_app_information">For app and licensing information visit:</string>
|
||||
<string name="settings_enable_toolbar_overlap">overlap profile banner</string>
|
||||
<string name="settings_look">Look</string>
|
||||
|
|
Loading…
Reference in New Issue