public static void runAfterFacebookAuthentication( final Activity activity, final Runnable runOnSuccessAuthentication, final Runnable runOnCancelAuthentication) { Facebook facebook = FacebookProvider.getFacebook(); if (facebook.isSessionValid()) { runOnSuccessAuthentication.run(); } else { YesNoDialogFragment dialogFragment = YesNoDialogFragment.newInstance( R.string.share_facbook_authorisation_question, new YesNoButtonPressedHandler() { @Override public void yesButtonPressed(DialogInterface dialog) { AuthListener listener = new SelfRemovingWithDelayAuthListener(runOnSuccessAuthentication); FacebookSessionEvents.addAuthListener(listener); FacebookUtils.loginRequest(activity, MainActivity.AUTHORIZE_ACTIVITY_RESULT_CODE); } @Override public void noButtonPressed(DialogInterface dialog) { if (runOnCancelAuthentication != null) { runOnCancelAuthentication.run(); } } }); dialogFragment.show(activity); } }
/** * Extend the facebook access token if needed * * @param context */ public static void extendAceessTokenIfNeeded(Context context) { Facebook facebook = FacebookProvider.getFacebook(); if (facebook != null) { if (facebook.isSessionValid()) { facebook.extendAccessTokenIfNeeded(context, null); } } }
/** * Request the logout for the current facebook session * * @param activity */ public static void logoutRequest(Activity activity) { Facebook mFb = FacebookProvider.getFacebook(); if (mFb.isSessionValid()) { FacebookSessionEvents.onLogoutBegin(); AsyncFacebookRunner asyncRunner = new AsyncFacebookRunner(mFb); asyncRunner.logout(activity, new LogoutRequestListener(activity)); } }
/** * Request the facebook authentication * * @param activity * @param activityCode the result code which will be handled on the onActivityResult method */ public static void loginRequest(Activity activity, int activityCode) { Facebook mFb = FacebookProvider.getFacebook(); if (!mFb.isSessionValid()) { mFb.authorize( activity, activity.getResources().getStringArray(R.array.share_facebook_permissions), activityCode, new LoginDialogListener(activity.getApplicationContext())); } }
@Override public void onAuthSucceed() { save(FacebookProvider.getFacebook(), context); }