mirror of
https://github.com/commons-app/apps-android-commons.git
synced 2025-10-26 12:23:58 +01:00
Merge pull request #444 from misaochan/fix-login-3
Revert login-breaking commit
This commit is contained in:
commit
d8fdd49344
2 changed files with 28 additions and 29 deletions
|
|
@ -1,16 +1,12 @@
|
|||
package fr.free.nrw.commons.auth;
|
||||
|
||||
import android.Manifest;
|
||||
import android.accounts.Account;
|
||||
import android.accounts.AccountManager;
|
||||
import android.accounts.AccountManagerFuture;
|
||||
import android.accounts.AuthenticatorException;
|
||||
import android.accounts.OperationCanceledException;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.os.AsyncTask;
|
||||
import android.os.Bundle;
|
||||
import android.support.annotation.Nullable;
|
||||
import android.support.v4.app.ActivityCompat;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
|
|
@ -26,13 +22,12 @@ public abstract class AuthenticatedActivity extends BaseAppCompatActivity {
|
|||
private String authCookie;
|
||||
|
||||
public AuthenticatedActivity(String accountType) {
|
||||
this.accountType = accountType;
|
||||
this.accountType = accountType;
|
||||
}
|
||||
|
||||
private class GetAuthCookieTask extends AsyncTask<Void, String, String> {
|
||||
private Account account;
|
||||
private AccountManager accountManager;
|
||||
|
||||
public GetAuthCookieTask(Account account, AccountManager accountManager) {
|
||||
this.account = account;
|
||||
this.accountManager = accountManager;
|
||||
|
|
@ -41,7 +36,7 @@ public abstract class AuthenticatedActivity extends BaseAppCompatActivity {
|
|||
@Override
|
||||
protected void onPostExecute(String result) {
|
||||
super.onPostExecute(result);
|
||||
if (result != null) {
|
||||
if(result != null) {
|
||||
authCookie = result;
|
||||
onAuthCookieAcquired(result);
|
||||
} else {
|
||||
|
|
@ -68,7 +63,6 @@ public abstract class AuthenticatedActivity extends BaseAppCompatActivity {
|
|||
|
||||
private class AddAccountTask extends AsyncTask<Void, String, String> {
|
||||
private AccountManager accountManager;
|
||||
|
||||
public AddAccountTask(AccountManager accountManager) {
|
||||
this.accountManager = accountManager;
|
||||
}
|
||||
|
|
@ -76,8 +70,9 @@ public abstract class AuthenticatedActivity extends BaseAppCompatActivity {
|
|||
@Override
|
||||
protected void onPostExecute(String result) {
|
||||
super.onPostExecute(result);
|
||||
if (result != null) {
|
||||
Account curAccount = getCurrentAccount();
|
||||
if(result != null) {
|
||||
Account[] allAccounts =accountManager.getAccountsByType(accountType);
|
||||
Account curAccount = allAccounts[0];
|
||||
GetAuthCookieTask getCookieTask = new GetAuthCookieTask(curAccount, accountManager);
|
||||
getCookieTask.execute();
|
||||
} else {
|
||||
|
|
@ -85,18 +80,6 @@ public abstract class AuthenticatedActivity extends BaseAppCompatActivity {
|
|||
}
|
||||
}
|
||||
|
||||
@Nullable
|
||||
private Account getCurrentAccount() {
|
||||
if (ActivityCompat.checkSelfPermission(AuthenticatedActivity.this, Manifest.permission.GET_ACCOUNTS) != PackageManager.PERMISSION_GRANTED) {
|
||||
return null;
|
||||
}
|
||||
Account[] allAccounts = accountManager.getAccountsByType(accountType);
|
||||
if (allAccounts == null) {
|
||||
return null;
|
||||
}
|
||||
return allAccounts[0];
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String doInBackground(Void... params) {
|
||||
AccountManagerFuture<Bundle> resultFuture = accountManager.addAccount(accountType, null, null, null, AuthenticatedActivity.this, null, null);
|
||||
|
|
|
|||
|
|
@ -50,11 +50,11 @@ public class LoginActivity extends AccountAuthenticatorActivity {
|
|||
Button signupButton;
|
||||
EditText usernameEdit;
|
||||
EditText passwordEdit;
|
||||
ProgressDialog dialog;
|
||||
|
||||
private class LoginTask extends AsyncTask<String, String, String> {
|
||||
|
||||
Activity context;
|
||||
ProgressDialog dialog;
|
||||
String username;
|
||||
String password;
|
||||
|
||||
|
|
@ -69,7 +69,9 @@ public class LoginActivity extends AccountAuthenticatorActivity {
|
|||
.log();
|
||||
|
||||
if (result.equals("Success")) {
|
||||
dialog.dismiss();
|
||||
if (dialog != null && dialog.isShowing()) {
|
||||
dialog.dismiss();
|
||||
}
|
||||
Toast successToast = Toast.makeText(context, R.string.login_success, Toast.LENGTH_SHORT);
|
||||
successToast.show();
|
||||
Account account = new Account(username, WikiAccountAuthenticator.COMMONS_ACCOUNT_TYPE);
|
||||
|
|
@ -219,6 +221,20 @@ public class LoginActivity extends AccountAuthenticatorActivity {
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
protected void onDestroy() {
|
||||
try {
|
||||
// To prevent leaked window when finish() is called, see http://stackoverflow.com/questions/32065854/activity-has-leaked-window-at-alertdialog-show-method
|
||||
if (dialog != null && dialog.isShowing()) {
|
||||
dialog.dismiss();
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
super.onDestroy();
|
||||
}
|
||||
|
||||
private void performLogin() {
|
||||
String username = usernameEdit.getText().toString();
|
||||
// Because Mediawiki is upercase-first-char-then-case-sensitive :)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue