fix(notes): debounce transcription longer, max 1 line title, add multiple lines in transcription

This commit is contained in:
2025-12-10 12:12:15 +01:00
parent d0c8f222ae
commit c64dc59897
3 changed files with 20 additions and 19 deletions

View File

@@ -35,6 +35,7 @@ struct FieldEditorView: View {
@State private var viewAppeared = false
@State private var showingTagPicker = false
@State private var newTagName = ""
@State private var recognitionWorkItem: DispatchWorkItem?
var body: some View {
NavigationView {
@@ -174,31 +175,31 @@ struct FieldEditorView: View {
}
private func recognizeHandwriting(_ drawing: PKDrawing) {
print("=== recognizeHandwriting called ===")
print("Drawing bounds: \(drawing.bounds)")
print("Drawing is empty: \(drawing.bounds.isEmpty)")
guard !drawing.bounds.isEmpty else {
print("Drawing bounds are empty, skipping recognition")
return
}
print("Starting recognition...")
isRecognizing = true
Task {
if let recognizedText = await HandwritingRecognizer.recognizeTextAsync(from: drawing) {
print("Recognition successful: \(recognizedText)")
await MainActor.run {
// Cancel any pending recognition
recognitionWorkItem?.cancel()
// Create new work item with debounce
let workItem = DispatchWorkItem { [drawing] in
Task { @MainActor in
isRecognizing = true
if let recognizedText = await HandwritingRecognizer.recognizeTextAsync(from: drawing) {
text = recognizedText
isRecognizing = false
}
} else {
print("Recognition returned nil")
await MainActor.run {
} else {
isRecognizing = false
}
}
}
recognitionWorkItem = workItem
// Execute after 3 seconds delay (same as NotesListView)
DispatchQueue.main.asyncAfter(deadline: .now() + 3.0, execute: workItem)
}
}

View File

@@ -87,7 +87,7 @@ class HandwritingRecognizer {
print("Recognized strings: \(recognizedStrings)")
let recognizedText = recognizedStrings.joined(separator: " ")
let recognizedText = recognizedStrings.joined(separator: "\n")
completion(recognizedText.isEmpty ? nil : recognizedText)
}

View File

@@ -159,7 +159,7 @@ struct NoteRowView: View {
VStack(alignment: .leading, spacing: 4) {
Text(note.title)
.font(.body)
.lineLimit(2)
.lineLimit(1)
if note.timestamp != nil {
Text(timeAgo)
@@ -379,7 +379,7 @@ struct NoteEditorContentOnly: View {
recognitionWorkItem = workItem
// Execute after 800ms delay (adjust as needed)
DispatchQueue.main.asyncAfter(deadline: .now() + 0.8, execute: workItem)
// Execute after 3 seconds delay
DispatchQueue.main.asyncAfter(deadline: .now() + 3.0, execute: workItem)
}
}