private Observable<Bundle> trackPendingDialogCall(FacebookDialog shareDialog) { Log.d("RetroFacebook", "trackPendingDialogCall"); //Subject<Bundle, Bundle> sub = BehaviorSubject.create(); //dialogSubject = BehaviorSubject.create(); PendingCall pendingCall = shareDialog.present(); //dialogSubs.put(pendingCall.getCallId(), sub); uiLifecycleHelper.trackPendingDialogCall(pendingCall); //return sub.asObservable(); return dialogSubject.asObservable().take(1); }
public void onCreate(Bundle paramBundle) { Session localSession1 = Session.getActiveSession(); Session localSession2 = localSession1; if (localSession1 == null) { if (paramBundle != null) localSession2 = Session.restoreSession(this.activity, null, this.callback, paramBundle); if (localSession2 == null) localSession2 = new Session(this.activity); Session.setActiveSession(localSession2); } if (paramBundle != null) this.pendingFacebookDialogCall = ((FacebookDialog.PendingCall)paramBundle.getParcelable("com.facebook.UiLifecycleHelper.pendingFacebookDialogCallKey")); }
public Facebook initialize(Activity activity) { this.activity = activity; sessionSubject = PublishSubject.create(); sessionStatusCallback = new Session.StatusCallback() { @Override public void call(Session session, SessionState state, Exception exception) { if (exception != null) { sessionSubject.onError(exception); } else { sessionSubject.onNext(session); } } }; dialogSubject = PublishSubject.create(); dialogCallback = new FacebookDialog.Callback() { @Override public void onError(PendingCall pendingCall, Exception error, Bundle data) { Log.d("RetroFacebook", "dialogCallback.onError: " + pendingCall); Log.d("RetroFacebook", "dialogCallback.onError: " + error); error.printStackTrace(); //Subject<Bundle, Bundle> sub = dialogSubs.get(pendingCall.getCallId()); Subject<Bundle, Bundle> sub = dialogSubject; if (sub != null) { sub.onError(error); dialogSubs.remove(pendingCall.getCallId()); } } @Override public void onComplete(PendingCall pendingCall, Bundle data) { Log.d("RetroFacebook", "dialogCallback.onComplete: " + pendingCall); //Subject<Bundle, Bundle> sub = dialogSubs.get(pendingCall.getCallId()); Subject<Bundle, Bundle> sub = dialogSubject; if (sub != null) { sub.onNext(data); //sub.onCompleted(); dialogSubs.remove(pendingCall.getCallId()); } /* boolean didComplete = FacebookDialog.getNativeDialogDidComplete(data); String postId = FacebookDialog.getNativeDialogPostId(data); String completeGesture = FacebookDialog.getNativeDialogCompletionGesture(data); if (completeGesture != null) { if (completeGesture.equals("post")) { mOnPublishListener.onComplete(postId != null ? postId : "no postId return"); } else { mOnPublishListener.onFail("Canceled by user"); } } else if (didComplete) { mOnPublishListener.onComplete(postId != null ? postId : "published successfully. (post id is not availaible if you are not logged in)"); } else { mOnPublishListener.onFail("Canceled by user"); } */ } }; uiLifecycleHelper = new UiLifecycleHelper(activity, sessionStatusCallback); return this; }
public void trackPendingDialogCall(FacebookDialog.PendingCall paramPendingCall) { if (this.pendingFacebookDialogCall != null) cancelPendingAppCall(null); this.pendingFacebookDialogCall = paramPendingCall; }