public void InitMessage(SwrveMessageFormat format, SwrveInAppMessageConfig inAppConfig, SwrveOrientation deviceOrientation, bool afterRotation = false)
        {
            this.format = format;
            format.Init(deviceOrientation);
            renderBackgroundColor = format.BackgroundColor.HasValue;

            if (!afterRotation)
            {
                if (animator != null)
                {
                    animator.InitMessage(format);
                }
                else
                {
                    format.InitAnimation(new Point(0, 0), new Point(0, 0));
                }
            }

            // Create widgets to render and use the cached personalization values
            widgetViews = new SwrveWidgetView[format.Images.Count + format.Buttons.Count];
            int eindex = 0;

            for (int ii = 0; ii < format.Images.Count; ii++)
            {
                SwrveImage      image = format.Images[ii];
                SwrveWidgetView renderer;
                if (image.Text != null)
                {
                    // Get cached resolved template
                    string resolvedTextTemplate = templatingResolver.TextResolution[image];
                    renderer = new SwrveMessagePersonalizedWidgetView(image, resolvedTextTemplate, inAppConfig);
                }
                else
                {
                    renderer = new SwrveImageView(image);
                }
                widgetViews[eindex++] = renderer;
            }
            for (int bi = 0; bi < format.Buttons.Count; bi++)
            {
                SwrveButton     button = format.Buttons[bi];
                SwrveWidgetView renderer;
                if (button.Text != null)
                {
                    string resolvedTextTemplate = templatingResolver.TextResolution[button];
                    renderer = new SwrveMessagePersonalizedWidgetView(button, resolvedTextTemplate, inAppConfig);
                }
                else
                {
                    renderer = new SwrveButtonView(button, inAppConfig.ButtonClickTintColor);
                }
                widgetViews[eindex++] = renderer;
            }
        }
Exemple #2
0
        public SwrveMessagePersonalizedWidgetView(SwrveWidget widget, string resolvedText, SwrveInAppMessageConfig inAppConfig)
        {
            this.widget            = widget;
            content                = new GUIContent(resolvedText);
            style                  = new GUIStyle();
            style.alignment        = TextAnchor.MiddleCenter;
            style.normal.textColor = inAppConfig.PersonalizedTextForegroundColor;
            style.font             = inAppConfig.PersonalizedTextFont;
            backgroundColor        = inAppConfig.PersonalizedTextBackgroundColor;
            clickTintColor         = inAppConfig.ButtonClickTintColor;

            if (widget.Texture != null)
            {
                FitTextSizeToImage(widget.Texture.width, widget.Texture.height);
            }

            isButton = (widget is SwrveButton);
            if (isButton)
            {
                button = (SwrveButton)widget;
            }
        }