@Override public void handleMessage(final Message msg) { // Get active connectors with login status final ILogin[] loginConns = ConnectorFactory.getActiveLiveConnectors(); // Update UI infoArea.removeAllViews(); final LayoutInflater inflater = getLayoutInflater(); for (final ILogin conn : loginConns) { final TextView connectorInfo = (TextView) inflater.inflate(R.layout.main_activity_connectorstatus, null); infoArea.addView(connectorInfo); final StringBuilder userInfo = new StringBuilder(conn.getName()).append(Formatter.SEPARATOR); if (conn.isLoggedIn()) { userInfo.append(conn.getUserName()); if (conn.getCachesFound() >= 0) { userInfo.append(" (").append(conn.getCachesFound()).append(')'); } userInfo.append(Formatter.SEPARATOR); } userInfo.append(conn.getLoginStatusString()); connectorInfo.setText(userInfo); } }
private void startBackgroundLogin() { assert (app != null); final boolean mustLogin = app.mustRelog(); for (final ILogin conn : ConnectorFactory.getActiveLiveConnectors()) { if (mustLogin || !conn.isLoggedIn()) { new Thread() { @Override public void run() { if (mustLogin && conn == GCConnector.getInstance()) { // Properly log out from geocaching.com GCLogin.getInstance().logout(); } conn.login(firstLoginHandler, MainActivity.this); updateUserInfoHandler.sendEmptyMessage(-1); } }.start(); } } }