public static MegacoolLinkClickedEvent BuildLinkClickedEvent(ref MCLLinkClickedEvent e) { string url = string.Copy(e.url); Uri uri = new Uri(url, UriKind.Relative); MegacoolReferralCode referralCode = BuildReferralCode(ref e.referral_code); return(new MegacoolLinkClickedEvent(uri, referralCode)); }
public MegacoolShare(MegacoolReferralCode referralCode, ShareState state, DateTime createdAt, DateTime updatedAt, Dictionary <string, object> data, Uri url) { ReferralCode = referralCode; State = state; CreatedAt = createdAt; UpdatedAt = updatedAt; Data = data; Url = url; }
public static MegacoolLinkClickedEvent BuildLinkClickedEvent(AndroidJavaObject jEvent) { AndroidJavaObject jUrl = jEvent.Call <AndroidJavaObject>("getUrl"); Uri uri = new Uri(jUrl.Call <string>("toString"), UriKind.Relative); AndroidJavaObject jReferralCode = null; try { jReferralCode = jEvent.Call <AndroidJavaObject>("getReferralCode"); #pragma warning disable RECS0022 // Methods that return null will throw on older versions of Unity } catch (Exception) { } #pragma warning restore RECS0022 MegacoolReferralCode referralCode = BuildReferralCode(jReferralCode); return(new MegacoolLinkClickedEvent(uri, referralCode)); }
public MegacoolShare(AndroidJavaObject jShare) { try { ReferralCode = new MegacoolReferralCode(jShare.Call <AndroidJavaObject>("getReferralCode")); } catch (Exception) {} string jState = jShare.Call <AndroidJavaObject> ("getState").Call <string> ("toString"); if (jState == "SENT") { State = MegacoolShareState.Sent; } else if (jState == "CLICKED") { State = MegacoolShareState.Clicked; } else if (jState == "OPENED") { State = MegacoolShareState.Opened; } else { State = MegacoolShareState.Installed; } try { long jTime = jShare.Call <AndroidJavaObject>("getCreatedAt").Call <long>("getTime"); CreatedAt = _epoch.AddMilliseconds(jTime).ToLocalTime(); } catch (Exception) { } try { long jTime = jShare.Call <AndroidJavaObject>("getUpdatedAt").Call <long>("getTime"); UpdatedAt = _epoch.AddMilliseconds(jTime).ToLocalTime(); } catch (Exception) { } try { Url = new Uri(jShare.Call <AndroidJavaObject>("getUrl").Call <string>("toString"), UriKind.Relative); } catch (Exception) { } Data = new Dictionary <string, string>(); try { AndroidJavaObject jEntrySet = jShare.Call <AndroidJavaObject>("getData").Call <AndroidJavaObject>("entrySet"); AndroidJavaObject jEntrySetIterator = jEntrySet.Call <AndroidJavaObject>("iterator"); while (jEntrySetIterator.Call <bool>("hasNext")) { AndroidJavaObject jEntry = jEntrySetIterator.Call <AndroidJavaObject>("next"); Data.Add(jEntry.Call <string>("getKey"), jEntry.Call <string>("getValue")); } } catch (Exception) { } }
public MegacoolShare(Megacool.MegacoolSentShareOpenedEvent e) { ReferralCode = new MegacoolReferralCode(e.userId, e.shareId); State = (MegacoolShareState)e.state; CreatedAt = FromUnixTime(e.createdAt).ToLocalTime(); UpdatedAt = FromUnixTime(e.updatedAt).ToLocalTime(); if (e.url != null) { Url = new Uri(e.url, UriKind.Relative); } Data = new Dictionary <string, string>() { { "receiverUserId", e.receiverUserId } }; }
public MegacoolShare(Megacool.MegacoolShareData share) { ReferralCode = new MegacoolReferralCode(share.userId, share.shareId); State = (MegacoolShareState)share.state; CreatedAt = FromUnixTime(share.createdAt).ToLocalTime(); UpdatedAt = FromUnixTime(share.updatedAt).ToLocalTime(); if (share.dataLength > 0) { byte[] bytes = new byte[share.dataLength]; Marshal.Copy(share.dataBytes, bytes, 0, share.dataLength); DeserializeDataObject(bytes); } else { Data = new Dictionary <string, string>(); } }
public static MegacoolShare BuildShare(AndroidJavaObject jShare) { if (jShare == null) { return(null); } AndroidJavaObject jReferralCode = jShare.Call <AndroidJavaObject>("getReferralCode"); MegacoolReferralCode referralCode = BuildReferralCode(jReferralCode); string state = jShare.Call <AndroidJavaObject>("getState").Call <string>("name"); MegacoolShare.ShareState shareState = MegacoolShare.ShareState.SENT; switch (state) { case "OPENED": shareState = MegacoolShare.ShareState.OPENED; break; case "INSTALLED": shareState = MegacoolShare.ShareState.INSTALLED; break; case "CLICKED": shareState = MegacoolShare.ShareState.CLICKED; break; } long createdTime = jShare.Call <AndroidJavaObject>("getCreatedAt").Call <long>("getTime"); DateTime createdAt = _epoch.AddMilliseconds(createdTime).ToLocalTime(); long updatedTime = jShare.Call <AndroidJavaObject>("getUpdatedAt").Call <long>("getTime"); DateTime updatedAt = _epoch.AddMilliseconds(updatedTime).ToLocalTime(); Uri url = new Uri(jShare.Call <AndroidJavaObject>("getUrl").Call <string>("toString"), UriKind.Relative); string dataJsonString = jShare.Call <string>("getDataAsJson"); Dictionary <string, object> data = MegacoolThirdParty_MiniJSON.Json.Deserialize(dataJsonString) as Dictionary <string, object>; return(new MegacoolShare(referralCode, shareState, createdAt, updatedAt, data, url)); }
public MegacoolShare(Megacool.MegacoolReceivedShareOpenedEvent e) { ReferralCode = new MegacoolReferralCode(e.userId, e.shareId); State = (MegacoolShareState)e.state; CreatedAt = FromUnixTime(e.createdAt).ToLocalTime(); UpdatedAt = FromUnixTime(e.updatedAt).ToLocalTime(); if (e.url != null) { Url = new Uri(e.url, UriKind.Relative); } if (e.dataLength > 0) { byte[] bytes = new byte[e.dataLength]; Marshal.Copy(e.dataBytes, bytes, 0, e.dataLength); DeserializeDataObject(bytes); } else { Data = new Dictionary <string, string>(); } }
private static MegacoolShare BuildShare(ref MCLShare share) { if (share.url == null) { return(null); } MegacoolReferralCode referralCode = BuildReferralCode(ref share.referral_code); DateTime createdAt = epoch.AddSeconds(share.created_at).ToLocalTime(); DateTime updatedAt = epoch.AddSeconds(share.updated_at).ToLocalTime(); string url = string.Copy(share.url); Uri uri = new Uri(url, UriKind.Relative); Dictionary <string, object> data; if (share.data_json != null) { data = DeserializeDataObject(share.data_json); } else { data = new Dictionary <string, object>(); } return(new MegacoolShare(referralCode, share.state, createdAt, updatedAt, data, uri)); }
public MegacoolLinkClickedEvent(Uri url, MegacoolReferralCode referralCode) { Url = url; ReferralCode = referralCode; }