removed unused account declaration

fixed browser sign in memory leak
This commit is contained in:
Mariotaku Lee 2016-12-16 14:16:41 +08:00
parent d38187b5e5
commit fa298f4a83
6 changed files with 29 additions and 16 deletions

View File

@ -41,9 +41,15 @@
<uses-permission android:name="android.permission.NFC"/>
<!-- Used for account management -->
<uses-permission android:name="android.permission.GET_ACCOUNTS"/>
<uses-permission android:name="android.permission.MANAGE_ACCOUNTS"/>
<uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS"/>
<uses-permission
android:name="android.permission.GET_ACCOUNTS"
android:maxSdkVersion="22"/>
<uses-permission
android:name="android.permission.MANAGE_ACCOUNTS"
android:maxSdkVersion="22"/>
<uses-permission
android:name="android.permission.AUTHENTICATE_ACCOUNTS"
android:maxSdkVersion="22"/>
<!-- Used for account sync -->
<uses-permission android:name="android.permission.READ_SYNC_SETTINGS"/>

View File

@ -6,7 +6,6 @@ import android.content.Context;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import org.apache.commons.lang3.StringUtils;
import org.mariotaku.twidere.R;
import org.mariotaku.twidere.annotation.AccountType;
import org.mariotaku.twidere.annotation.AuthTypeInt;
@ -90,9 +89,10 @@ public class AccountUtils {
return details;
}
public static Account findByScreenName(AccountManager am, String screenName) {
@Nullable
public static Account findByScreenName(AccountManager am, @NonNull String screenName) {
for (Account account : getAccounts(am)) {
if (StringUtils.equalsIgnoreCase(UserKey.valueOf(account.name).getId(), screenName)) {
if (screenName.equalsIgnoreCase(AccountExtensionsKt.getAccountUser(account, am).screen_name)) {
return account;
}
}

View File

@ -55,6 +55,7 @@ import org.mariotaku.twidere.util.OAuthPasswordAuthenticator
import org.mariotaku.twidere.util.webkit.DefaultWebViewClient
import java.io.IOException
import java.io.StringReader
import java.lang.ref.WeakReference
@SuppressLint("SetJavaScriptEnabled")
class BrowserSignInActivity : BaseActivity() {
@ -190,15 +191,17 @@ class BrowserSignInActivity : BaseActivity() {
}
internal class GetRequestTokenTask(private val activity: BrowserSignInActivity) : AsyncTask<Any, Any, SingleResponse<OAuthToken>>() {
internal class GetRequestTokenTask(activity: BrowserSignInActivity) : AsyncTask<Any, Any, SingleResponse<OAuthToken>>() {
private val activityRef: WeakReference<BrowserSignInActivity>
private val apiConfig: CustomAPIConfig
init {
val intent = activity.intent
apiConfig = intent.getParcelableExtra<CustomAPIConfig>(EXTRA_API_CONFIG)
activityRef = WeakReference(activity)
apiConfig = activity.intent.getParcelableExtra(EXTRA_API_CONFIG)
}
override fun doInBackground(vararg params: Any): SingleResponse<OAuthToken> {
val activity = activityRef.get() ?: return SingleResponse(exception = InterruptedException())
if (isEmpty(apiConfig.consumerKey) || isEmpty(apiConfig.consumerSecret)) {
return SingleResponse()
}
@ -206,16 +209,17 @@ class BrowserSignInActivity : BaseActivity() {
val endpoint = MicroBlogAPIFactory.getOAuthSignInEndpoint(apiConfig.apiUrlFormat,
apiConfig.isSameOAuthUrl)
val auth = OAuthAuthorization(apiConfig.consumerKey, apiConfig.consumerSecret)
val oauth = newMicroBlogInstance(activity, endpoint,
auth, true, null, TwitterOAuth::class.java)
return SingleResponse(oauth.getRequestToken(TwidereConstants.OAUTH_CALLBACK_OOB), null, Bundle())
val oauth = newMicroBlogInstance(activity, endpoint, auth, true, null,
TwitterOAuth::class.java)
return SingleResponse(oauth.getRequestToken(TwidereConstants.OAUTH_CALLBACK_OOB))
} catch (e: MicroBlogException) {
return SingleResponse(null, e, Bundle())
return SingleResponse(exception = e)
}
}
override fun onPostExecute(result: SingleResponse<OAuthToken>) {
val activity = activityRef.get() ?: return
activity.setLoadProgressShown(false)
if (result.hasData()) {
val token = result.data!!
@ -234,6 +238,7 @@ class BrowserSignInActivity : BaseActivity() {
}
override fun onPreExecute() {
val activity = activityRef.get() ?: return
activity.setLoadProgressShown(true)
}

View File

@ -163,7 +163,7 @@ class AccountsDashboardFragment : BaseSupportFragment(), LoaderCallbacks<Account
accountProfileBanner.setInAnimation(context, android.R.anim.fade_in)
accountProfileBanner.setOutAnimation(context, android.R.anim.fade_out)
accountProfileBanner.setFactory {
inflater.inflate(R.layout.layout_account_dashboard_profile_image,
inflater.inflate(R.layout.layout_account_dashboard_profile_banner,
accountProfileBanner, false)
}

View File

@ -9,7 +9,7 @@ import android.support.v4.util.LongSparseArray
import android.text.TextUtils
import org.mariotaku.abstask.library.AbstractTask
import org.mariotaku.sqliteqb.library.Expression
import org.mariotaku.twidere.TwidereConstants
import org.mariotaku.twidere.TwidereConstants.ACCOUNT_TYPE
import org.mariotaku.twidere.extension.setAccountKey
import org.mariotaku.twidere.extension.setAccountUser
import org.mariotaku.twidere.model.*
@ -35,7 +35,7 @@ class UpdateAccountInfoTask(
}
val am = AccountManager.get(context)
val account = Account(details.account.name, TwidereConstants.ACCOUNT_TYPE)
val account = Account(details.account.name, ACCOUNT_TYPE)
account.setAccountUser(am, user)
account.setAccountKey(am, user.key)

View File

@ -3,5 +3,7 @@
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="fill"
android:adjustViewBounds="false"
android:contentDescription="@string/profile_banner"
android:scaleType="centerCrop"/>