コード例 #1
0
    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));
    }
コード例 #2
0
 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;
 }
コード例 #3
0
    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));
    }
コード例 #4
0
ファイル: MegacoolShare.cs プロジェクト: megacool/unity-demo
    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) {
        }
    }
コード例 #5
0
ファイル: MegacoolShare.cs プロジェクト: megacool/unity-demo
    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 }
        };
    }
コード例 #6
0
ファイル: MegacoolShare.cs プロジェクト: megacool/unity-demo
    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>();
        }
    }
コード例 #7
0
    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));
    }
コード例 #8
0
ファイル: MegacoolShare.cs プロジェクト: megacool/unity-demo
    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>();
        }
    }
コード例 #9
0
    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));
    }
コード例 #10
0
 public MegacoolLinkClickedEvent(Uri url, MegacoolReferralCode referralCode)
 {
     Url          = url;
     ReferralCode = referralCode;
 }