Search in sources :

Example 21 with LoginResult

use of com.facebook.login.LoginResult in project ServiceStack.Java by ServiceStack.

the class LoginButtonsActivity method onCreate.

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    Fabric.with(this, new Twitter(new TwitterAuthConfig(getString(R.string.twitter_key), getString(R.string.twitter_secret))));
    setContentView(R.layout.login_buttons);
    Toolbar toolbar = (Toolbar) findViewById(R.id.loginToolbar);
    setSupportActionBar(toolbar);
    getSupportActionBar().setHomeButtonEnabled(true);
    getSupportActionBar().setDisplayShowTitleEnabled(true);
    progressBar = (ProgressBar) findViewById(R.id.progressBar);
    txtStatus = (TextView) findViewById(R.id.txtStatus);
    UiHelpers.setStatus(txtStatus, "");
    // see this max value coming back here, we animale towards that value
    animation = ObjectAnimator.ofInt(progressBar, "progress", 0, 500);
    animation.setRepeatMode(ValueAnimator.REVERSE);
    animation.setRepeatCount(100);
    animation.setDuration(1500);
    animation.setInterpolator(new FastOutLinearInInterpolator());
    LoginButtonsActivity activity = this;
    btnTwitterLogin = (TwitterLoginButton) findViewById(R.id.btnTwitterLogin);
    btnTwitterLogin.setCallback(new Callback<TwitterSession>() {

        @Override
        public void success(Result<TwitterSession> result) {
            startProgressBar();
            UiHelpers.setStatus(txtStatus, "Local twitter sign-in successful, signing into server...");
            TwitterSession session = result.data;
            App.get().getServiceClient().postAsync(new dtos.Authenticate().setProvider("twitter").setAccessToken(session.getAuthToken().token).setAccessTokenSecret(session.getAuthToken().secret).setRememberMe(true), r -> {
                UiHelpers.setStatus(txtStatus, "Server twitter sign-in successful, opening chat...");
                App.get().saveTwitterAccessToken(session.getAuthToken());
                Intent intent = new Intent(activity, MainActivity.class);
                stopProgressBar();
                startActivity(intent);
            }, error -> {
                UiHelpers.setStatusError(txtStatus, "Server twitter sign-in failed", error);
                stopProgressBar();
            });
        }

        @Override
        public void failure(TwitterException exception) {
            Log.e(exception);
            stopProgressBar();
        }
    });
    facebookCallback = CallbackManager.Factory.create();
    btnFacebookLogin = (LoginButton) findViewById(R.id.btnFacebookLogin);
    btnFacebookLogin.setReadPermissions("email");
    btnFacebookLogin.registerCallback(facebookCallback, new FacebookCallback<LoginResult>() {

        @Override
        public void onSuccess(LoginResult loginResult) {
            UiHelpers.setStatus(txtStatus, "Local facebook sign-in successful, signing into server...");
            App.get().getServiceClient().postAsync(new dtos.Authenticate().setProvider("facebook").setAccessToken(loginResult.getAccessToken().getToken()).setRememberMe(true), r -> {
                UiHelpers.setStatus(txtStatus, "Server facebook sign-in successful, opening chat...");
                Intent intent = new Intent(activity, MainActivity.class);
                stopProgressBar();
                startActivity(intent);
            }, error -> {
                UiHelpers.setStatusError(txtStatus, "Server facebook sign-in failed", error);
                stopProgressBar();
            });
        }

        @Override
        public void onCancel() {
            stopProgressBar();
        }

        @Override
        public void onError(FacebookException exception) {
            Log.e(exception);
            stopProgressBar();
        }
    });
    Button btnGuestLogin = (Button) findViewById(R.id.btnGuestLogin);
    btnGuestLogin.setOnClickListener(view -> {
        UiHelpers.setStatus(txtStatus, "Opening chat as guest...");
        startGuestChatActivity(App.get().getServiceClient());
    });
    dtos.Authenticate authDto = App.get().getSavedAccessToken();
    if (authDto != null) {
        UiHelpers.setStatus(txtStatus, "Signing in with saved " + authDto.getProvider() + " AccessToken...");
        App.get().getServiceClient().postAsync(authDto, r -> {
            Intent intent = new Intent(activity, MainActivity.class);
            stopProgressBar();
            startActivity(intent);
        }, error -> {
            UiHelpers.setStatusError(txtStatus, "Error logging into " + authDto.getProvider() + " using Saved AccessToken", error);
            stopProgressBar();
        });
    }
}
Also used : Result(com.twitter.sdk.android.core.Result) Bundle(android.os.Bundle) ProgressBar(android.widget.ProgressBar) Intent(android.content.Intent) Twitter(com.twitter.sdk.android.Twitter) TwitterAuthConfig(com.twitter.sdk.android.core.TwitterAuthConfig) TwitterException(com.twitter.sdk.android.core.TwitterException) View(android.view.View) Button(android.widget.Button) LoginButton(com.facebook.login.widget.LoginButton) AccessToken(com.facebook.AccessToken) FacebookException(com.facebook.FacebookException) ObjectAnimator(android.animation.ObjectAnimator) LoginResult(com.facebook.login.LoginResult) AppCompatActivity(android.support.v7.app.AppCompatActivity) FacebookCallback(com.facebook.FacebookCallback) CallbackManager(com.facebook.CallbackManager) TextView(android.widget.TextView) Callback(com.twitter.sdk.android.core.Callback) AndroidServiceClient(net.servicestack.android.AndroidServiceClient) FastOutLinearInInterpolator(android.support.v4.view.animation.FastOutLinearInInterpolator) Toolbar(android.support.v7.widget.Toolbar) TwitterLoginButton(com.twitter.sdk.android.core.identity.TwitterLoginButton) Fabric(io.fabric.sdk.android.Fabric) Log(net.servicestack.client.Log) Activity(android.app.Activity) ValueAnimator(android.animation.ValueAnimator) TwitterSession(com.twitter.sdk.android.core.TwitterSession) TwitterSession(com.twitter.sdk.android.core.TwitterSession) LoginResult(com.facebook.login.LoginResult) FastOutLinearInInterpolator(android.support.v4.view.animation.FastOutLinearInInterpolator) Twitter(com.twitter.sdk.android.Twitter) TwitterAuthConfig(com.twitter.sdk.android.core.TwitterAuthConfig) Intent(android.content.Intent) Button(android.widget.Button) LoginButton(com.facebook.login.widget.LoginButton) TwitterLoginButton(com.twitter.sdk.android.core.identity.TwitterLoginButton) FacebookException(com.facebook.FacebookException) TwitterException(com.twitter.sdk.android.core.TwitterException) Toolbar(android.support.v7.widget.Toolbar)

