public static void PresentChannelInterface(IntPtr instancePtr, string inviteChannelJson, string invitePackageJson, IntPtr onCompletePtr, IntPtr onCancelPtr, IntPtr onFailurePtr) { var channel = new InviteChannel().ParseFromJson(inviteChannelJson.ToDict()); var package = new InvitePackage().ParseFromJson(invitePackageJson.ToDict()); var onFailure = new Action <GetSocialError>(exception => { GetSocialNativeBridgeIOS._gs_executeInviteFailedCallback(onFailurePtr, exception.ErrorCode, exception.Message); }); var plugin = instancePtr.Cast <InviteChannelPlugin>(); try { plugin.PresentChannelInterface(channel, package, () => { GetSocialNativeBridgeIOS._gs_executeInviteSuccessCallback(onCompletePtr); }, () => { GetSocialNativeBridgeIOS._gs_executeInviteCancelledCallback(onCancelPtr); }, onFailure); } catch (Exception e) { onFailure(new GetSocialError(e.Message)); } }
public static void OnUserActionPerformedCallback(IntPtr actionPtr, int userPerformedAction, IntPtr finalizeActionPtr) { if (actionPtr != IntPtr.Zero) { var action = actionPtr.Cast <OnUserActionPerformed>(); action((GetSocial.UserPerformedAction)userPerformedAction, shouldPerformAction => GetSocialNativeBridgeIOS._executeOnUserPerformedActionFinalize(finalizeActionPtr, shouldPerformAction)); } }
public static void OnUserIdentityConflict(IntPtr actionPointer, string currentUserSerialized, string remoteUserSerialized, IntPtr resolveConflictCallbackPtr) { var currentUser = new User(new JSONObject(currentUserSerialized)); var remoteUser = new User(new JSONObject(remoteUserSerialized)); var action = actionPointer.Cast <CurrentUser.OnAddIdentityConflictDelegate>(); action(currentUser, remoteUser, resolutionStrategy => GetSocialNativeBridgeIOS._executeAddUserIndentityConflictResolver(resolveConflictCallbackPtr, (int)resolutionStrategy)); }
public static void InviteFriends(IntPtr instancePtr, string subject, string text, string referralDataUrl, string base64image, IntPtr onSuccessPtr, IntPtr onCancelPtr, IntPtr onFailurePtr) { var instance = instancePtr.Cast <IInvitePlugin>(); var image = base64image != null?Convert.FromBase64String(base64image) : null; instance.InviteFriends( subject: subject, text: text, referralDataUrl: referralDataUrl, image: image, onSuccess: (requestId, invitedFriends) => { int invitedFriendsCount = invitedFriends != null ? invitedFriends.Count : 0; string[] invitedFriendsArray = invitedFriends != null ? invitedFriends.ToArray() : null; GetSocialNativeBridgeIOS._executeInvitedFriendsCallback(onSuccessPtr, requestId, invitedFriendsCount, invitedFriendsArray); }, onCancel: () => GetSocialNativeBridgeIOS._executeCompleteCallback(onCancelPtr), onFailure: (exception) => GetSocialNativeBridgeIOS._executeErrorCallback(onFailurePtr, exception.Message) ); }