From d45a49f80916d81a6d4dc1368530b5c0055df1bb Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Sun, 26 Jul 2020 02:47:26 +0200 Subject: [PATCH] Fixed a google play connection crash --- Android/AndroidPlatform.cs | 9 ++++++--- TouchyTickets/Achievement.cs | 4 ++-- TouchyTickets/Platform.cs | 2 +- iOS/IosPlatform.cs | 2 +- 4 files changed, 10 insertions(+), 7 deletions(-) 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(); }