-
Notifications
You must be signed in to change notification settings - Fork 18
/
InAppMessageButton.cs
58 lines (51 loc) · 2.16 KB
/
InAppMessageButton.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
using System;
using Appboy.Models;
using UnityEngine;
using Appboy.Utilities;
namespace Appboy.Models.InAppMessage {
public class InAppMessageButton {
public int ButtonID { get; private set;}
public string Text { get; set; }
public string URI { get; private set; }
public ClickAction ButtonClickAction { get; private set; }
public Color? TextColor { get; set; }
public Color? BackgroundColor { get; set; }
public override string ToString() {
return String.Format("In-App Message Button: ButtonID={0}, Text={1}, URI={2}, ButtonClickAction={3}, TextColor={4}, BackgroundColor={5}",
ButtonID, Text, URI, ButtonClickAction, TextColor, BackgroundColor);
}
public InAppMessageButton() {
}
public InAppMessageButton(JSONObject json) {
ButtonID = json[InAppMessageConstants.ButtonIDKey].AsInt;
Text = json[InAppMessageConstants.ButtonTextKey];
TextColor = ColorUtils.HexToColor((int)json[InAppMessageConstants.ButtonTextColorKey]);
BackgroundColor = ColorUtils.HexToColor((int)json[InAppMessageConstants.ButtonBackgroundColorKey]);
URI = json[InAppMessageConstants.ButtonURIKey];
ButtonClickAction = (ClickAction)EnumUtils.TryParse(typeof(ClickAction), json[InAppMessageConstants.ButtonClickActionKey], true, ClickAction.NEWS_FEED);
if (ButtonClickAction == ClickAction.URI && URI == null) {
Debug.Log("Required URI not present for URI click action type. Setting click action to NONE.");
ButtonClickAction = ClickAction.NONE;
}
}
public bool SetButtonClickAction(ClickAction clickAction) {
if (clickAction != ClickAction.URI) {
ButtonClickAction = clickAction;
URI = null;
return true;
} else {
Debug.Log("A non-null URI is required for ClickAction.URI.");
return false;
}
}
public bool SetButtonClickAction(ClickAction clickAction, string uri) {
if (uri != null && clickAction == ClickAction.URI) {
ButtonClickAction = clickAction;
URI = uri;
return true;
} else {
return SetButtonClickAction(clickAction);
}
}
}
}