mirror of
https://github.com/TwidereProject/Twidere-Android
synced 2025-02-17 04:00:48 +01:00
improved statusnet support
This commit is contained in:
parent
9cd28623bb
commit
d02518d452
@ -14,7 +14,7 @@ import org.mariotaku.twidere.api.twitter.model.Status;
|
||||
public interface StatusNetResources {
|
||||
|
||||
@GET("/statusnet/config.json")
|
||||
StatusNetConfig getConfig() throws TwitterException;
|
||||
StatusNetConfig getStatusNetConfig() throws TwitterException;
|
||||
|
||||
@GET("/search.json")
|
||||
ResponseList<Status> searchStatuses(@Query("q") String query, @Query Paging paging) throws TwitterException;
|
||||
|
@ -1,5 +1,6 @@
|
||||
package org.mariotaku.twidere.api.statusnet.model;
|
||||
|
||||
import com.bluelinelabs.logansquare.annotation.JsonField;
|
||||
import com.bluelinelabs.logansquare.annotation.JsonObject;
|
||||
|
||||
/**
|
||||
@ -7,4 +8,22 @@ import com.bluelinelabs.logansquare.annotation.JsonObject;
|
||||
*/
|
||||
@JsonObject
|
||||
public class StatusNetConfig {
|
||||
|
||||
@JsonField(name = "site")
|
||||
Site site;
|
||||
|
||||
public Site getSite() {
|
||||
return site;
|
||||
}
|
||||
|
||||
@JsonObject
|
||||
public static class Site {
|
||||
@JsonField(name = "textlimit")
|
||||
int textLimit;
|
||||
|
||||
public int getTextLimit() {
|
||||
return textLimit;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -1,51 +0,0 @@
|
||||
package org.mariotaku.twidere.model;
|
||||
|
||||
import android.os.Parcel;
|
||||
import android.os.Parcelable;
|
||||
|
||||
import com.bluelinelabs.logansquare.annotation.JsonField;
|
||||
import com.bluelinelabs.logansquare.annotation.JsonObject;
|
||||
import com.hannesdorfmann.parcelableplease.annotation.ParcelablePlease;
|
||||
import com.hannesdorfmann.parcelableplease.annotation.ParcelableThisPlease;
|
||||
|
||||
/**
|
||||
* Created by mariotaku on 16/2/26.
|
||||
*/
|
||||
@ParcelablePlease
|
||||
@JsonObject
|
||||
public class GNUSocialAccountExtra implements Parcelable, AccountExtras {
|
||||
|
||||
@ParcelableThisPlease
|
||||
@JsonField(name = "character_limit")
|
||||
int characterLimit;
|
||||
|
||||
public int getCharacterLimit() {
|
||||
return characterLimit;
|
||||
}
|
||||
|
||||
public void setCharacterLimit(int characterLimit) {
|
||||
this.characterLimit = characterLimit;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int describeContents() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeToParcel(Parcel dest, int flags) {
|
||||
GNUSocialAccountExtraParcelablePlease.writeToParcel(this, dest, flags);
|
||||
}
|
||||
|
||||
public static final Creator<GNUSocialAccountExtra> CREATOR = new Creator<GNUSocialAccountExtra>() {
|
||||
public GNUSocialAccountExtra createFromParcel(Parcel source) {
|
||||
GNUSocialAccountExtra target = new GNUSocialAccountExtra();
|
||||
GNUSocialAccountExtraParcelablePlease.readFromParcel(target, source);
|
||||
return target;
|
||||
}
|
||||
|
||||
public GNUSocialAccountExtra[] newArray(int size) {
|
||||
return new GNUSocialAccountExtra[size];
|
||||
}
|
||||
};
|
||||
}
|
@ -56,6 +56,9 @@ public class ParcelableCredentials extends ParcelableAccount implements Parcelab
|
||||
public static final int AUTH_TYPE_BASIC = 2;
|
||||
public static final int AUTH_TYPE_TWIP_O_MODE = 3;
|
||||
|
||||
public static final String ACCOUNT_TYPE_TWITTER = "twitter";
|
||||
public static final String ACCOUNT_TYPE_STATUSNET = "statusnet";
|
||||
|
||||
@ParcelableThisPlease
|
||||
@JsonField(name = "auth_type")
|
||||
@CursorField(Accounts.AUTH_TYPE)
|
||||
|
@ -0,0 +1,51 @@
|
||||
package org.mariotaku.twidere.model;
|
||||
|
||||
import android.os.Parcel;
|
||||
import android.os.Parcelable;
|
||||
|
||||
import com.bluelinelabs.logansquare.annotation.JsonField;
|
||||
import com.bluelinelabs.logansquare.annotation.JsonObject;
|
||||
import com.hannesdorfmann.parcelableplease.annotation.ParcelablePlease;
|
||||
import com.hannesdorfmann.parcelableplease.annotation.ParcelableThisPlease;
|
||||
|
||||
/**
|
||||
* Created by mariotaku on 16/2/26.
|
||||
*/
|
||||
@ParcelablePlease
|
||||
@JsonObject
|
||||
public class StatusNetAccountExtra implements Parcelable, AccountExtras {
|
||||
|
||||
public static final Creator<StatusNetAccountExtra> CREATOR = new Creator<StatusNetAccountExtra>() {
|
||||
public StatusNetAccountExtra createFromParcel(Parcel source) {
|
||||
StatusNetAccountExtra target = new StatusNetAccountExtra();
|
||||
StatusNetAccountExtraParcelablePlease.readFromParcel(target, source);
|
||||
return target;
|
||||
}
|
||||
|
||||
public StatusNetAccountExtra[] newArray(int size) {
|
||||
return new StatusNetAccountExtra[size];
|
||||
}
|
||||
};
|
||||
|
||||
@ParcelableThisPlease
|
||||
@JsonField(name = "text_limit")
|
||||
int textLimit;
|
||||
|
||||
public int getTextLimit() {
|
||||
return textLimit;
|
||||
}
|
||||
|
||||
public void setTextLimit(int textLimit) {
|
||||
this.textLimit = textLimit;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int describeContents() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeToParcel(Parcel dest, int flags) {
|
||||
StatusNetAccountExtraParcelablePlease.writeToParcel(this, dest, flags);
|
||||
}
|
||||
}
|
@ -3,22 +3,17 @@ package org.mariotaku.twidere.model;
|
||||
import android.os.Parcel;
|
||||
import android.os.Parcelable;
|
||||
|
||||
import com.bluelinelabs.logansquare.annotation.JsonField;
|
||||
import com.bluelinelabs.logansquare.annotation.JsonObject;
|
||||
import com.hannesdorfmann.parcelableplease.annotation.ParcelablePlease;
|
||||
import com.hannesdorfmann.parcelableplease.annotation.ParcelableThisPlease;
|
||||
|
||||
/**
|
||||
* Created by mariotaku on 16/2/26.
|
||||
*/
|
||||
@ParcelablePlease
|
||||
@JsonObject
|
||||
public class TwitterAccountExtra implements Parcelable, AccountExtras {
|
||||
@Override
|
||||
public int describeContents() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeToParcel(Parcel dest, int flags) {
|
||||
TwitterAccountExtraParcelablePlease.writeToParcel(this, dest, flags);
|
||||
}
|
||||
|
||||
public static final Creator<TwitterAccountExtra> CREATOR = new Creator<TwitterAccountExtra>() {
|
||||
public TwitterAccountExtra createFromParcel(Parcel source) {
|
||||
@ -31,4 +26,26 @@ public class TwitterAccountExtra implements Parcelable, AccountExtras {
|
||||
return new TwitterAccountExtra[size];
|
||||
}
|
||||
};
|
||||
|
||||
@JsonField(name = "official_credentials")
|
||||
@ParcelableThisPlease
|
||||
boolean officialCredentials;
|
||||
|
||||
public boolean isOfficialCredentials() {
|
||||
return officialCredentials;
|
||||
}
|
||||
|
||||
public void setIsOfficialCredentials(boolean officialCredentials) {
|
||||
this.officialCredentials = officialCredentials;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int describeContents() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeToParcel(Parcel dest, int flags) {
|
||||
TwitterAccountExtraParcelablePlease.writeToParcel(this, dest, flags);
|
||||
}
|
||||
}
|
||||
|
@ -50,6 +50,7 @@ import android.text.InputType;
|
||||
import android.text.TextUtils;
|
||||
import android.text.TextWatcher;
|
||||
import android.util.Log;
|
||||
import android.util.Pair;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
@ -70,6 +71,7 @@ import org.mariotaku.twidere.BuildConfig;
|
||||
import org.mariotaku.twidere.R;
|
||||
import org.mariotaku.twidere.activity.SettingsActivity;
|
||||
import org.mariotaku.twidere.activity.iface.IExtendedActivity;
|
||||
import org.mariotaku.twidere.api.statusnet.model.StatusNetConfig;
|
||||
import org.mariotaku.twidere.api.twitter.Twitter;
|
||||
import org.mariotaku.twidere.api.twitter.TwitterException;
|
||||
import org.mariotaku.twidere.api.twitter.TwitterOAuth;
|
||||
@ -77,14 +79,18 @@ import org.mariotaku.twidere.api.twitter.auth.BasicAuthorization;
|
||||
import org.mariotaku.twidere.api.twitter.auth.EmptyAuthorization;
|
||||
import org.mariotaku.twidere.api.twitter.auth.OAuthAuthorization;
|
||||
import org.mariotaku.twidere.api.twitter.auth.OAuthToken;
|
||||
import org.mariotaku.twidere.api.twitter.model.Paging;
|
||||
import org.mariotaku.twidere.api.twitter.model.User;
|
||||
import org.mariotaku.twidere.fragment.support.BaseSupportDialogFragment;
|
||||
import org.mariotaku.twidere.fragment.support.SupportProgressDialogFragment;
|
||||
import org.mariotaku.twidere.graphic.EmptyDrawable;
|
||||
import org.mariotaku.twidere.model.ParcelableCredentials;
|
||||
import org.mariotaku.twidere.model.StatusNetAccountExtra;
|
||||
import org.mariotaku.twidere.model.TwitterAccountExtra;
|
||||
import org.mariotaku.twidere.provider.TwidereDataStore.Accounts;
|
||||
import org.mariotaku.twidere.util.AsyncTaskUtils;
|
||||
import org.mariotaku.twidere.util.ContentValuesCreator;
|
||||
import org.mariotaku.twidere.util.JsonSerializer;
|
||||
import org.mariotaku.twidere.util.OAuthPasswordAuthenticator;
|
||||
import org.mariotaku.twidere.util.OAuthPasswordAuthenticator.AuthenticationException;
|
||||
import org.mariotaku.twidere.util.OAuthPasswordAuthenticator.AuthenticityTokenException;
|
||||
@ -558,6 +564,36 @@ public class SignInActivity extends BaseAppCompatActivity implements OnClickList
|
||||
}
|
||||
}
|
||||
|
||||
@Nullable
|
||||
private static Pair<String, String> detectAccountType(Twitter twitter) {
|
||||
try {
|
||||
// Get StatusNet specific resource
|
||||
StatusNetConfig config = twitter.getStatusNetConfig();
|
||||
StatusNetAccountExtra extra = new StatusNetAccountExtra();
|
||||
final StatusNetConfig.Site site = config.getSite();
|
||||
if (site != null) {
|
||||
extra.setTextLimit(site.getTextLimit());
|
||||
}
|
||||
return Pair.create(ParcelableCredentials.ACCOUNT_TYPE_STATUSNET,
|
||||
JsonSerializer.serialize(extra, StatusNetAccountExtra.class));
|
||||
} catch (TwitterException e) {
|
||||
// Ignore
|
||||
}
|
||||
try {
|
||||
// Get Twitter official only resource
|
||||
Paging paging = new Paging();
|
||||
paging.count(1);
|
||||
twitter.getActivitiesAboutMe(paging);
|
||||
TwitterAccountExtra extra = new TwitterAccountExtra();
|
||||
extra.setIsOfficialCredentials(true);
|
||||
return Pair.create(ParcelableCredentials.ACCOUNT_TYPE_TWITTER,
|
||||
JsonSerializer.serialize(extra, TwitterAccountExtra.class));
|
||||
} catch (TwitterException e) {
|
||||
// Ignore
|
||||
}
|
||||
return Pair.create(ParcelableCredentials.ACCOUNT_TYPE_TWITTER, null);
|
||||
}
|
||||
|
||||
public static abstract class AbstractSignInTask extends AsyncTask<Object, Runnable, SignInResponse> {
|
||||
|
||||
protected final WeakReference<SignInActivity> activityRef;
|
||||
@ -642,7 +678,7 @@ public class SignInActivity extends BaseAppCompatActivity implements OnClickList
|
||||
final int color = analyseUserProfileColor(user);
|
||||
return new SignInResponse(isUserLoggedIn(context, userId), auth, user,
|
||||
ParcelableCredentials.AUTH_TYPE_OAUTH, color, apiUrlFormat, sameOauthSigningUrl,
|
||||
noVersionSuffix);
|
||||
noVersionSuffix, detectAccountType(twitter));
|
||||
} catch (final TwitterException e) {
|
||||
return new SignInResponse(false, false, e);
|
||||
}
|
||||
@ -714,6 +750,33 @@ public class SignInActivity extends BaseAppCompatActivity implements OnClickList
|
||||
}
|
||||
}
|
||||
|
||||
private SignInResponse authOAuth() throws AuthenticationException, TwitterException {
|
||||
final SignInActivity activity = activityRef.get();
|
||||
if (activity == null) return new SignInResponse(false, false, null);
|
||||
Endpoint endpoint = TwitterAPIFactory.getOAuthEndpoint(apiUrlFormat, "api", null, sameOAuthSigningUrl);
|
||||
OAuthAuthorization auth = new OAuthAuthorization(consumerKey.getOauthToken(), consumerKey.getOauthTokenSecret());
|
||||
final TwitterOAuth oauth = TwitterAPIFactory.getInstance(activity, endpoint, auth, TwitterOAuth.class);
|
||||
final OAuthPasswordAuthenticator authenticator = new OAuthPasswordAuthenticator(oauth, verificationCallback, userAgent);
|
||||
final OAuthToken accessToken = authenticator.getOAuthAccessToken(username, password);
|
||||
final long userId = accessToken.getUserId();
|
||||
if (userId <= 0) return new SignInResponse(false, false, null);
|
||||
return getOAuthSignInResponse(activity, accessToken, userId,
|
||||
ParcelableCredentials.AUTH_TYPE_OAUTH);
|
||||
}
|
||||
|
||||
private SignInResponse authxAuth() throws TwitterException {
|
||||
final SignInActivity activity = activityRef.get();
|
||||
if (activity == null) return new SignInResponse(false, false, null);
|
||||
Endpoint endpoint = TwitterAPIFactory.getOAuthEndpoint(apiUrlFormat, "api", null, sameOAuthSigningUrl);
|
||||
OAuthAuthorization auth = new OAuthAuthorization(consumerKey.getOauthToken(), consumerKey.getOauthTokenSecret());
|
||||
final TwitterOAuth oauth = TwitterAPIFactory.getInstance(activity, endpoint, auth, TwitterOAuth.class);
|
||||
final OAuthToken accessToken = oauth.getAccessToken(username, password);
|
||||
final long userId = accessToken.getUserId();
|
||||
if (userId <= 0) return new SignInResponse(false, false, null);
|
||||
return getOAuthSignInResponse(activity, accessToken, userId,
|
||||
ParcelableCredentials.AUTH_TYPE_XAUTH);
|
||||
}
|
||||
|
||||
private SignInResponse authBasic() throws TwitterException, AuthenticationException {
|
||||
final SignInActivity activity = activityRef.get();
|
||||
if (activity == null) return new SignInResponse(false, false, null);
|
||||
@ -734,39 +797,11 @@ public class SignInActivity extends BaseAppCompatActivity implements OnClickList
|
||||
}
|
||||
final long userId = user.getId();
|
||||
if (userId <= 0) return new SignInResponse(false, false, null);
|
||||
if (isUserLoggedIn(activity, userId)) return new SignInResponse(true, false, null);
|
||||
final int color = analyseUserProfileColor(user);
|
||||
return new SignInResponse(isUserLoggedIn(activity, userId), username, password, user,
|
||||
color, apiUrlFormat, noVersionSuffix);
|
||||
color, apiUrlFormat, noVersionSuffix, detectAccountType(twitter));
|
||||
}
|
||||
|
||||
static class WrongBasicCredentialException extends AuthenticationException {
|
||||
|
||||
}
|
||||
|
||||
static class WrongAPIURLFormatException extends AuthenticationException {
|
||||
|
||||
}
|
||||
|
||||
private SignInResponse authOAuth() throws AuthenticationException, TwitterException {
|
||||
final SignInActivity activity = activityRef.get();
|
||||
if (activity == null) return new SignInResponse(false, false, null);
|
||||
Endpoint endpoint = TwitterAPIFactory.getOAuthEndpoint(apiUrlFormat, "api", null, sameOAuthSigningUrl);
|
||||
OAuthAuthorization auth = new OAuthAuthorization(consumerKey.getOauthToken(), consumerKey.getOauthTokenSecret());
|
||||
final TwitterOAuth oauth = TwitterAPIFactory.getInstance(activity, endpoint, auth, TwitterOAuth.class);
|
||||
final OAuthPasswordAuthenticator authenticator = new OAuthPasswordAuthenticator(oauth, verificationCallback, userAgent);
|
||||
final OAuthToken accessToken = authenticator.getOAuthAccessToken(username, password);
|
||||
final long userId = accessToken.getUserId();
|
||||
if (userId <= 0) return new SignInResponse(false, false, null);
|
||||
endpoint = TwitterAPIFactory.getOAuthRestEndpoint(apiUrlFormat, sameOAuthSigningUrl, noVersionSuffix);
|
||||
auth = new OAuthAuthorization(consumerKey.getOauthToken(), consumerKey.getOauthTokenSecret(), accessToken);
|
||||
final Twitter twitter = TwitterAPIFactory.getInstance(activity, endpoint,
|
||||
auth, Twitter.class);
|
||||
final User user = twitter.verifyCredentials();
|
||||
final int color = analyseUserProfileColor(user);
|
||||
return new SignInResponse(isUserLoggedIn(activity, userId), auth, user, ParcelableCredentials.AUTH_TYPE_OAUTH, color,
|
||||
apiUrlFormat, sameOAuthSigningUrl, noVersionSuffix);
|
||||
}
|
||||
|
||||
private SignInResponse authTwipOMode() throws TwitterException {
|
||||
final SignInActivity activity = activityRef.get();
|
||||
@ -779,25 +814,27 @@ public class SignInActivity extends BaseAppCompatActivity implements OnClickList
|
||||
final long userId = user.getId();
|
||||
if (userId <= 0) return new SignInResponse(false, false, null);
|
||||
final int color = analyseUserProfileColor(user);
|
||||
return new SignInResponse(isUserLoggedIn(activity, userId), user, color, apiUrlFormat, noVersionSuffix);
|
||||
return new SignInResponse(isUserLoggedIn(activity, userId), user, color, apiUrlFormat,
|
||||
noVersionSuffix, detectAccountType(twitter));
|
||||
}
|
||||
|
||||
private SignInResponse authxAuth() throws TwitterException {
|
||||
final SignInActivity activity = activityRef.get();
|
||||
if (activity == null) return new SignInResponse(false, false, null);
|
||||
Endpoint endpoint = TwitterAPIFactory.getOAuthEndpoint(apiUrlFormat, "api", null, sameOAuthSigningUrl);
|
||||
OAuthAuthorization auth = new OAuthAuthorization(consumerKey.getOauthToken(), consumerKey.getOauthTokenSecret());
|
||||
final TwitterOAuth oauth = TwitterAPIFactory.getInstance(activity, endpoint, auth, TwitterOAuth.class);
|
||||
final OAuthToken accessToken = oauth.getAccessToken(username, password);
|
||||
final long userId = accessToken.getUserId();
|
||||
if (userId <= 0) return new SignInResponse(false, false, null);
|
||||
auth = new OAuthAuthorization(consumerKey.getOauthToken(), consumerKey.getOauthTokenSecret(), accessToken);
|
||||
endpoint = TwitterAPIFactory.getOAuthRestEndpoint(apiUrlFormat, sameOAuthSigningUrl, noVersionSuffix);
|
||||
private SignInResponse getOAuthSignInResponse(SignInActivity activity, OAuthToken accessToken,
|
||||
long userId, int authType) throws TwitterException {
|
||||
final OAuthAuthorization auth = new OAuthAuthorization(consumerKey.getOauthToken(), consumerKey.getOauthTokenSecret(), accessToken);
|
||||
final Endpoint endpoint = TwitterAPIFactory.getOAuthRestEndpoint(apiUrlFormat, sameOAuthSigningUrl, noVersionSuffix);
|
||||
final Twitter twitter = TwitterAPIFactory.getInstance(activity, endpoint, auth, Twitter.class);
|
||||
final User user = twitter.verifyCredentials();
|
||||
final int color = analyseUserProfileColor(user);
|
||||
return new SignInResponse(isUserLoggedIn(activity, userId), auth, user, ParcelableCredentials.AUTH_TYPE_XAUTH, color, apiUrlFormat,
|
||||
sameOAuthSigningUrl, noVersionSuffix);
|
||||
return new SignInResponse(isUserLoggedIn(activity, userId), auth, user, authType, color,
|
||||
apiUrlFormat, sameOAuthSigningUrl, noVersionSuffix, detectAccountType(twitter));
|
||||
}
|
||||
|
||||
static class WrongBasicCredentialException extends AuthenticationException {
|
||||
|
||||
}
|
||||
|
||||
static class WrongAPIURLFormatException extends AuthenticationException {
|
||||
|
||||
}
|
||||
|
||||
class InputLoginVerificationCallback implements OAuthPasswordAuthenticator.LoginVerificationCallback {
|
||||
@ -952,15 +989,20 @@ public class SignInActivity extends BaseAppCompatActivity implements OnClickList
|
||||
public final int authType, color;
|
||||
public final String apiUrlFormat;
|
||||
public final boolean sameOauthSigningUrl, noVersionSuffix;
|
||||
public final Pair<String, String> accountType;
|
||||
|
||||
public SignInResponse(final boolean alreadyLoggedIn, final boolean succeed, final Exception exception) {
|
||||
this(alreadyLoggedIn, succeed, exception, null, null, null, null, 0, 0, null, false, false);
|
||||
public SignInResponse(final boolean alreadyLoggedIn, final boolean succeed,
|
||||
final Exception exception) {
|
||||
this(alreadyLoggedIn, succeed, exception, null, null, null, null, 0, 0, null, false,
|
||||
false, null);
|
||||
}
|
||||
|
||||
public SignInResponse(final boolean alreadyLoggedIn, final boolean succeed, final Exception exception,
|
||||
final String basicUsername, final String basicPassword,
|
||||
final OAuthAuthorization oauth, final User user, final int authType, final int color,
|
||||
final String apiUrlFormat, final boolean sameOauthSigningUrl, final boolean noVersionSuffix) {
|
||||
public SignInResponse(final boolean alreadyLoggedIn, final boolean succeed,
|
||||
final Exception exception, final String basicUsername,
|
||||
final String basicPassword, final OAuthAuthorization oauth,
|
||||
final User user, final int authType, final int color,
|
||||
final String apiUrlFormat, final boolean sameOauthSigningUrl,
|
||||
final boolean noVersionSuffix, final Pair<String, String> accountType) {
|
||||
this.alreadyLoggedIn = alreadyLoggedIn;
|
||||
this.succeed = succeed;
|
||||
this.exception = exception;
|
||||
@ -973,27 +1015,32 @@ public class SignInActivity extends BaseAppCompatActivity implements OnClickList
|
||||
this.apiUrlFormat = apiUrlFormat;
|
||||
this.sameOauthSigningUrl = sameOauthSigningUrl;
|
||||
this.noVersionSuffix = noVersionSuffix;
|
||||
this.accountType = accountType;
|
||||
}
|
||||
|
||||
public SignInResponse(final boolean alreadyLoggedIn, final OAuthAuthorization oauth,
|
||||
final User user, final int authType, final int color,
|
||||
final String apiUrlFormat, final boolean sameOauthSigningUrl,
|
||||
final boolean noVersionSuffix) {
|
||||
final boolean noVersionSuffix, final Pair<String, String> accountType) {
|
||||
this(alreadyLoggedIn, true, null, null, null, oauth, user, authType, color, apiUrlFormat,
|
||||
sameOauthSigningUrl, noVersionSuffix);
|
||||
sameOauthSigningUrl, noVersionSuffix, accountType);
|
||||
}
|
||||
|
||||
public SignInResponse(final boolean alreadyLoggedIn, final String basicUsername,
|
||||
final String basicPassword, final User user, final int color,
|
||||
final String apiUrlFormat, final boolean noVersionSuffix) {
|
||||
this(alreadyLoggedIn, true, null, basicUsername, basicPassword, null, user, ParcelableCredentials.AUTH_TYPE_BASIC, color,
|
||||
apiUrlFormat, false, noVersionSuffix);
|
||||
final String apiUrlFormat, final boolean noVersionSuffix,
|
||||
final Pair<String, String> accountType) {
|
||||
this(alreadyLoggedIn, true, null, basicUsername, basicPassword, null, user,
|
||||
ParcelableCredentials.AUTH_TYPE_BASIC, color, apiUrlFormat, false,
|
||||
noVersionSuffix, accountType);
|
||||
}
|
||||
|
||||
public SignInResponse(final boolean alreadyLoggedIn, final User user, final int color,
|
||||
final String apiUrlFormat, final boolean noVersionSuffix) {
|
||||
this(alreadyLoggedIn, true, null, null, null, null, user, ParcelableCredentials.AUTH_TYPE_TWIP_O_MODE, color,
|
||||
apiUrlFormat, false, noVersionSuffix);
|
||||
final String apiUrlFormat, final boolean noVersionSuffix,
|
||||
final Pair<String, String> accountType) {
|
||||
this(alreadyLoggedIn, true, null, null, null, null, user,
|
||||
ParcelableCredentials.AUTH_TYPE_TWIP_O_MODE, color, apiUrlFormat, false,
|
||||
noVersionSuffix, accountType);
|
||||
}
|
||||
|
||||
private ContentValues toContentValues() {
|
||||
@ -1018,6 +1065,10 @@ public class SignInActivity extends BaseAppCompatActivity implements OnClickList
|
||||
values = null;
|
||||
}
|
||||
}
|
||||
if (values != null && accountType != null) {
|
||||
values.put(Accounts.ACCOUNT_TYPE, accountType.first);
|
||||
values.put(Accounts.ACCOUNT_EXTRAS, accountType.second);
|
||||
}
|
||||
return values;
|
||||
}
|
||||
}
|
||||
|
@ -6,10 +6,6 @@
|
||||
|
||||
<Preference android:layout="@layout/header_hidden_settings"/>
|
||||
|
||||
<org.mariotaku.twidere.preference.AutoFixSwitchPreference
|
||||
android:defaultValue="false"
|
||||
android:key="force_using_private_apis"
|
||||
android:title="@string/force_using_private_apis"/>
|
||||
<org.mariotaku.twidere.preference.SeekBarDialogPreference
|
||||
android:defaultValue="10"
|
||||
android:key="connection_timeout"
|
||||
@ -18,12 +14,6 @@
|
||||
app:min="5"
|
||||
app:progressTextSuffix="s"/>
|
||||
|
||||
<org.mariotaku.twidere.preference.AutoFixEditTextPreference
|
||||
android:defaultValue="140"
|
||||
android:inputType="number"
|
||||
android:key="status_text_limit"
|
||||
android:title="@string/status_text_limit"/>
|
||||
|
||||
<edu.tsinghua.hotmobi.UploadLogsPreferences android:title="@string/report_usage_statistics_now"/>
|
||||
|
||||
<Preference android:title="@string/settings_wizard">
|
||||
|
Loading…
x
Reference in New Issue
Block a user