← All repositories

listless

A simple list app for Apple platforms

git clone https://code.inqk.net/listless.git


commit abd818d66267e51ca03cc80c419393c9c53502d9
parent 0b99e0cba36854bb58c08989aceabbb105e3e29c
Author: Michael Camilleri <[email protected]>
Date:   Tue, 24 Mar 2026 18:47:33 +0900

Add debugging section to Settings screen

Diffstat

MListlessiOS/Views/SettingsView.swift | 19+++++++++++++++++++
MListlessiOS/Views/TaskListView.swift | 11+++++++----

2 files changed, 26 insertions(+), 4 deletions(-)

diff --git a/ListlessiOS/Views/SettingsView.swift b/ListlessiOS/Views/SettingsView.swift

@@ -7,6 +7,9 @@ struct SettingsView: View {
     @AppStorage("appearanceMode") private var appearanceMode = 0
     @AppStorage("colorTheme") private var colorThemeRaw = 0
     @AppStorage("hapticsEnabled") private var hapticsEnabled = true
+    @AppStorage("debugMode") private var debugMode = false
+    @AppStorage("showFPSOverlay") private var showFPSOverlay = false
+    @State private var easterEggTaps = 0
 
     var body: some View {
         NavigationStack {
@@ -60,6 +63,12 @@ struct SettingsView: View {
                     .pickerStyle(.segmented)
                 }
 
+                if debugMode {
+                    Section("Debugging") {
+                        Toggle("FPS Overlay", isOn: $showFPSOverlay)
+                    }
+                }
+
                 Section {
                     NavigationLink("About") {
                         AboutView()
@@ -69,6 +78,16 @@ struct SettingsView: View {
                         .frame(maxWidth: .infinity)
                         .multilineTextAlignment(.center)
                         .padding(.top, 24)
+                        .onTapGesture {
+                            easterEggTaps += 1
+                            if easterEggTaps >= 4 {
+                                debugMode.toggle()
+                                if !debugMode {
+                                    showFPSOverlay = false
+                                }
+                                easterEggTaps = 0
+                            }
+                        }
                 }
             }
             .navigationTitle("Settings")

diff --git a/ListlessiOS/Views/TaskListView.swift b/ListlessiOS/Views/TaskListView.swift

@@ -31,6 +31,7 @@ struct TaskListView: View, TaskListViewProtocol {
     @AppStorage("headingText") var headingText = "Items"
     @AppStorage("colorTheme") private var colorThemeRaw = 0
     @AppStorage("hapticsEnabled") private var hapticsEnabled = true
+    @AppStorage("showFPSOverlay") private var showFPSOverlay = false
     private var colorTheme: ColorTheme { ColorTheme(rawValue: colorThemeRaw) ?? .pilbara }
     @Environment(\.undoManager) var undoManager
     @Environment(\.managedObjectContext) var managedObjectContext
@@ -407,10 +408,12 @@ struct TaskListView: View, TaskListViewProtocol {
     var body: some View {
         taskScrollView
             .overlay(alignment: .topTrailing) {
-                FPSOverlay()
-                    .padding(.top, 4)
-                    .padding(.trailing, 8)
-                    .allowsHitTesting(false)
+                if showFPSOverlay {
+                    FPSOverlay()
+                        .padding(.top, 4)
+                        .padding(.trailing, 8)
+                        .allowsHitTesting(false)
+                }
             }
             .simultaneousGesture(
                 SpatialTapGesture(coordinateSpace: .global).onEnded { value in