diff options
Diffstat (limited to 'main/src/cgeo/geocaching/MainActivity.java')
| -rw-r--r-- | main/src/cgeo/geocaching/MainActivity.java | 47 |
1 files changed, 21 insertions, 26 deletions
diff --git a/main/src/cgeo/geocaching/MainActivity.java b/main/src/cgeo/geocaching/MainActivity.java index 127a21d..d3f78cf 100644 --- a/main/src/cgeo/geocaching/MainActivity.java +++ b/main/src/cgeo/geocaching/MainActivity.java @@ -1,8 +1,5 @@ package cgeo.geocaching; -import butterknife.ButterKnife; -import butterknife.InjectView; - import cgeo.geocaching.activity.AbstractActivity; import cgeo.geocaching.connector.ConnectorFactory; import cgeo.geocaching.connector.capability.ILogin; @@ -22,9 +19,10 @@ import cgeo.geocaching.utils.Log; import cgeo.geocaching.utils.RunnableWithArgument; import cgeo.geocaching.utils.Version; +import butterknife.ButterKnife; +import butterknife.InjectView; import com.google.zxing.integration.android.IntentIntegrator; import com.google.zxing.integration.android.IntentResult; - import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; @@ -232,9 +230,28 @@ public class MainActivity extends AbstractActivity { locationUpdater.startGeo(); satellitesHandler.startGeo(); updateUserInfoHandler.sendEmptyMessage(-1); + startBackgroundLogin(); init(); } + private void startBackgroundLogin() { + assert(app != null); + + (new Thread() { + @Override + public void run() { + final boolean mustLogin = app.mustRelog(); + + for (final ILogin conn : ConnectorFactory.getActiveLiveConnectors()) { + if (mustLogin || !conn.isLoggedIn()) { + conn.login(firstLoginHandler, MainActivity.this); + updateUserInfoHandler.sendEmptyMessage(-1); + } + } + } + }).start(); + } + @Override public void onDestroy() { initialized = false; @@ -342,11 +359,6 @@ public class MainActivity extends AbstractActivity { } private void init() { - - if (app.checkLogin) { - (new FirstLoginThread()).start(); - } - if (initialized) { return; } @@ -700,23 +712,6 @@ public class MainActivity extends AbstractActivity { } } - private class FirstLoginThread extends Thread { - - @Override - public void run() { - if (app == null) { - return; - } - - ILogin[] conns = ConnectorFactory.getActiveLiveConnectors(); - - for (ILogin conn : conns) { - conn.login(firstLoginHandler, MainActivity.this); - updateUserInfoHandler.sendEmptyMessage(-1); - } - } - } - private class ObtainAddressThread extends Thread { public ObtainAddressThread() { |
