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;
|
package fr.free.nrw.commons.auth;
|
||||||
|
|
||||||
import android.Manifest;
|
|
||||||
import android.accounts.Account;
|
import android.accounts.Account;
|
||||||
import android.accounts.AccountManager;
|
import android.accounts.AccountManager;
|
||||||
import android.accounts.AccountManagerFuture;
|
import android.accounts.AccountManagerFuture;
|
||||||
import android.accounts.AuthenticatorException;
|
import android.accounts.AuthenticatorException;
|
||||||
import android.accounts.OperationCanceledException;
|
import android.accounts.OperationCanceledException;
|
||||||
import android.content.pm.PackageManager;
|
|
||||||
import android.os.AsyncTask;
|
import android.os.AsyncTask;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.support.annotation.Nullable;
|
|
||||||
import android.support.v4.app.ActivityCompat;
|
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
|
|
@ -24,24 +20,23 @@ public abstract class AuthenticatedActivity extends BaseAppCompatActivity {
|
||||||
CommonsApplication app;
|
CommonsApplication app;
|
||||||
|
|
||||||
private String authCookie;
|
private String authCookie;
|
||||||
|
|
||||||
public AuthenticatedActivity(String accountType) {
|
public AuthenticatedActivity(String accountType) {
|
||||||
this.accountType = accountType;
|
this.accountType = accountType;
|
||||||
}
|
}
|
||||||
|
|
||||||
private class GetAuthCookieTask extends AsyncTask<Void, String, String> {
|
private class GetAuthCookieTask extends AsyncTask<Void, String, String> {
|
||||||
private Account account;
|
private Account account;
|
||||||
private AccountManager accountManager;
|
private AccountManager accountManager;
|
||||||
|
|
||||||
public GetAuthCookieTask(Account account, AccountManager accountManager) {
|
public GetAuthCookieTask(Account account, AccountManager accountManager) {
|
||||||
this.account = account;
|
this.account = account;
|
||||||
this.accountManager = accountManager;
|
this.accountManager = accountManager;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onPostExecute(String result) {
|
protected void onPostExecute(String result) {
|
||||||
super.onPostExecute(result);
|
super.onPostExecute(result);
|
||||||
if (result != null) {
|
if(result != null) {
|
||||||
authCookie = result;
|
authCookie = result;
|
||||||
onAuthCookieAcquired(result);
|
onAuthCookieAcquired(result);
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -65,19 +60,19 @@ public abstract class AuthenticatedActivity extends BaseAppCompatActivity {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private class AddAccountTask extends AsyncTask<Void, String, String> {
|
private class AddAccountTask extends AsyncTask<Void, String, String> {
|
||||||
private AccountManager accountManager;
|
private AccountManager accountManager;
|
||||||
|
|
||||||
public AddAccountTask(AccountManager accountManager) {
|
public AddAccountTask(AccountManager accountManager) {
|
||||||
this.accountManager = accountManager;
|
this.accountManager = accountManager;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onPostExecute(String result) {
|
protected void onPostExecute(String result) {
|
||||||
super.onPostExecute(result);
|
super.onPostExecute(result);
|
||||||
if (result != null) {
|
if(result != null) {
|
||||||
Account curAccount = getCurrentAccount();
|
Account[] allAccounts =accountManager.getAccountsByType(accountType);
|
||||||
|
Account curAccount = allAccounts[0];
|
||||||
GetAuthCookieTask getCookieTask = new GetAuthCookieTask(curAccount, accountManager);
|
GetAuthCookieTask getCookieTask = new GetAuthCookieTask(curAccount, accountManager);
|
||||||
getCookieTask.execute();
|
getCookieTask.execute();
|
||||||
} else {
|
} 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
|
@Override
|
||||||
protected String doInBackground(Void... params) {
|
protected String doInBackground(Void... params) {
|
||||||
AccountManagerFuture<Bundle> resultFuture = accountManager.addAccount(accountType, null, null, null, AuthenticatedActivity.this, null, null);
|
AccountManagerFuture<Bundle> resultFuture = accountManager.addAccount(accountType, null, null, null, AuthenticatedActivity.this, null, null);
|
||||||
|
|
|
||||||
|
|
@ -50,11 +50,11 @@ public class LoginActivity extends AccountAuthenticatorActivity {
|
||||||
Button signupButton;
|
Button signupButton;
|
||||||
EditText usernameEdit;
|
EditText usernameEdit;
|
||||||
EditText passwordEdit;
|
EditText passwordEdit;
|
||||||
|
ProgressDialog dialog;
|
||||||
|
|
||||||
private class LoginTask extends AsyncTask<String, String, String> {
|
private class LoginTask extends AsyncTask<String, String, String> {
|
||||||
|
|
||||||
Activity context;
|
Activity context;
|
||||||
ProgressDialog dialog;
|
|
||||||
String username;
|
String username;
|
||||||
String password;
|
String password;
|
||||||
|
|
||||||
|
|
@ -69,7 +69,9 @@ public class LoginActivity extends AccountAuthenticatorActivity {
|
||||||
.log();
|
.log();
|
||||||
|
|
||||||
if (result.equals("Success")) {
|
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);
|
Toast successToast = Toast.makeText(context, R.string.login_success, Toast.LENGTH_SHORT);
|
||||||
successToast.show();
|
successToast.show();
|
||||||
Account account = new Account(username, WikiAccountAuthenticator.COMMONS_ACCOUNT_TYPE);
|
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() {
|
private void performLogin() {
|
||||||
String username = usernameEdit.getText().toString();
|
String username = usernameEdit.getText().toString();
|
||||||
// Because Mediawiki is upercase-first-char-then-case-sensitive :)
|
// Because Mediawiki is upercase-first-char-then-case-sensitive :)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue