public MegacoolReceivedShareOpenedEvent(bool isFirstSession, string senderUserId, MegacoolShare share, DateTime createdAt) { IsFirstSession = isFirstSession; SenderUserId = senderUserId; Share = share; CreatedAt = createdAt; }
public static MegacoolSentShareOpenedEvent BuildSentShareOpenedEvent(ref MCLSentShareOpenedEvent e) { string receiverUserId = string.Copy(e.receiver_user_id); MegacoolShare share = BuildShare(ref e.share); DateTime createdAt = epoch.AddSeconds(e.created_at).ToLocalTime(); return(new MegacoolSentShareOpenedEvent(e.is_first_session, receiverUserId, share, createdAt)); }
// Creates and sends a referral link to a friend void ReferAFriend() { Dictionary <string, string> data = new Dictionary <string, string>(); data.Add("welcomeText", "Nick has invited you!"); MegacoolShare share = new MegacoolShare("referral", data); Megacool.Instance.Share(new MegacoolShareConfig { Share = share, RecordingId = "_guaranteedToBeUniqueRecordingId", }); }
void shares(AndroidJavaObject jShares) { int size = jShares.Call <int>("size"); List <MegacoolShare> result = new List <MegacoolShare>(size); for (int i = 0; i < size; i++) { AndroidJavaObject jShare = jShares.Call <AndroidJavaObject>("get", i); MegacoolShare share = MegacoolAndroidAgent.BuildShare(jShare); result.Add(share); } shareHandler(result); }
public static MegacoolSentShareOpenedEvent BuildSentShareOpenedEvent(AndroidJavaObject jEvent) { bool isFirstSession = jEvent.Call <bool>("isFirstSession"); string receiverUserId = jEvent.Call <string>("getReceiverUserId"); long createdTime = jEvent.Call <AndroidJavaObject>("getCreatedAt").Call <long>("getTime"); DateTime createdAt = _epoch.AddMilliseconds(createdTime).ToLocalTime(); AndroidJavaObject jShare = null; try { jShare = jEvent.Call <AndroidJavaObject>("getShare"); #pragma warning disable RECS0022 // Methods that return null will throw on older versions of Unity } catch (Exception) { } #pragma warning restore RECS0022 MegacoolShare share = BuildShare(jShare); return(new MegacoolSentShareOpenedEvent(isFirstSession, receiverUserId, share, createdAt)); }
public MegacoolEvent(Megacool.MegacoolSentShareOpenedEvent e) { Share = new MegacoolShare(e); Type = MegacoolEventType.SentShareOpened; FirstSession = e.isFirstSession != 0; if (e.eventDataLength > 0) { byte[] bytes = new byte[e.eventDataLength]; Marshal.Copy(e.eventDataBytes, bytes, 0, e.eventDataLength); Data = MegacoolThirdParty_MiniJSON.Json.Deserialize(System.Text.Encoding.UTF8.GetString(bytes)) as Dictionary <string, object>; } else { Data = new Dictionary <string, object>(); } }
public MegacoolEvent(AndroidJavaObject jEvent) { try { Share = new MegacoolShare(jEvent.Call <AndroidJavaObject>("getShare")); } catch (Exception) {} string jType = jEvent.Get <AndroidJavaObject>("type").Call <string>("toString"); if (jType == "LINK_CLICKED") { Type = MegacoolEventType.LinkClicked; } else if (jType == "SENT_SHARE_OPENED") { Type = MegacoolEventType.SentShareOpened; } else { Type = MegacoolEventType.ReceivedShareOpened; } FirstSession = jEvent.Call <bool>("isFirstSession"); Data = new Dictionary <string, object>(); try { AndroidJavaObject jData = jEvent.Call <AndroidJavaObject>("getData"); try { AndroidJavaObject jUrl = jData.Call <AndroidJavaObject>("get", "url"); Data.Add("url", jUrl.Call <string>("toString")); } catch (Exception) {} try { AndroidJavaObject jReferralCode = jData.Call <AndroidJavaObject>("get", "referralCode"); Data.Add("referralCode", new MegacoolReferralCode(jReferralCode)); } catch (Exception) {} try { AndroidJavaObject jReceiverUserId = jData.Call <AndroidJavaObject>("get", "receiverUserId"); Data.Add("receiverUserId", jReceiverUserId.Call <string>("toString")); } catch (Exception) {} try { AndroidJavaObject jSenderUserId = jData.Call <AndroidJavaObject>("get", "senderUserId"); Data.Add("senderUserId", jSenderUserId.Call <string>("toString")); } catch (Exception) {} } catch (Exception) {} }
private void OnRetrievedShare(IntPtr shares, int size) { long longPtr = shares.ToInt64(); var shs = new List <MegacoolShare>(size); for (int i = 0; i < size; i++) { IntPtr structPtr = new IntPtr(longPtr); MCLShare shareData = (MCLShare)Marshal.PtrToStructure(structPtr, typeof(MCLShare)); longPtr += Marshal.SizeOf(typeof(MCLShare)); MegacoolShare share = BuildShare(ref shareData); shs.Add(share); } Action <List <MegacoolShare> > handler = OnSharesRetrieved; if (handler != null) { handler(shs); } }
bool accept(AndroidJavaObject jShare) { MegacoolShare share = MegacoolAndroidAgent.BuildShare(jShare); return(filter(share)); }
private static bool DeleteSharesFilter(MCLShare shareData) { MegacoolShare share = BuildShare(ref shareData); return(deleteSharesFilter(share)); }
public MegacoolEvent(Megacool.MegacoolReceivedShareOpenedEvent e) { Share = new MegacoolShare(e); Type = MegacoolEventType.ReceivedShareOpened; FirstSession = e.isFirstSession != 0; }