Example 22 with LoginResult

use of com.facebook.login.LoginResult in project Parse-SDK-Android by ParsePlatform.

the class FacebookControllerTest method testAuthenticateAsyncCancel.

@Test
@SuppressWarnings("unchecked")
public void testAuthenticateAsyncCancel() {
    FacebookController.FacebookSdkDelegate facebookSdk = mock(FacebookController.FacebookSdkDelegate.class);
    LoginManager loginManager = mock(LoginManager.class);
    CallbackManager callbackManager = mock(CallbackManager.class);
    when(facebookSdk.getLoginManager()).thenReturn(loginManager);
    when(facebookSdk.createCallbackManager()).thenReturn(callbackManager);
    FacebookController controller = new FacebookController(facebookSdk);
    Collection<String> permissions = new ArrayList<>();
    Task<Map<String, String>> task = controller.authenticateAsync(mock(Activity.class), null, FacebookController.LoginAuthorizationType.READ, permissions);
    ArgumentCaptor<FacebookCallback> callbackCapture = ArgumentCaptor.forClass(FacebookCallback.class);
    verify(loginManager).registerCallback(eq(callbackManager), (FacebookCallback<LoginResult>) callbackCapture.capture());
    FacebookCallback<LoginResult> callback = callbackCapture.getValue();
    callback.onCancel();
    assertTrue(task.isCancelled());
}
Also used : LoginManager(com.facebook.login.LoginManager) LoginResult(com.facebook.login.LoginResult) ArrayList(java.util.ArrayList) Activity(android.app.Activity) CallbackManager(com.facebook.CallbackManager) FacebookCallback(com.facebook.FacebookCallback) HashMap(java.util.HashMap) Map(java.util.Map) Test(org.junit.Test)

