Fix performance issue by caching typing effect settings in ChatUiState (#329)
* Fix performance issue by caching typing effect settings in ChatUiState - Moved `AuthManager.isTypingEffectEnabled()` and `AuthManager.getTypingEffectDelayMs()` out of `ChatScreen.kt` recomposition loops. - Stored `typingEffectEnabled` and `typingEffectDelayMs` in `ChatUiState`. - Added `refreshSettings()` to `ChatViewModel` to fetch settings upon initialization and on returning to the chat screen (ON_START). - Prevents expensive EncryptedSharedPreferences XML decryption occurring on every message per token stream update. Fixes #269 * Fix performance issue by caching typing effect settings in ChatUiState - Moved `AuthManager.isTypingEffectEnabled()` and `AuthManager.getTypingEffectDelayMs()` out of `ChatScreen.kt` recomposition loops. - Stored `typingEffectEnabled` and `typingEffectDelayMs` in `ChatUiState`. - Added `refreshSettings()` to `ChatViewModel` to fetch settings upon initialization and on returning to the chat screen (ON_START). - Prevents expensive EncryptedSharedPreferences XML decryption occurring on every message per token stream update. - Fixed `ChatViewModelTest` missing mocks for `AuthManager.isTypingEffectEnabled()` and `AuthManager.getTypingEffectDelayMs()`. - Fixed ktlint unused import and max line length violations. Fixes #269
This commit is contained in:
3 files changed
+24
-10
No files matched your search
@@ -64,6 +64,8 @@ class ChatViewModelTest {
|
||||
mockConnectionStatus.value = ConnectionStatus.DISCONNECTED
|
||||
|
||||
every { AuthManager.getToken() } returns "test-token"
|
||||
every { AuthManager.isTypingEffectEnabled() } returns true
|
||||
every { AuthManager.getTypingEffectDelayMs() } returns 30
|
||||
every { HermesWsClient.events } returns mockEventsFlow
|
||||
every { HermesWsClient.connectionStatus } returns mockConnectionStatus
|
||||
every { HermesWsClient.connect() } returns Unit
|
||||
|
||||
Reference in new issue
Block a user