示例#1
0
    /// <summary>
    /// Called from singletong Awake() - Load saved prize times, or setup new if first run or not saving across restarts
    /// </summary>
    protected override void GameSetup()
    {
        base.GameSetup();

        if (SaveAcrossRestarts && PreferencesFactory.HasKey("FreePrize.NextCountdownStart"))
        {
            NextCountdownStart     = DateTime.Parse(PreferencesFactory.GetString("FreePrize.NextCountdownStart", UnbiasedTime.Instance.Now().ToString(CultureInfo.InvariantCulture))); // start countdown immediately if new game
            NextFreePrizeAvailable = DateTime.Parse(PreferencesFactory.GetString("FreePrize.NextPrize", NextFreePrizeAvailable.ToString(CultureInfo.InvariantCulture)));
            SetCurrentPrizeAmount();
        }
        else
        {
            StartNewCountdown();
            SetCurrentPrizeAmount();
        }

        GameManager.SafeAddListener <UserNotificationsChangedMessage>(UserNotificationsChangedHandler);
        GameManager.SafeAddListener <LocalisationChangedMessage>(LocalisationHandler);

        //

#if !UNITY_EDITOR
        CancelLocalNotifications();
        RegisterLocalNotifications();
#endif
    }
    void CheckNotificationsPermission()
    {
        int      CountMainMenuColdStart = PreferencesFactory.GetInt(Constants.KeyCountMainMenuColdStart);
        DateTime now = UnbiasedTime.Instance.Now();

        // not in first launch
        if (CountMainMenuColdStart > 0 && !Allowed())
        {
            // the date when we detected that notifications are denied
            if (!PreferencesFactory.HasKey(Constants.KeyNoNotificationPermissionDeniedDate))
            {
                PreferencesFactory.SetString(Constants.KeyNoNotificationPermissionDeniedDate, now.ToString(CultureInfo.InvariantCulture));

                return;
            }

            DateTime dateOfDenying = DateTime.Parse(PreferencesFactory.GetString(Constants.KeyNoNotificationPermissionDeniedDate, now.ToString(CultureInfo.InvariantCulture)));
            float    minutes3days  = 3 * 24 * 60;
            float    minutes10days = 10 * 24 * 60;

            if (Debug.isDebugBuild)
            {
                minutes3days  = 1f;                // 30 sec
                minutes10days = 2f;                // 1 min
            }

            // 3 days before show alert for first time
            if (now.Date < dateOfDenying.AddMinutes(minutes3days).Date)
            {
                return;
            }

            DateTime postponeDate = DateTime.Parse(PreferencesFactory.GetString(Constants.KeyNoNotificationPermissionDate, now.ToString(CultureInfo.InvariantCulture)));

            // 10 days to show alert again if user postpone it
            if (PreferencesFactory.HasKey(Constants.KeyNoNotificationPermissionDate) &&
                now.Date < postponeDate.AddMinutes(minutes10days).Date)
            {
                return;
            }

            PreferencesFactory.DeleteKey(Constants.KeyNoNotificationPermissionDate);

            string text = LocaliseText.Get("Notifications.DeniedText");

            Alert alert = new Alert("", text)
                          .SetPositiveButton(LocaliseText.Get("Notifications.AllowText"), () => {
                iSDK.Utils.OpenSettings();
            })
                          .SetNeutralButton(LocaliseText.Get("Notifications.IgnoreText"), () => {
                PreferencesFactory.SetString(Constants.KeyNoNotificationPermissionDate, now.ToString(CultureInfo.InvariantCulture));
            })
                          .AddOptions(new AlertIOSOptions()
            {
                PreferableButton = Alert.ButtonType.Positive
            });

            alert.Show();
        }
    }
    public static string UserID()
    {
        if (PreferencesFactory.HasKey(Constants.ProfileAnonymousUserId))
        {
            return(PreferencesFactory.GetString(Constants.ProfileAnonymousUserId, ""));
        }

        return(PreferencesFactory.GetString(Constants.ProfileUserId, ""));
    }
        /// <summary>
        /// Called from singletong Awake() - Load saved prize times, or setup new if first run or not saving across restarts
        /// </summary>
        protected override void GameSetup()
        {
            base.GameSetup();

            if (SaveAcrossRestarts && PreferencesFactory.HasKey("FreePrize.NextCountdownStart"))
            {
                NextCountdownStart     = DateTime.Parse(PreferencesFactory.GetString("FreePrize.NextCountdownStart", DateTime.UtcNow.ToString(CultureInfo.InvariantCulture))); // start countdown immediately if new game
                NextFreePrizeAvailable = DateTime.Parse(PreferencesFactory.GetString("FreePrize.NextPrize", NextFreePrizeAvailable.ToString(CultureInfo.InvariantCulture)));
                SetCurrentPrizeAmount();
            }
            else
            {
                StartNewCountdown();
            }
        }
