diff --git a/Android/AndroidPlatform.cs b/Android/AndroidPlatform.cs index 6ec3779..0feca84 100644 --- a/Android/AndroidPlatform.cs +++ b/Android/AndroidPlatform.cs @@ -111,13 +111,16 @@ namespace Android { this.activity.StartActivity(new Intent(Intent.ActionView, Uri.Parse("https://play.google.com/store/apps/details?id=de.ellpeck.touchytickets"))); } - public override void GainAchievement(Achievement achievement) { - if (this.GoogleApi != null) + public override bool GainAchievement(Achievement achievement) { + if (this.GoogleApi != null && this.GoogleApi.IsConnected) { GamesClass.Achievements.Unlock(this.GoogleApi, AchievementIds[achievement.Name]); + return true; + } + return false; } public override void ShowAchievements() { - if (this.GoogleApi == null) + if (this.GoogleApi == null || !this.GoogleApi.IsConnected) return; var intent = GamesClass.Achievements.GetAchievementsIntent(this.GoogleApi); this.activity.StartActivityForResult(intent, ShowAchievementsRequest); diff --git a/TouchyTickets/Achievement.cs b/TouchyTickets/Achievement.cs index e49d116..24f3795 100644 --- a/TouchyTickets/Achievement.cs +++ b/TouchyTickets/Achievement.cs @@ -48,8 +48,8 @@ namespace TouchyTickets { return; if (!this.condition.Invoke(GameImpl.Instance)) return; - GameImpl.Instance.Platform.GainAchievement(this); - this.unlocked = true; + if (GameImpl.Instance.Platform.GainAchievement(this)) + this.unlocked = true; } public static void Register(Achievement achievement) { diff --git a/TouchyTickets/Platform.cs b/TouchyTickets/Platform.cs index 9abe5bc..5501323 100644 --- a/TouchyTickets/Platform.cs +++ b/TouchyTickets/Platform.cs @@ -11,7 +11,7 @@ namespace TouchyTickets { public abstract void OpenRateLink(); - public abstract void GainAchievement(Achievement achievement); + public abstract bool GainAchievement(Achievement achievement); public abstract void ShowAchievements(); diff --git a/iOS/IosPlatform.cs b/iOS/IosPlatform.cs index b3b4374..828cb16 100644 --- a/iOS/IosPlatform.cs +++ b/iOS/IosPlatform.cs @@ -20,7 +20,7 @@ namespace iOS { throw new System.NotImplementedException(); } - public override void GainAchievement(Achievement achievement) { + public override bool GainAchievement(Achievement achievement) { throw new System.NotImplementedException(); }