Example 23 with LoginResult

use of com.facebook.login.LoginResult in project facebook-android-sdk by facebook.

the class HelloFacebookSampleActivity method onCreate.

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    callbackManager = CallbackManager.Factory.create();
    LoginManager.getInstance().registerCallback(callbackManager, new FacebookCallback<LoginResult>() {

        @Override
        public void onSuccess(LoginResult loginResult) {
            handlePendingAction();
            updateUI();
        }

        @Override
        public void onCancel() {
            if (pendingAction != PendingAction.NONE) {
                showAlert();
                pendingAction = PendingAction.NONE;
            }
            updateUI();
        }

        @Override
        public void onError(FacebookException exception) {
            if (pendingAction != PendingAction.NONE && exception instanceof FacebookAuthorizationException) {
                showAlert();
                pendingAction = PendingAction.NONE;
            }
            updateUI();
        }

        private void showAlert() {
            new AlertDialog.Builder(HelloFacebookSampleActivity.this).setTitle(R.string.cancelled).setMessage(R.string.permission_not_granted).setPositiveButton(R.string.ok, null).show();
        }
    });
    shareDialog = new ShareDialog(this);
    shareDialog.registerCallback(callbackManager, shareCallback);
    if (savedInstanceState != null) {
        String name = savedInstanceState.getString(PENDING_ACTION_BUNDLE_KEY);
        pendingAction = PendingAction.valueOf(name);
    }
    setContentView(R.layout.main);
    profileTracker = new ProfileTracker() {

        @Override
        protected void onCurrentProfileChanged(Profile oldProfile, Profile currentProfile) {
            updateUI();
            // It's possible that we were waiting for Profile to be populated in order to
            // post a status update.
            handlePendingAction();
        }
    };
    profilePictureView = (ProfilePictureView) findViewById(R.id.profilePicture);
    greeting = (TextView) findViewById(R.id.greeting);
    postStatusUpdateButton = (Button) findViewById(R.id.postStatusUpdateButton);
    postStatusUpdateButton.setOnClickListener(new View.OnClickListener() {

        public void onClick(View view) {
            onClickPostStatusUpdate();
        }
    });
    postPhotoButton = (Button) findViewById(R.id.postPhotoButton);
    postPhotoButton.setOnClickListener(new View.OnClickListener() {

        public void onClick(View view) {
            onClickPostPhoto();
        }
    });
    // Can we present the share dialog for regular links?
    canPresentShareDialog = ShareDialog.canShow(ShareLinkContent.class);
    // Can we present the share dialog for photos?
    canPresentShareDialogWithPhotos = ShareDialog.canShow(SharePhotoContent.class);
}
Also used : AlertDialog(android.app.AlertDialog) ShareLinkContent(com.facebook.share.model.ShareLinkContent) SharePhotoContent(com.facebook.share.model.SharePhotoContent) ShareDialog(com.facebook.share.widget.ShareDialog) LoginResult(com.facebook.login.LoginResult) View(android.view.View) ProfilePictureView(com.facebook.login.widget.ProfilePictureView) TextView(android.widget.TextView) Profile(com.facebook.Profile) FacebookException(com.facebook.FacebookException)

Example 24 with LoginResult

use of com.facebook.login.LoginResult in project facebook-android-sdk by facebook.