示例#5
0
    public void PrepareAndShowInviteBalloon()
    {
        DateTime now = UnbiasedTime.Instance.Now();
        DateTime datetime;

        if (PreferencesFactory.HasKey(Constants.KeyInviteBalloonShowedDate))
        {
            datetime = DateTime.Parse(PreferencesFactory.GetString(Constants.KeyInviteBalloonShowedDate, now.ToString(CultureInfo.InvariantCulture)));
        }
        else
        {
            datetime = now.AddDays(-1);              // first launch, there is no date
        }

        if (datetime.Date < now.Date)
        {
            ShowBalloon();
        }
    }
示例#6
0
    public void RegisterAction(GameObject GO)
    {
        var mainTransform  = GO.transform;
        var email          = mainTransform.Find("EmailField").GetComponent <InputField> ();
        var username       = mainTransform.Find("UsernameField").GetComponent <InputField> ();
        var password       = mainTransform.Find("PasswordField").GetComponent <InputField> ();
        var repearPassword = mainTransform.Find("RepeatPasswordField").GetComponent <InputField> ();

        var emailString    = email.text;
        var usernameString = username.text;
        var passwordString = password.text;
        var repeatString   = repearPassword.text;

        if (string.IsNullOrEmpty(emailString))
        {
            ShowInfoDialogWithText(LocaliseText.Get("Account.EmailEmptyError"), "OK");
            return;
        }
        if (!IsMailValid(emailString))
        {
            ShowInfoDialogWithText(LocaliseText.Get("Account.EmailNotValidError"), "OK");
            return;
        }
        if (string.IsNullOrEmpty(usernameString))
        {
            ShowInfoDialogWithText(LocaliseText.Get("Account.UsernameEmptyError"), "OK");
            return;
        }
        if (!IsUsernameValid(usernameString))
        {
            ShowInfoDialogWithText(LocaliseText.Get("Account.UsernameNotValid"), "OK");
            return;
        }
        if (string.IsNullOrEmpty(passwordString))
        {
            ShowInfoDialogWithText(LocaliseText.Get("Account.PasswordEmptyError"), "OK");
            return;
        }
        if (string.IsNullOrEmpty(repeatString) || !repeatString.Equals(passwordString))
        {
            ShowInfoDialogWithText(LocaliseText.Get("Account.PasswordsNotEqual"), "OK");
            return;
        }

        if (!Reachability.Instance.IsReachable())
        {
            ShowInfoDialogWithText(LocaliseText.Get("Account.NoConnection"), "CLOSE");
            return;
        }

        if (!GS.Available)
        {
            GS.Reconnect();
        }

        Loading.Instance.Show();

        // user was logged from DeviceAuthenticationRequest and now only update his data
        if (PreferencesFactory.HasKey(Constants.ProfileAnonymousUserId))
        {
            new ChangeUserDetailsRequest()
            .SetDisplayName(usernameString)
            .SetUserName(emailString)
            .SetNewPassword(passwordString)
            .Send((response) => {
                Loading.Instance.Hide();

                if (response.HasErrors)
                {
                    ParseServerResponse(response.Errors);
                    return;
                }

                email.text          = null;
                username.text       = null;
                password.text       = null;
                repearPassword.text = null;

                PreferencesFactory.SetString(Constants.ProfileEmail, emailString);
                PreferencesFactory.SetString(Constants.ProfileUsername, usernameString);
                PreferencesFactory.SetString(Constants.ProfileUserId, PreferencesFactory.GetString(Constants.ProfileAnonymousUserId));
                PreferencesFactory.DeleteKey(Constants.ProfileAnonymousUserId);
                PreferencesFactory.Save();

                if (_callback != null)
                {
                    _callback.OnUserRegistered();
                }
                GameManager.SafeQueueMessage(new UserRegisterMessage());

                if (!Debug.isDebugBuild)
                {
                    Flurry.Flurry.Instance.LogEvent("Register_Email");
                    Fabric.Answers.Answers.LogSignUp("Email");
                    Branch.userCompletedAction("Register");
                    Branch.setIdentity(PreferencesFactory.GetString(Constants.ProfileUserId));
                }
            });

            return;
        }

        new RegistrationRequest()
        .SetUserName(emailString)
        .SetDisplayName(usernameString)
        .SetPassword(passwordString)
        .Send(((response) => {
            Loading.Instance.Hide();

            if (!response.HasErrors)
            {
                email.text = null;
                username.text = null;
                password.text = null;
                repearPassword.text = null;

                var scriptData = response.ScriptData;
                if (scriptData != null)
                {
                    var avatar = scriptData.GetString("avatar");

                    if (avatar != null)
                    {
                        PreferencesFactory.SetString(Constants.ProfileAvatar, avatar);
                    }
                }

                PreferencesFactory.SetString(Constants.ProfileEmail, emailString);
                PreferencesFactory.SetString(Constants.ProfileUsername, response.DisplayName);
                PreferencesFactory.SetString(Constants.ProfileUserId, response.UserId);
                PreferencesFactory.Save();

                if (_callback != null)
                {
                    _callback.OnUserRegistered();
                }
                GameManager.SafeQueueMessage(new UserRegisterMessage());

                if (!Debug.isDebugBuild)
                {
                    Flurry.Flurry.Instance.LogEvent("Register_Email");
                    Fabric.Answers.Answers.LogSignUp("Email");
                    Branch.userCompletedAction("Register");
                    Branch.setIdentity(PreferencesFactory.GetString(Constants.ProfileUserId));
                }
            }
            else
            {
                ParseServerResponse(response.Errors);
            }
        }));
    }
 public static bool IsUserLoggedIn()
 {
     return(IsTokenAvailable() && PreferencesFactory.HasKey(Constants.ProfileUserId));
 }
