From c9e0ff8ec222853a2627d062cb069426cea44ab8 Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Sat, 4 Mar 2023 12:28:05 +0100 Subject: [PATCH] added a toggle for displaying under the notch --- Android/Activity1.cs | 4 ---- Android/AndroidPlatform.cs | 9 ++++++++- TouchyTickets/GameImpl.cs | 5 +++-- TouchyTickets/Options.cs | 12 +++++++++++- TouchyTickets/Platform.cs | 7 ++++--- TouchyTickets/Ui.cs | 7 +++++++ 6 files changed, 33 insertions(+), 11 deletions(-) diff --git a/Android/Activity1.cs b/Android/Activity1.cs index 8f5c7a4..2c88bff 100644 --- a/Android/Activity1.cs +++ b/Android/Activity1.cs @@ -46,10 +46,6 @@ public class Activity1 : AndroidGameActivity { this.game.GraphicsDeviceManager.ApplyChanges(); }; - // don't render under notches - if (Build.VERSION.SdkInt >= BuildVersionCodes.P) - this.Window.Attributes.LayoutInDisplayCutoutMode = LayoutInDisplayCutoutMode.Never; - this.view = this.game.Services.GetService(typeof(View)) as View; this.SetContentView(this.view); diff --git a/Android/AndroidPlatform.cs b/Android/AndroidPlatform.cs index 505ec46..7a44b2e 100644 --- a/Android/AndroidPlatform.cs +++ b/Android/AndroidPlatform.cs @@ -1,10 +1,11 @@ using Android.App; using Android.Content; +using Android.OS; using Android.Views; using TouchyTickets; using Uri = Android.Net.Uri; -namespace Android; +namespace Android; public class AndroidPlatform : Platform { @@ -22,6 +23,12 @@ public class AndroidPlatform : Platform { } } + public override void SetRenderUnderNotch(bool value) { + // don't render under notches by default + if (Build.VERSION.SdkInt >= BuildVersionCodes.P) + this.activity.Window.Attributes.LayoutInDisplayCutoutMode = value ? LayoutInDisplayCutoutMode.ShortEdges : LayoutInDisplayCutoutMode.Never; + } + public override void OpenRateLink() { this.activity.StartActivity(new Intent(Intent.ActionView, Uri.Parse("https://play.google.com/store/apps/details?id=de.ellpeck.touchytickets"))); } diff --git a/TouchyTickets/GameImpl.cs b/TouchyTickets/GameImpl.cs index 5159d8e..dc01fba 100644 --- a/TouchyTickets/GameImpl.cs +++ b/TouchyTickets/GameImpl.cs @@ -9,7 +9,7 @@ using MLEM.Startup; using TouchyTickets.Upgrades; using Vector2 = Microsoft.Xna.Framework.Vector2; -namespace TouchyTickets; +namespace TouchyTickets; public class GameImpl : MlemGame { @@ -30,6 +30,7 @@ public class GameImpl : MlemGame { public GameImpl(Platform platform) { this.Platform = platform; + this.Platform.SetRenderUnderNotch(false); GameImpl.Instance = this; } @@ -106,7 +107,7 @@ public class GameImpl : MlemGame { #if DEBUG return 3; #else - return (int) BigInteger.Min(3, this.Tickets / this.GetStarPrice()); + return (int) BigInteger.Min(3, this.Tickets / this.GetStarPrice()); #endif } diff --git a/TouchyTickets/Options.cs b/TouchyTickets/Options.cs index afc2cc5..2c79927 100644 --- a/TouchyTickets/Options.cs +++ b/TouchyTickets/Options.cs @@ -24,6 +24,14 @@ public class Options { [DataMember] public bool WhileYouWereAwayMessage = true; [DataMember] + public bool RenderUnderNotch { + get => this.renderUnderNotch; + set { + this.renderUnderNotch = value; + GameImpl.Instance.Platform.SetRenderUnderNotch(value); + } + } + [DataMember] public bool KeepScreenOn { get => this.keepScreenOn; set { @@ -31,12 +39,14 @@ public class Options { GameImpl.Instance.Platform.SetKeepScreenOn(value); } } - private bool keepScreenOn; [DataMember] public bool AutoBuyEnabled = true; [DataMember] public int MinTicketsForAutoBuy = 50000; + private bool renderUnderNotch; + private bool keepScreenOn; + public static void Save() { var file = Options.GetOptionsFile(true); using var stream = new JsonTextWriter(file.CreateText()); diff --git a/TouchyTickets/Platform.cs b/TouchyTickets/Platform.cs index 9ee8b84..a376378 100644 --- a/TouchyTickets/Platform.cs +++ b/TouchyTickets/Platform.cs @@ -1,10 +1,11 @@ -namespace TouchyTickets; +namespace TouchyTickets; public abstract class Platform { - + public abstract void SetKeepScreenOn(bool keep); + public abstract void SetRenderUnderNotch(bool value); + public abstract void OpenRateLink(); - } \ No newline at end of file diff --git a/TouchyTickets/Ui.cs b/TouchyTickets/Ui.cs index f660008..c50cb85 100644 --- a/TouchyTickets/Ui.cs +++ b/TouchyTickets/Ui.cs @@ -415,6 +415,13 @@ public class Ui { Options.Save(); } }); + optionList.AddChild(new Checkbox(Anchor.AutoLeft, new Vector2(1, 24), Localization.Get("RenderUnderNotch"), Options.Instance.RenderUnderNotch) { + PositionOffset = new Vector2(0, 2), + OnCheckStateChange = (_, value) => { + Options.Instance.RenderUnderNotch = value; + Options.Save(); + } + }); optionList.AddChild(new Checkbox(Anchor.AutoLeft, new Vector2(1, 24), Localization.Get("KeepScreenOn"), Options.Instance.KeepScreenOn) { PositionOffset = new Vector2(0, 2), OnCheckStateChange = (_, value) => {