5454public 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