feat(chat): remove legacy bubble renderer, full-bleed is the only chat style (#881)
Deletes the ChatMessageList/ChatStreaming bubble path and the ChatStyle setting (issue #866 phase 6). ChatScreen now renders FullBleedChatList directly; ChatBubble becomes the user-message anchor with the shared SystemBubble/InlineAttachment/formatTimestamp helpers intact. Stubs of AuthManager.getChatStyle() removed from four test suites; TodoTaskCardTest renders ToolBubble directly. Verified: ktlintCheck green, testDebugUnitTest 962/962 pass, assembleDebug APK builds. Co-authored-by: M57 <hy4ri@users.noreply.github.com>
This commit is contained in:
1 parent
a59c8c6a4f
commit
345d2e4e89
20 files changed
+154
-737
No files matched your search
@@ -1,7 +1,6 @@
|
||||
package com.m57.hermescontrol.data.config
|
||||
|
||||
import com.m57.hermescontrol.data.model.PinnedModel
|
||||
import com.m57.hermescontrol.theme.ChatStyle
|
||||
import com.m57.hermescontrol.theme.ThemePreference
|
||||
import com.m57.hermescontrol.theme.ThemePreset
|
||||
import kotlinx.serialization.Serializable
|
||||
@@ -22,9 +21,6 @@ data class ServerStoreState(
|
||||
val wsAuthParam: String = "token",
|
||||
val typingEffectEnabled: Boolean = true,
|
||||
val typingEffectDelayMs: Int = 30,
|
||||
// Chat rendering style (issue #866): full-bleed renderer (default) or the
|
||||
// legacy bubble renderer.
|
||||
val chatStyle: ChatStyle = ChatStyle.FULL_BLEED,
|
||||
// App display language. "system" = follow device locale; otherwise a BCP-47
|
||||
// language code such as "en" or "ko". Applied via ContextWrapper in MainActivity.
|
||||
val appLanguage: String = "system",
|
||||
|
||||
@@ -17,7 +17,6 @@ import com.m57.hermescontrol.data.remote.CleartextPolicy
|
||||
import com.m57.hermescontrol.data.remote.CookieManager
|
||||
import com.m57.hermescontrol.data.remote.ServerEndpoint
|
||||
import com.m57.hermescontrol.data.session.ActiveSessionHolder
|
||||
import com.m57.hermescontrol.theme.ChatStyle
|
||||
import com.m57.hermescontrol.theme.ThemePreference
|
||||
import com.m57.hermescontrol.theme.ThemePreset
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
@@ -75,9 +74,6 @@ object AuthManager {
|
||||
private val _themePresetFlow = MutableStateFlow<ThemePreset>(ThemePreset.DEFAULT)
|
||||
val themePresetFlow: StateFlow<ThemePreset> = _themePresetFlow.asStateFlow()
|
||||
|
||||
private val _chatStyleFlow = MutableStateFlow<ChatStyle>(ChatStyle.FULL_BLEED)
|
||||
val chatStyleFlow: StateFlow<ChatStyle> = _chatStyleFlow.asStateFlow()
|
||||
|
||||
private val _tokenFlow = MutableStateFlow<String?>(null)
|
||||
val tokenFlow: StateFlow<String?> = _tokenFlow.asStateFlow()
|
||||
|
||||
@@ -184,7 +180,6 @@ object AuthManager {
|
||||
_themePreferenceFlow.value = state.themePreference
|
||||
_useDynamicColorsFlow.value = state.useDynamicColors
|
||||
_themePresetFlow.value = state.themePreset
|
||||
_chatStyleFlow.value = state.chatStyle
|
||||
// B7 (Jul 08 2026, kanban t_470): keep cookie scope aligned with active profile.
|
||||
appScope?.launch { syncCookieStoreForProfile(state.selectedProfileId) }
|
||||
}
|
||||
@@ -589,15 +584,6 @@ object AuthManager {
|
||||
|
||||
fun getThemePreset(): ThemePreset = serverStore.getLatestState().themePreset
|
||||
|
||||
// ── Chat style (issue #866) ──────────────────────────────────────────
|
||||
|
||||
fun getChatStyle(): ChatStyle = serverStore.getLatestState().chatStyle
|
||||
|
||||
fun setChatStyle(style: ChatStyle) {
|
||||
_chatStyleFlow.value = style
|
||||
serverStore.update { it.copy(chatStyle = style) }
|
||||
}
|
||||
|
||||
fun setThemePreset(preset: ThemePreset) {
|
||||
serverStore.update { it.copy(themePreset = preset) }
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user