void launchLoginActivity() { try { setTitle(R.string.facebook_request_token_title); facebook_info.setText(R.string.facebook_request_token_title); isInProcess = true; token = loghelper.getDesktopApp().requestToken(); isInProcess = false; getToken = true; loginURL = loghelper.getDesktopApp().getLoginUrl(token); if (getToken == false) { Toast.makeText( FacebookLoginActivity.this, R.string.facebook_get_accesstoken_failed, Toast.LENGTH_LONG) .show(); FacebookLoginActivity.this.setTitle(R.string.sns_network_unavailable); facebook_info.setText(R.string.facebook_login_failed_message); } else { Log.d(TAG, "after get token=" + token); mHandler.obtainMessage(QUIT_THREAD).sendToTarget(); Intent intent = new Intent(FacebookLoginActivity.this, FacebookLoginWebViewActivity.class); intent.putExtra("facebook_loginURL", loginURL); startActivityForResult(intent, LOGIN_WEBVIEW); } } catch (FacebookException ne) { isInProcess = false; Log.d(TAG, "fail to request the token=" + ne.getMessage()); sendMessageToService(false); count--; if (count >= 0) { Log.d(TAG, "get token again"); Message msd = mHandler.obtainMessage(LOAD_LOGIN_PAGE); mHandler.sendMessageDelayed(msd, 5 * 1000); } } if (getToken == false) { handler.obtainMessage(NETWORK_UNAVAL).sendToTarget(); } Log.d(TAG, "continue"); if (getToken == true || count <= 0) { mHandler.obtainMessage(QUIT_THREAD).sendToTarget(); } }
public void run() { handler.post( new Runnable() { public void run() { FacebookLoginActivity.this.setTitle(R.string.facebook_getsession_title); facebook_info.setText(R.string.facebook_getsession_wait_message); } }); Log.d(TAG, "reconstrcut the facebook session"); FacebookSession tmps = null; try { tmps = loghelper.getDesktopApp().requestSession(token); handler.post( new Runnable() { public void run() { facebook_info.setText(R.string.facebook_getsession_successed); } }); } catch (FacebookException e) { Log.e(TAG, "fail to get facebook session=" + e.getMessage()); handler.post( new Runnable() { public void run() { facebook_info.setText(R.string.facebook_fail_to_get_session); FacebookLoginActivity.this.setResult(200); sendMessageToService(false); quitLooperAndFinish(); } }); return; } // save into database String Sessionkey = tmps.getSessionKey(); String secretKey = tmps.getSecretKey(); long userId = tmps.getLogerInUserID(); loghelper.recordTmpSession(Sessionkey, secretKey, userId); SocialORM orm = new SocialORM(FacebookLoginActivity.this); boolean persm = false; try { handler.post( new Runnable() { public void run() { facebook_info.setText(R.string.facebook_make_session_permanent); } }); persm = tmps.AuthLogin( tmps.getSessionKey(), FacebookLoginHelper.SECRET_KEY, loghelper.getEmail(), loghelper.getPwd()); handler.post( new Runnable() { public void run() { facebook_info.setText(R.string.facebook_make_session_permanent_suc); } }); } catch (FacebookException kke) { Log.d(TAG, "fail to get perm session=" + kke.getMessage()); } if (true == persm) { recordPermSession(tmps, orm); } else { Log.d(TAG, "fail to get permnant session"); if (orm.isUsePermanentSeesion() == false) { Log.d(TAG, "fail to get permnant session, use tmp session"); recordPermSession(tmps, orm); } else { handler.post( new Runnable() { public void run() { Toast.makeText( FacebookLoginActivity.this, R.string.facebook_get_permanent_session_failed, Toast.LENGTH_LONG) .show(); } }); } } // reset the session and async in activity AccountManager.login(); handler.post( new Runnable() { public void run() { FacebookLoginActivity.this.setResult(100); sendMessageToService(true); } }); handler.post( new Runnable() { public void run() { quitLooperAndFinish(); } }); }
void auth_login() { isInProcess = true; setButtonEnable(false); Log.d(TAG, "reconstrcut the facebook session"); final FacebookSession tmps; boolean persm = false; try { setHint(getString(R.string.verify_account_hint)); tmps = loghelper.getDesktopApp().AuthLoginNoSession(loghelper.getEmail(), loghelper.getPwd()); } catch (FacebookException e) { Log.e(TAG, "fail to get facebook session=" + e.getMessage()); handler.post( new Runnable() { public void run() { facebook_info.setText(R.string.facebook_fail_to_get_session); // FacebookLoginActivity.this.setResult(200); // sendMessageToService(false); // quitLooperAndFinish(); } }); mHandler.obtainMessage(QUIT_THREAD).sendToTarget(); isInProcess = false; setButtonEnable(true); return; } try { persm = tmps.AuthLogin( tmps.getSessionKey(), FacebookLoginHelper.SECRET_KEY, loghelper.getEmail(), loghelper.getPwd()); } catch (FacebookException e) { Log.e(TAG, "Fail to get permanant session, ignore this step."); } setHint(getString(R.string.verify_account_suc_hint)); // get login info in background // save into database String Sessionkey = tmps.getSessionKey(); String secretKey = tmps.getSecretKey(); long userId = tmps.getLogerInUserID(); loghelper.recordTmpSession(Sessionkey, secretKey, userId); SocialORM orm = SocialORM.instance(FacebookLoginActivity.this); if (true == persm) { recordPermSession(tmps, orm); } else { Log.d(TAG, "fail to get permnant session"); if (orm.isUsePermanentSeesion() == false) { Log.d(TAG, "fail to get permnant session, use tmp session"); recordPermSession(tmps, orm); } else { handler.post( new Runnable() { public void run() { Toast.makeText( FacebookLoginActivity.this, R.string.facebook_get_permanent_session_failed, Toast.LENGTH_LONG) .show(); } }); } } // reset the session and async in activity AccountManager.login(); handler.post( new Runnable() { public void run() { FacebookLoginActivity.this.setResult(100); sendMessageToService(true); } }); handler.post( new Runnable() { public void run() { quitLooperAndFinish(); } }); isInProcess = false; setButtonEnable(true); }