IEnumerator MakeRatingRequest(float delay = 0f) { yield return(new WaitForSeconds(delay)); MobileNativeRatingRequest.RequestRating(); if (requestMode == RequestMode.GameBased) { PlayerPrefs.SetInt(LAST_REQUEST_GAMES_PLAYED_PPK, GetGamesPlayed()); } else if (requestMode == RequestMode.TimeBased) { Utilities.StoreTime(LAST_REQUEST_TIME_PPK, DateTime.Now); } }
bool CanRequestNow() { bool canRequest = MobileNativeRatingRequest.CanRequestRating(); if (canRequest) { if (requestMode == RequestMode.GameBased) { bool hasPlayedEnoughGames = false; int gamesPlayed = GetGamesPlayed(); if (gamesPlayed >= gamesPlayedAfterInstall) { int lastRequestGamesPlayed = PlayerPrefs.GetInt(LAST_REQUEST_GAMES_PLAYED_PPK, -9999); if (gamesPlayed - lastRequestGamesPlayed >= gamesPlayedBetweenRequests) { hasPlayedEnoughGames = true; } } canRequest &= hasPlayedEnoughGames; } else if (requestMode == RequestMode.TimeBased) { bool isGoodTiming = false; DateTime installTime = GetInstallTime(); if ((DateTime.Now - installTime).Days >= daysAfterInstall) { DateTime lastRequestTime = Utilities.GetTime(LAST_REQUEST_TIME_PPK, new DateTime(1970, 1, 1)); if ((DateTime.Now - lastRequestTime).Days >= daysBetweenRequests) { isGoodTiming = true; } } canRequest &= isGoodTiming; } } return(canRequest); }