the class RpsFragment method onCreate.

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    if (savedInstanceState != null) {
        wins = savedInstanceState.getInt(WIN_KEY);
        losses = savedInstanceState.getInt(LOSS_KEY);
        ties = savedInstanceState.getInt(TIE_KEY);
        computerChoice = savedInstanceState.getInt(COMPUTER_CHOICE_KEY);
        playerChoice = savedInstanceState.getInt(PLAYER_CHOICE_KEY);
        currentState = (RpsState) savedInstanceState.getSerializable(STATE_KEY);
        result = (RpsResult) savedInstanceState.getSerializable(RESULT_KEY);
        pendingPublish = savedInstanceState.getBoolean(PENDING_PUBLISH_KEY);
        shouldImplicitlyPublish = savedInstanceState.getBoolean(IMPLICIT_PUBLISH_KEY);
    }
    callbackManager = CallbackManager.Factory.create();
    LoginManager.getInstance().registerCallback(callbackManager, new FacebookCallback<LoginResult>() {

        @Override
        public void onSuccess(LoginResult loginResult) {
            AccessToken accessToken = AccessToken.getCurrentAccessToken();
            if (accessToken.getPermissions().contains(ADDITIONAL_PERMISSIONS)) {
                publishResult();
            } else {
                handleError();
            }
        }

        @Override
        public void onCancel() {
            handleError();
        }

        @Override
        public void onError(FacebookException exception) {
            handleError();
        }

        private void handleError() {
            // this means the user did not grant us write permissions, so
            // we don't do implicit publishes
            shouldImplicitlyPublish = false;
            pendingPublish = false;
        }
    });
    FacebookCallback<Sharer.Result> callback = new FacebookCallback<Sharer.Result>() {

        @Override
        public void onCancel() {
            Log.d(TAG, "Canceled");
        }

        @Override
        public void onError(FacebookException error) {
            Log.d(TAG, String.format("Error: %s", error.toString()));
        }

        @Override
        public void onSuccess(Sharer.Result result) {
            Log.d(TAG, "Success!");
        }
    };
    shareDialog = new ShareDialog(this);
    shareDialog.registerCallback(callbackManager, callback);
    messageDialog = new MessageDialog(this);
    messageDialog.registerCallback(callbackManager, callback);
    FacebookCallback<AppInviteDialog.Result> appInviteCallback = new FacebookCallback<AppInviteDialog.Result>() {

        @Override
        public void onSuccess(AppInviteDialog.Result result) {
            Log.d(TAG, "Success!");
        }

        @Override
        public void onCancel() {
            Log.d(TAG, "Canceled");
        }

        @Override
        public void onError(FacebookException error) {
            Log.d(TAG, String.format("Error: %s", error.toString()));
        }
    };
    appInviteDialog = new AppInviteDialog(this);
    appInviteDialog.registerCallback(callbackManager, appInviteCallback);
    // Initialize in-app billing service
    serviceConnection = new ServiceConnection() {

        @Override
        public void onServiceDisconnected(ComponentName name) {
            inAppBillingService = null;
            Utility.logd(TAG, "In-app billing service disconnected");
        }

        @Override
        public void onServiceConnected(ComponentName name, IBinder service) {
            inAppBillingService = IInAppBillingService.Stub.asInterface(service);
            Utility.logd(TAG, "In app billing service connected");
            try {
                Bundle ownedItems = inAppBillingService.getPurchases(IN_APP_PURCHASE_VERSION, context.getPackageName(), "inapp", null);
                int response = ownedItems.getInt("RESPONSE_CODE");
                if (response == 0) {
                    ArrayList<String> ownedSkus = ownedItems.getStringArrayList(INAPP_PURCHASE_ITEM_LIST);
                    ArrayList<String> purchaseDataList = ownedItems.getStringArrayList(INAPP_PURCHASE_DATA_LIST);
                    ArrayList<String> signatureList = ownedItems.getStringArrayList(INAPP_DATA_SIGNATURE_LIST);
                    for (int i = 0; i < purchaseDataList.size(); ++i) {
                        String purchaseData = purchaseDataList.get(i);
                        try {
                            JSONObject jo = new JSONObject(purchaseData);
                            String token = jo.getString("purchaseToken");
                            consumePurchase(context.getPackageName(), token);
                        } catch (JSONException e) {
                            Log.e(TAG, "Error parsing purchase data.", e);
                        }
                    }
                }
            } catch (RemoteException e) {
                Log.e(TAG, "Consuming purchase remote exception.", e);
            }
        }
    };
    context = this.getActivity().getApplicationContext();
    Intent serviceIntent = new Intent("com.android.vending.billing.InAppBillingService.BIND");
    serviceIntent.setPackage("com.android.vending");
    context.bindService(serviceIntent, serviceConnection, Context.BIND_AUTO_CREATE);
}
Also used : ServiceConnection(android.content.ServiceConnection) ShareDialog(com.facebook.share.widget.ShareDialog) Bundle(android.os.Bundle) LoginResult(com.facebook.login.LoginResult) ArrayList(java.util.ArrayList) JSONException(org.json.JSONException) PendingIntent(android.app.PendingIntent) Intent(android.content.Intent) LoginResult(com.facebook.login.LoginResult) IBinder(android.os.IBinder) AppInviteDialog(com.facebook.share.widget.AppInviteDialog) JSONObject(org.json.JSONObject) AccessToken(com.facebook.AccessToken) FacebookException(com.facebook.FacebookException) Sharer(com.facebook.share.Sharer) ComponentName(android.content.ComponentName) MessageDialog(com.facebook.share.widget.MessageDialog) RemoteException(android.os.RemoteException)

