private void saveAndSyncIfLogined(final String loginId, final String password) { final Context c = getApplicationContext(); String curLoginId = ReaderPreferences.getLoginId(c); String curPassword = ReaderPreferences.getPassword(c); if (curLoginId != null && curLoginId.equals(loginId) && curPassword != null && curPassword.equals(password)) { finish(); return; } showDialog(DIALOG_PROGRESS); new Thread() { public void run() { ReaderManager rm = ReaderManager.newInstance(c); boolean success = false; try { if (rm.login(loginId, password)) { ReaderPreferences.setLoginIdPassword(c, loginId, password); success = true; } else { showToast(getText(R.string.msg_login_fail)); } } catch (final IOException e) { showToast(e); } catch (final Throwable e) { showToast(e); } final boolean finish = success; handler.post( new Runnable() { public void run() { LoginActivity.this.progressDialog.dismiss(); if (finish) { LoginActivity.this.startSubscription(); } } }); } }.start(); }