public bool LoadConfiguration(string filePath)
        {
            var fullPath = Path.Combine(Application.streamingAssetsPath, filePath);

            GetSocialDebugLogger.D("Loading configuration at path: " + fullPath);
            return(_gs_loadConfiguration(fullPath));
        }
    static void SendInvite(string referralDataUrl,
                           Uri imageUrl,
                           Action completeCallback,
                           Action cancelCallback,
                           Action <GetSocialError> errorCallback)
    {
        GetSocialDebugLogger.D("Sending Facebook invite with URL: " + referralDataUrl);
        FB.Mobile.AppInvite(new Uri(referralDataUrl), imageUrl,
                            result =>
        {
#if UNITY_ANDROID && USE_GETSOCIAL_UI
            // Restore the hidden view after we have received the result
            GetSocialUi.RestoreView();
#endif

            GetSocialDebugLogger.D("Sending invite finished: " + result);
            if (result.Cancelled)
            {
                cancelCallback();
                return;
            }
            if (!string.IsNullOrEmpty(result.Error))
            {
                var errorMsg = "Failed sending app invite: " + result.Error;
                Debug.LogError(errorMsg);
                errorCallback(new GetSocialError(errorMsg));
                return;
            }

            completeCallback();
        });
    }
    static void SendInvite(string referralDataUrl,
                           Action completeCallback,
                           Action cancelCallback,
                           Action <GetSocialError> errorCallback)
    {
        GetSocialDebugLogger.D("Sharing link on Facebook : " + referralDataUrl);
        FB.Mobile.ShareDialogMode = ShareDialogMode.WEB;
        FB.ShareLink(new Uri(referralDataUrl), callback: result =>
        {
            // reopen GetSocialUi
            // because othewise it cannot deliever the result back to the app
            GetSocialUi.RestoreView();
            GetSocialDebugLogger.D("Sharing link finished: " + result);
            if (result.Cancelled)
            {
                cancelCallback();
                return;
            }
            if (!string.IsNullOrEmpty(result.Error))
            {
                var errorMsg = "Failed to share link: " + result.Error;
                Debug.LogError(errorMsg);
                errorCallback(new GetSocialError(errorMsg));
                return;
            }

            completeCallback();
        });
    }
        public static void OnTagClicked(IntPtr tagClickListenerPtr, string tag)
        {
            GetSocialDebugLogger.D(string.Format("OnTagClicked for tag {0}", tag));

            if (tagClickListenerPtr != IntPtr.Zero)
            {
                tagClickListenerPtr.Cast <Action <string> >().Invoke(tag);
            }
        }
        public static void OnMentionClicled(IntPtr mentionClickListenerPtr, string mention)
        {
            GetSocialDebugLogger.D(string.Format("OnMentionClicled for user {0}", mention));

            if (mentionClickListenerPtr != IntPtr.Zero)
            {
                mentionClickListenerPtr.Cast <Action <string> >().Invoke(mention);
            }
        }
        public static void OnAvatarClicked(IntPtr onAvatarClickedPtr, string serializedUser)
        {
            GetSocialDebugLogger.D(string.Format("OnAvatarClicked for user {0}", serializedUser));

            if (onAvatarClickedPtr != IntPtr.Zero)
            {
                var user = GetSocialJsonBridge.FromJson <User>(serializedUser);
                onAvatarClickedPtr.Cast <Action <User> >().Invoke(user);
            }
        }
Beispiel #7
0
        public static void OnActionButtonClick(IntPtr onButtonClickedPtr, string actionId, string serializedActivityPost)
        {
            GetSocialDebugLogger.D(string.Format("OnActionButtonClick for action [{0}], post: {1}", actionId, serializedActivityPost));

            if (onButtonClickedPtr != IntPtr.Zero)
            {
                var post = new ActivityPost().ParseFromJson(serializedActivityPost.ToDict());
                onButtonClickedPtr.Cast <Action <string, ActivityPost> >().Invoke(actionId, post);
            }
        }
        public static void OnAction(IntPtr actionListenerPtr, string serializedAction)
        {
            GetSocialDebugLogger.D(string.Format("OnActionReceived: {0}", serializedAction));

            if (actionListenerPtr != IntPtr.Zero)
            {
                var action = GetSocialJsonBridge.FromJson <GetSocialAction>(serializedAction);
                actionListenerPtr.Cast <ActionListener>().Invoke(action);
            }
        }
        public static void OnAvatarClicked(IntPtr onAvatarClickedPtr, string serializedPublicUser)
        {
            GetSocialDebugLogger.D(string.Format("OnAvatarClicked for user {0}", serializedPublicUser));

            if (onAvatarClickedPtr != IntPtr.Zero)
            {
                var publicUser = new PublicUser().ParseFromJson(serializedPublicUser.ToDict());
                onAvatarClickedPtr.Cast <Action <PublicUser> >().Invoke(publicUser);
            }
        }
