in facebook-gamingservices/src/main/java/com/facebook/gamingservices/ContextSwitchDialog.java [161:205]
protected void registerCallbackImpl(
final CallbackManagerImpl callbackManager, final FacebookCallback callback) {
mCallback = callback;
final ResultProcessor resultProcessor =
(callback == null)
? null
: new ResultProcessor(callback) {
@Override
public void onSuccess(AppCall appCall, Bundle results) {
if (results != null) {
if (results.getString("error_message") != null) {
callback.onError(new FacebookException(results.getString("error_message")));
return;
}
if (results.getString(SDKConstants.PARAM_CONTEXT_ID) != null) {
GamingContext.setCurrentGamingContext(
new GamingContext(results.getString(SDKConstants.PARAM_CONTEXT_ID)));
callback.onSuccess(
new Result(results.getString(SDKConstants.PARAM_CONTEXT_ID)));
} else if (results.getString(SDKConstants.PARAM_CONTEXT_CONTEXT_ID) != null) {
GamingContext.setCurrentGamingContext(
new GamingContext(
results.getString(SDKConstants.PARAM_CONTEXT_CONTEXT_ID)));
callback.onSuccess(
new Result(results.getString(SDKConstants.PARAM_CONTEXT_CONTEXT_ID)));
}
callback.onError(
new FacebookException(
results.getString("Invalid response received from server.")));
} else {
onCancel(appCall);
}
}
};
callbackManager.registerCallback(
getRequestCode(),
new CallbackManagerImpl.Callback() {
@Override
public boolean onActivityResult(int resultCode, Intent data) {
return ShareInternalUtility.handleActivityResult(
getRequestCode(), resultCode, data, resultProcessor);
}
});
}