← All repositories

listless

A simple list app for Apple platforms

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


commit cd974edc871195e731b8a6002848f442f57a4077
parent a6910ea1226dc5d075217897ba93a47e6b2576b4
Author: Michael Camilleri <[email protected]>
Date:   Sun,  8 Mar 2026 17:06:31 +0900

Support adjustable flick threshold

The threshold doesn't feel right to me. This commit adds a slider to
Settings that a beta tester can use to adjust the level.

Co-Authored-By: Claude 4.6 Opus <[email protected]>

Diffstat

MListlessiOS/Views/SettingsView.swift | 9+++++++++
MListlessiOS/Views/TaskListView.swift | 2+-

2 files changed, 10 insertions(+), 1 deletion(-)

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

@@ -5,6 +5,7 @@ struct SettingsView: View {
     @Environment(\.dismiss) private var dismiss
     @AppStorage("headingText") private var headingText = "Items"
     @AppStorage("appearanceMode") private var appearanceMode = 0
+    @AppStorage("flickThreshold") private var flickThreshold: Double = 800
 
     var body: some View {
         NavigationStack {
@@ -13,6 +14,14 @@ struct SettingsView: View {
                     TextField("List Title", text: $headingText)
                 }
 
+                Section("Flick Sensitivity") {
+                    HStack {
+                        Text("\(Int(flickThreshold)) pt/s")
+                            .monospacedDigit()
+                        Slider(value: $flickThreshold, in: 200...2000, step: 50)
+                    }
+                }
+
                 Section("Appearance") {
                     Picker("Appearance", selection: $appearanceMode) {
                         Text("System").tag(0)

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

@@ -174,7 +174,7 @@ struct TaskListView: View, TaskListViewProtocol {
 
     var vStackSpacing: CGFloat { 12 }
     var pullCreateThreshold: CGFloat { 70 }
-    var flickThreshold: CGFloat { 800 }
+    @AppStorage("flickThreshold") var flickThreshold: Double = 800
     var isCompletelyEmpty: Bool { activeTasks.isEmpty && completedTasks.isEmpty }
 
     init(store: TaskStore, syncMonitor: CloudKitSyncMonitor) {