コード例 #1
0
    protected override void DrawSectionBody()
    {
        DemoGuiUtils.DrawRow(() =>
        {
            GUILayout.Label("Text: ", GSStyles.NormalLabelText);
            _text = GUILayout.TextField(_text, GSStyles.TextField);
        });

        DemoGuiUtils.DrawRow(() =>
        {
            GUILayout.Label("Image url: ", GSStyles.NormalLabelText);
        });
        DemoGuiUtils.DrawRow(() =>
        {
            _imageUrl = GUILayout.TextField(_imageUrl, GSStyles.TextField);
        });

        DemoGuiUtils.DrawRow(() =>
        {
            GUILayout.Label("Video url: ", GSStyles.NormalLabelText);
        });
        DemoGuiUtils.DrawRow(() =>
        {
            _videoUrl = GUILayout.TextField(_videoUrl, GSStyles.TextField);
        });

        DemoGuiUtils.DrawRow(() =>
        {
            _useCustomImage = GUILayout.Toggle(_useCustomImage, "", GSStyles.Toggle);
            GUILayout.Label("Send Custom Image", GSStyles.NormalLabelText, GUILayout.Width(Screen.width * 0.25f));
        });

        DemoGuiUtils.DrawRow(() =>
        {
            _useCustomVideo = GUILayout.Toggle(_useCustomVideo, "", GSStyles.Toggle);
            GUILayout.Label("Send Custom Video", GSStyles.NormalLabelText, GUILayout.Width(Screen.width * 0.25f));
        });


        DemoGuiUtils.DrawRow(() => GUILayout.Label("Button", GSStyles.NormalLabelText));
        DemoGuiUtils.DrawRow(() =>
        {
            GUILayout.Label("Title: ", GSStyles.NormalLabelText);
            _title = GUILayout.TextField(_title, GSStyles.TextField);
        });
        GUILayout.Label("Action: " + (_action ?? "Default"), GSStyles.NormalLabelText);
        DemoGuiUtils.DrawRow(() =>
        {
            if (GUILayout.Button("Default", GSStyles.ShortButton))
            {
                _action = null;
            }

            var actions = new[] { GetSocialActionType.Custom, GetSocialActionType.OpenProfile, GetSocialActionType.OpenActivity, GetSocialActionType.OpenInvites, GetSocialActionType.OpenUrl, GetSocialActionType.AddFriend };
            actions.ToList().ForEach(action =>
            {
                if (GUILayout.Button(action, GSStyles.ShortButton))
                {
                    _action = action;
                }
            });
        });

        DemoGuiUtils.DynamicRowFor(_actionData, "Action Data");
        DemoGuiUtils.DynamicRowFor(_properties, "Properties");

        if (GUILayout.Button("Post", GSStyles.Button))
        {
            var content = new ActivityContent();
            content.Text = _text;

            if (_action != null && _title != null && _title.Length != 0)
            {
                var action = GetSocialAction.Create(_action, _actionData.ToDictionary(data => data.Key, data => data.Val));
                content.Button = ActivityButton.Create(_title, action);
            }
            if (_imageUrl.Length > 0)
            {
                content.AddMediaAttachment(MediaAttachment.WithImageUrl(_imageUrl));
            }
            if (_videoUrl.Length > 0)
            {
                content.AddMediaAttachment(MediaAttachment.WithVideoUrl(_videoUrl));
            }
            if (_useCustomImage)
            {
                content.AddMediaAttachment(MediaAttachment.WithImage(Resources.Load <Texture2D>("activityImage")));
            }
            if (_useCustomVideo)
            {
                content.AddMediaAttachment(MediaAttachment.WithVideo(DemoUtils.LoadSampleVideoBytes()));
            }
            content.AddProperties(_properties.ToDictionary(data => data.Key, data => data.Val));

            if (Activity == null)
            {
                Communities.PostActivity(content, Target, posted =>
                {
                    _console.LogD("Posted: " + posted);
                }, error =>
                {
                    _console.LogE("Failed to post: " + error);
                });
            }
            else
            {
                Communities.UpdateActivity(Activity, content, posted =>
                {
                    _console.LogD("Updated: " + posted);
                }, error =>
                {
                    _console.LogE("Failed to update: " + error);
                });
            }
        }
    }