Example 25 with LoginResult

use of com.facebook.login.LoginResult in project react-native-fbsdk by facebook.

the class RCTLoginButton method init.

public void init() {
    mAccessTokenTracker = new AccessTokenTracker() {

        @Override
        protected void onCurrentAccessTokenChanged(AccessToken oldAccessToken, AccessToken currentAccessToken) {
            if (currentAccessToken == null) {
                WritableMap event = Arguments.createMap();
                event.putString("type", "logoutFinished");
                ReactContext context = (ReactContext) getContext();
                context.getJSModule(RCTEventEmitter.class).receiveEvent(getId(), "topChange", event);
            }
        }
    };
    this.registerCallback(mCallbackManager, new FacebookCallback<LoginResult>() {

        @Override
        public void onSuccess(LoginResult loginResult) {
            WritableMap event = Arguments.createMap();
            event.putString("type", "loginFinished");
            event.putString("error", null);
            WritableMap result = Arguments.createMap();
            result.putBoolean("isCancelled", false);
            result.putArray("grantedPermissions", Arguments.fromJavaArgs(setToStringArray(loginResult.getRecentlyGrantedPermissions())));
            result.putArray("declinedPermissions", Arguments.fromJavaArgs(setToStringArray(loginResult.getRecentlyDeniedPermissions())));
            event.putMap("result", result);
            ReactContext context = (ReactContext) getContext();
            context.getJSModule(RCTEventEmitter.class).receiveEvent(getId(), "topChange", event);
        }

        @Override
        public void onError(FacebookException error) {
            WritableMap event = Arguments.createMap();
            event.putString("type", "loginFinished");
            event.putString("error", error.toString());
            WritableMap result = Arguments.createMap();
            result.putBoolean("isCancelled", false);
            event.putMap("result", result);
            ReactContext context = (ReactContext) getContext();
            context.getJSModule(RCTEventEmitter.class).receiveEvent(getId(), "topChange", event);
        }

        @Override
        public void onCancel() {
            WritableMap event = Arguments.createMap();
            event.putString("type", "loginFinished");
            event.putString("error", null);
            WritableMap result = Arguments.createMap();
            result.putBoolean("isCancelled", true);
            event.putMap("result", result);
            ReactContext context = (ReactContext) getContext();
            context.getJSModule(RCTEventEmitter.class).receiveEvent(getId(), "topChange", event);
        }
    });
}
Also used : AccessTokenTracker(com.facebook.AccessTokenTracker) WritableMap(com.facebook.react.bridge.WritableMap) ThemedReactContext(com.facebook.react.uimanager.ThemedReactContext) ReactContext(com.facebook.react.bridge.ReactContext) AccessToken(com.facebook.AccessToken) FacebookException(com.facebook.FacebookException) LoginResult(com.facebook.login.LoginResult)

Aggregations

LoginResult (com.facebook.login.LoginResult)25 FacebookException (com.facebook.FacebookException)22 View (android.view.View)12 TextView (android.widget.TextView)10 AccessToken (com.facebook.AccessToken)9 Intent (android.content.Intent)7 FacebookCallback (com.facebook.FacebookCallback)7 LoginButton (com.facebook.login.widget.LoginButton)7 CallbackManager (com.facebook.CallbackManager)6 LoginManager (com.facebook.login.LoginManager)6 ArrayList (java.util.ArrayList)6 Profile (com.facebook.Profile)5 Bundle (android.os.Bundle)4 Activity (android.app.Activity)3 Toolbar (android.support.v7.widget.Toolbar)3 ImageView (android.widget.ImageView)3 ProfileTracker (com.facebook.ProfileTracker)3 HashMap (java.util.HashMap)3 Map (java.util.Map)3 ObjectAnimator (android.animation.ObjectAnimator)2