Develop - Version 1.2.1.0 - #7
Conversation
There was a problem hiding this comment.
Pull request overview
This pull request rebrands the application from "Azure Speech" to "AzioSpeech" and significantly refactors the initialization and settings management to improve reliability and user experience. The changes introduce a reactive AreCredentialsSaved property that tracks credential state, refactors the initialization flow to load settings first before checking system requirements, and simplifies status messages throughout the application.
Key Changes:
- Rebranding from "Azure Speech" to "AzioSpeech" across UI, documentation, and file paths
- Introduction of
AreCredentialsSavedreactive property for robust credential state tracking - Refactored initialization sequence to load settings before checking microphone/internet access
- Added
OpenPrivacySettingsAsyncmethod to help users grant microphone permissions - Simplified and professionalized status messages by removing emoji
Reviewed changes
Copilot reviewed 9 out of 19 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| README.md | Updated branding to AzioSpeech, added new screenshots and Microsoft Store badge |
| AzureSpeechProject/Views/MainWindow.axaml | Updated window title and status bar text to reflect new branding and developer attribution |
| AzureSpeechProject/ViewModels/SettingsViewModel.cs | Added AreCredentialsSaved property with reactive tracking and credential validation logic |
| AzureSpeechProject/ViewModels/MainWindowViewModel.cs | Refactored initialization to sequential flow, improved status message logic based on credential state |
| AzureSpeechProject/Services/MicrophonePermissionService.cs | Added method to open Windows microphone privacy settings |
| AzureSpeechProject/Services/IMicrophonePermissionService.cs | Added interface method for opening privacy settings |
| AzureSpeechProject/Constants/FileConstants.cs | Updated transcript directory path to use new brand name |
| AzureSpeechProject/AzureSpeechProject.csproj | Updated assembly name, version to 1.2.1.0, and product metadata |
| .gitignore | Expanded patterns for better IDE and build artifact exclusion (with duplication issue) |
| Screenshots/Screen6.png | New screenshot added (binary file) |
| Screenshots/Screen7.png | New screenshot added (binary file) |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
You can also share your feedback on Copilot code review for a chance to win a $100 gift card. Take the survey.
| public static readonly string TranscriptsDirectory = Path.Combine( | ||
| Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), | ||
| "Azure Speech Services", | ||
| "Azio Speech", |
There was a problem hiding this comment.
Inconsistent branding: The directory name is "Azio Speech" (with a space) but the product is being rebranded to "AzioSpeech" (no space) based on the README, MainWindow title, and project metadata. This should likely be "AzioSpeech" to match the product name.
| "Azio Speech", | |
| "AzioSpeech", |
| var savedSettings = _settingsService.LoadSettingsAsync(CancellationToken.None).GetAwaiter().GetResult(); | ||
| var credentialsMatch = savedSettings.Region == Region && savedSettings.Key == Key; |
There was a problem hiding this comment.
The UpdateCredentialsSavedState method synchronously blocks on an async operation using GetAwaiter().GetResult(), which can lead to deadlocks in UI applications. Consider making this method async or restructuring to avoid blocking calls.
This pull request introduces a rebranding of the application from "Azure Speech" to "AzioSpeech" and improves the initialization and settings logic, particularly around Azure credentials and status messaging. It also adds a new method for opening Windows microphone privacy settings and refines the user experience by making status messages and credential checks more robust and informative.
Rebranding and Naming Updates:
Settings and Credential Management Improvements:
AreCredentialsSavedtoSettingsViewModel, which tracks whether the Azure credentials are both entered and match the saved settings. This property is updated reactively and used to determine application readiness. [1] [2] [3] [4]SettingsViewModel, ensuring that the status accurately reflects whether credentials are saved and valid. [1] [2]MainWindowViewModelto useAreCredentialsSavedfor status updates, resulting in more accurate and user-friendly status messages regarding credential configuration. [1] [2]Initialization and Status Messaging Enhancements:
MainWindowViewModelto load settings first, then check microphone and internet access, and update the UI status accordingly. This makes the startup flow more robust and informative.Microphone Permission Service Update:
OpenPrivacySettingsAsynctoIMicrophonePermissionServiceand its implementation, allowing the app to programmatically open the Windows microphone privacy settings for the user. [1] [2] [3]These changes collectively improve the user experience, reliability, and maintainability of the application under its new branding.
References:
[1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17]