Major SDK simplification by removing redundant final result processing:
1. YxAsrService changes:
- Remove final result retrieval in stopListening()
- Remove finalResult parameter from _sendResult()
- Simplify stop logic to only reset stream state
- Eliminate duplicate API calls that provided no additional value
2. SpeechRecognitionResult model changes:
- Remove finalResult property and related logic
- Update constructor, factory methods, toString, equals, hashCode
- Remove finalResult from toMap/fromMap serialization
- Simplify the model to focus on actual recognition data
3. Benefits:
- Cleaner, more maintainable codebase
- Reduced complexity and potential bugs
- Better performance (no redundant API calls)
- Simpler API for developers to use
- Real-time text appending works seamlessly without artificial distinctions
The analysis showed that 'final results' were identical to the last real-time result,
making the distinction unnecessary. Now all results are treated uniformly as
real-time updates, providing a smoother and more intuitive user experience.
1. Add finalResult property to SpeechRecognitionResult class
- Distinguish between real-time and final recognition results
- Update factory methods, toString, equals, and hashCode
- Update toMap and fromMap methods
2. Update YxAsrService to support finalResult flag
- Add finalResult parameter to _sendResult method
- Mark final results with finalResult: true
- Keep real-time results as finalResult: false (default)
3. Remove unused methods to clean up codebase
- Remove unused _toggleRecording method
- Remove unused _updateTextController method
- Clean up orphaned comments
These fixes resolve linter errors and ensure proper text appending functionality.