From e7df449d82a48a442b659df15fa0aa83973619f0 Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Mon, 29 Jun 2020 13:47:45 +0200 Subject: [PATCH] added an option to keep the screen on when the app is open --- Android/AndroidPlatform.cs | 9 +++++++++ TouchyTickets/Content/Localization/Localization.json | 1 + TouchyTickets/Options.cs | 9 +++++++++ TouchyTickets/Platform.cs | 2 ++ TouchyTickets/Ui.cs | 7 +++++++ 5 files changed, 28 insertions(+) diff --git a/Android/AndroidPlatform.cs b/Android/AndroidPlatform.cs index 3378cf5..b059843 100644 --- a/Android/AndroidPlatform.cs +++ b/Android/AndroidPlatform.cs @@ -2,6 +2,7 @@ using System.Collections; using System.Collections.Generic; using Android.App; using Android.Gms.Ads; +using Android.Views; using Android.Widget; using GameAnalyticsSDK; using GameAnalyticsSDK.Utilities; @@ -38,5 +39,13 @@ namespace Android { GameAnalytics.NewResourceEvent(sink ? GAResourceFlowType.Sink : GAResourceFlowType.Source, currency, amount, itemType, itemId); } + public override void SetKeepScreenOn(bool keep) { + if (keep) { + this.activity.Window.AddFlags(WindowManagerFlags.KeepScreenOn); + } else { + this.activity.Window.ClearFlags(WindowManagerFlags.KeepScreenOn); + } + } + } } \ No newline at end of file diff --git a/TouchyTickets/Content/Localization/Localization.json b/TouchyTickets/Content/Localization/Localization.json index c75c5f3..9ee5dfa 100644 --- a/TouchyTickets/Content/Localization/Localization.json +++ b/TouchyTickets/Content/Localization/Localization.json @@ -16,6 +16,7 @@ "AGameByEllpeck": "A game by Ellpeck", "WhileYouWereAway": "While you were away, you sold at half the regular speed. You were away for {0} minutes and sold {1} during that time. Nice!", "WhileYouWereAwayMessage": "Display Offline Summary", + "KeepScreenOn": "Keep Screen On", "----- Tutorial -----": "", "Tutorial1": "Hi! Welcome to Touchy Tickets. To start the game, simply tap the ticket booth to sell a . Start by racking up 50!", "Tutorial2": "Great! Now, you can buy your first attraction. Access the menu on the right by swiping and purchase a carousel.", diff --git a/TouchyTickets/Options.cs b/TouchyTickets/Options.cs index e19be28..8f16205 100644 --- a/TouchyTickets/Options.cs +++ b/TouchyTickets/Options.cs @@ -22,6 +22,15 @@ namespace TouchyTickets { private float soundVolume = 1; [DataMember] public bool WhileYouWereAwayMessage = true; + [DataMember] + public bool KeepScreenOn { + get => this.keepScreenOn; + set { + this.keepScreenOn = value; + GameImpl.Instance.Platform.SetKeepScreenOn(value); + } + } + private bool keepScreenOn; public static void Save() { var file = GetOptionsFile(true); diff --git a/TouchyTickets/Platform.cs b/TouchyTickets/Platform.cs index e4142c9..9b6552f 100644 --- a/TouchyTickets/Platform.cs +++ b/TouchyTickets/Platform.cs @@ -9,5 +9,7 @@ namespace TouchyTickets { public abstract void AddResourceEvent(bool sink, string currency, float amount, string itemType, string itemId); + public abstract void SetKeepScreenOn(bool keep); + } } \ No newline at end of file diff --git a/TouchyTickets/Ui.cs b/TouchyTickets/Ui.cs index 3293267..7728468 100644 --- a/TouchyTickets/Ui.cs +++ b/TouchyTickets/Ui.cs @@ -391,6 +391,13 @@ namespace TouchyTickets { Options.Save(); } }); + optionList.AddChild(new Checkbox(Anchor.AutoLeft, new Vector2(1, 20), Localization.Get("KeepScreenOn"), Options.Instance.KeepScreenOn) { + PositionOffset = new Vector2(0, 1), + OnCheckStateChange = (b, value) => { + Options.Instance.KeepScreenOn = value; + Options.Save(); + } + }); this.uiSystem.Add("Options", optionsUi); this.swipeRelations = new Element[] {optionsUi, upgradeUi, main, buyUi, modifierUi};