- Add TTSManager and SpeechQueue utilities - Create AddTextToSpeechQueueUseCase and ReadBookmarkUseCase - Add SpeechPlayer UI components (GlobalPlayerContainerView, SpeechPlayerView, SpeechPlayerViewModel) - Update BookmarkDetailView and BookmarkDetailViewModel for TTS integration - Add audio background mode to Info.plist - Update PhoneTabView for TTS controls - Add StringExtensions for text processing - Add StringExtensionsTests for testing - Update Localizable.xcstrings with new strings - Add VS Code settings
20 lines
503 B
Swift
20 lines
503 B
Swift
import Foundation
|
|
|
|
class AddTextToSpeechQueueUseCase {
|
|
private let speechQueue: SpeechQueue
|
|
|
|
init(speechQueue: SpeechQueue = .shared) {
|
|
self.speechQueue = speechQueue
|
|
}
|
|
|
|
func execute(bookmarkDetail: BookmarkDetail) {
|
|
var text = bookmarkDetail.title + "\n"
|
|
if let content = bookmarkDetail.content {
|
|
text += content.stripHTML
|
|
} else {
|
|
text += bookmarkDetail.description.stripHTML
|
|
}
|
|
speechQueue.enqueue(text)
|
|
}
|
|
}
|