Beispiel #10
0
        public static void OnActionButtonClick(IntPtr onActionPtr, string serializedAction)
        {
            GetSocialDebugLogger.D(string.Format("OnActionClick: [{0}]", serializedAction));

            if (onActionPtr != IntPtr.Zero)
            {
                var action = GetSocialJsonBridge.FromJson <Action>(serializedAction);
                onActionPtr.Cast <Action <Action> >().Invoke(action);
            }
        }
    public void PresentChannelInterface(InviteChannel inviteChannel, InvitePackage invitePackage,
                                        Action onComplete, Action onCancel, Action <GetSocialError> onFailure)
    {
        GetSocialDebugLogger.D(string.Format("FacebookSharePlugin.PresentChannelInterface(), inviteChannel: {0}, invite package: {1}",
                                             inviteChannel, invitePackage));

        // GetSocialUi needs to be closed while Facebook activity is opened
        // because othewise it cannot deliever the result back to the app
        GetSocialUi.CloseView(true);
        SendInvite(invitePackage.ReferralDataUrl, onComplete, onCancel, onFailure);
    }
Beispiel #12
0
        public static bool OnNotificationClick(IntPtr onNotificationClickedPtr, string serializedNotification)
        {
            GetSocialDebugLogger.D(string.Format("OnNotificationClick for notification: {0}", serializedNotification));

            if (onNotificationClickedPtr != IntPtr.Zero)
            {
                var notification = new Notification().ParseFromJson(serializedNotification.ToDict());
                return(onNotificationClickedPtr.Cast <NotificationCenterViewBuilder.NotificationClickListener>().Invoke(notification));
            }

            return(false);
        }
Beispiel #13
0
        public static bool OnAction(IntPtr actionListenerPtr, string action)
        {
            GetSocialDebugLogger.D(string.Format("OnActionReceived: {0}", action));

            if (actionListenerPtr != IntPtr.Zero)
            {
                return(actionListenerPtr.Cast <ActionListener>()
                       .Invoke(new GetSocialAction().ParseFromJson(action.ToDict())));
            }

            return(false);
        }
Beispiel #14
0
        public static void OnNotificationClick(IntPtr onNotificationClickedPtr, string serializedNotification, string serializedNotificationContext)
        {
            GetSocialDebugLogger.D(string.Format("OnNotificationClick for notification: {0}, context: {1}", serializedNotification, serializedNotificationContext));

            if (onNotificationClickedPtr != IntPtr.Zero)
            {
                var notification = GetSocialJsonBridge.FromJson <Notification>(serializedNotification);
                GetSocialDebugLogger.D("Notification: " + notification);
                NotificationContext context = null;
                if (serializedNotification != null)
                {
                    context = GetSocialJsonBridge.FromJson <NotificationContext>(serializedNotificationContext);
                }
                GetSocialDebugLogger.D("Context: " + context);
                onNotificationClickedPtr.Cast <NotificationCenterViewBuilder.NotificationClickListener>().Invoke(notification, context);
            }
        }
    public void PresentChannelInterface(InviteChannel inviteChannel, InvitePackage invitePackage,
                                        Action onComplete, Action onCancel, Action <GetSocialError> onFailure)
    {
        GetSocialDebugLogger.D(string.Format("FacebookInvitePlugin.PresentChannelInterface(), inviteChannel: {0}, invite package: {1}",
                                             inviteChannel, invitePackage));

#if UNITY_ANDROID && USE_GETSOCIAL_UI
        // Get Social UI needs to be closed while Facebook activity is opened
        // because othewise it cannot deliever the result back to the app
        GetSocialUi.CloseView(true);
#endif
        Uri imageUri = null;
        if (invitePackage.ImageUrl != null)
        {
            imageUri = new Uri(invitePackage.ImageUrl);
        }
        SendInvite(invitePackage.ReferralDataUrl, imageUri, onComplete, onCancel, onFailure);
    }
    private static bool IsFBAppInstalled()
    {
#if UNITY_ANDROID
        var unityPlayer     = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
        var currentActivity = unityPlayer.GetStatic <AndroidJavaObject>("currentActivity");
        var packageManager  = currentActivity.Call <AndroidJavaObject>("getPackageManager");
        try
        {
            var arguments = new object[] { "com.facebook.katana", 1 };
            packageManager.Call <AndroidJavaObject>("getPackageInfo", arguments);
            return(true);
        }
        catch (Exception exception)
        {
            GetSocialDebugLogger.D("Facebook app is not installed, open web view, exception: " + exception.Message);
            return(false);
        }
#elif UNITY_IOS
        return(_gs_checkIfFBAppInstalled());
#else
        return(false);
#endif
    }