示例#8
0
    void Start()
    {
        GameManager.SafeAddListener <FacebookProfilePictureMessage>(FacebookProfilePictureHandler);

        _avatarImage   = GameObjectHelper.GetChildComponentOnNamedGameObject <RawImage> (gameObject, "AvatarImage");
        _userNameField = GameObjectHelper.GetChildComponentOnNamedGameObject <InputField> (gameObject, "UsernameField", true);

        _userNameField.text = PreferencesFactory.GetString(Constants.ProfileUsername);

        _statsContainer = GameObjectHelper.GetChildNamedGameObject(gameObject, "Stats", true);

                #if UNITY_IOS
        IOSCamera.OnImagePicked += OnImage;
                #endif

                #if UNITY_ANDROID
        AndroidCamera.Instance.OnImagePicked += OnImage;
                #endif

        string avatarId = PreferencesFactory.GetString(Constants.ProfileAvatarUploadId);

        if (avatarId != null)
        {
            GameSparksManager.Instance.DownloadAvatar(avatarId, (Texture2D image) => {
                if (_avatarImage != null && image != null)
                {
                    _avatarImage.texture = image;
                }
            });
        }
        else if (PreferencesFactory.HasKey(Constants.ProfileFBUserId))
        {
            FacebookRequests.Instance.LoadProfileImages(PreferencesFactory.GetString(Constants.ProfileFBUserId));
        }

        GameSparksManager.Instance.LeaderboardRating((int rating) => {
            PreferencesFactory.SetInt(Constants.ProfileRating, rating);
            SetRating(rating);
        });

        GameSparksManager.Instance.UserStats((GSData data) => {
            if (data.GetGSData("Novice") != null)
            {
                GSData rank = data.GetGSData("Novice");
                StatsAddRow("Novice", (int)rank.GetInt("wins"), (int)rank.GetInt("lose"), (int)rank.GetInt("draw"));
            }

            if (data.GetGSData("Advanced") != null)
            {
                GSData rank = data.GetGSData("Advanced");
                StatsAddRow("Advanced", (int)rank.GetInt("wins"), (int)rank.GetInt("lose"), (int)rank.GetInt("draw"));
            }

            if (data.GetGSData("Master") != null)
            {
                GSData rank = data.GetGSData("Master");
                StatsAddRow("Master", (int)rank.GetInt("wins"), (int)rank.GetInt("lose"), (int)rank.GetInt("draw"));
            }

            if (data.GetGSData("Professional") != null)
            {
                GSData rank = data.GetGSData("Professional");
                StatsAddRow("Professional", (int)rank.GetInt("wins"), (int)rank.GetInt("lose"), (int)rank.GetInt("draw"));
            }
        });

        SetRating(PreferencesFactory.GetInt(Constants.ProfileRating, 0));
    }