aboutsummaryrefslogtreecommitdiffstats
path: root/main/src/cgeo/geocaching/MainActivity.java
diff options
context:
space:
mode:
Diffstat (limited to 'main/src/cgeo/geocaching/MainActivity.java')
-rw-r--r--main/src/cgeo/geocaching/MainActivity.java47
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() {