Skip to content

Commit b65502b

Browse files
authored
Merge pull request #10833 from wordpress-mobile/issue/10832-fix-npe-in-login-fragment
Fixed NPE in LoginUsernamePasswordFragment
2 parents e078a7a + 69e1cb1 commit b65502b

File tree

1 file changed

+8
-1
lines changed

1 file changed

+8
-1
lines changed

WordPressLoginFlow/src/main/java/org/wordpress/android/login/LoginUsernamePasswordFragment.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@
5454
public class LoginUsernamePasswordFragment extends LoginBaseDiscoveryFragment implements TextWatcher,
5555
OnEditorCommitListener, LoginBaseDiscoveryFragment.LoginBaseDiscoveryListener {
5656
private static final String KEY_LOGIN_FINISHED = "KEY_LOGIN_FINISHED";
57+
private static final String KEY_LOGIN_STARTED = "KEY_LOGIN_STARTED";
5758
private static final String KEY_REQUESTED_USERNAME = "KEY_REQUESTED_USERNAME";
5859
private static final String KEY_REQUESTED_PASSWORD = "KEY_REQUESTED_PASSWORD";
5960
private static final String KEY_OLD_SITES_IDS = "KEY_OLD_SITES_IDS";
@@ -77,6 +78,7 @@ public class LoginUsernamePasswordFragment extends LoginBaseDiscoveryFragment im
7778

7879
private boolean mAuthFailed;
7980
private boolean mLoginFinished;
81+
private boolean mLoginStarted;
8082

8183
private String mRequestedUsername;
8284
private String mRequestedPassword;
@@ -241,6 +243,7 @@ public void onActivityCreated(@Nullable Bundle savedInstanceState) {
241243

242244
if (savedInstanceState != null) {
243245
mLoginFinished = savedInstanceState.getBoolean(KEY_LOGIN_FINISHED);
246+
mLoginStarted = savedInstanceState.getBoolean(KEY_LOGIN_STARTED);
244247

245248
mRequestedUsername = savedInstanceState.getString(KEY_REQUESTED_USERNAME);
246249
mRequestedPassword = savedInstanceState.getString(KEY_REQUESTED_PASSWORD);
@@ -266,6 +269,7 @@ public void onSaveInstanceState(Bundle outState) {
266269
super.onSaveInstanceState(outState);
267270

268271
outState.putBoolean(KEY_LOGIN_FINISHED, mLoginFinished);
272+
outState.putBoolean(KEY_LOGIN_STARTED, mLoginStarted);
269273
outState.putString(KEY_REQUESTED_USERNAME, mRequestedUsername);
270274
outState.putString(KEY_REQUESTED_PASSWORD, mRequestedPassword);
271275
outState.putIntegerArrayList(KEY_OLD_SITES_IDS, mOldSitesIDs);
@@ -291,6 +295,7 @@ protected void next() {
291295
return;
292296
}
293297

298+
mLoginStarted = true;
294299
startProgress();
295300

296301
mRequestedUsername = getCleanedUsername();
@@ -509,6 +514,7 @@ public void onAuthenticationChanged(OnAuthenticationChanged event) {
509514
}
510515

511516
if (event.isError()) {
517+
mLoginStarted = false;
512518
if (mRequestedUsername == null) {
513519
// just bail since the operation was cancelled
514520
return;
@@ -563,11 +569,12 @@ private void finishLogin() {
563569
@SuppressWarnings("unused")
564570
@Subscribe(threadMode = ThreadMode.MAIN)
565571
public void onSiteChanged(OnSiteChanged event) {
566-
if (!isAdded() || mLoginFinished) {
572+
if (!isAdded() || mLoginFinished || !mLoginStarted) {
567573
return;
568574
}
569575

570576
if (event.isError()) {
577+
mLoginStarted = false;
571578
if (mRequestedUsername == null) {
572579
// just bail since the operation was cancelled
573580
return;

0 commit comments

Comments
 (0)