Перейти к основному содержимому
Версия: 5.1.0

Миграция

Миграция на 5.х с 4.х

В версии 5.0 изменился интерфейс СДК, настройка UI теперь осуществляется через темы.

  1. Изменился адрес библиотеки, а также package модуля. Package name модуля: "edna.chatcenter.ui". Адрес библиотеки: "implementation 'edna.chatcenter.ui.android:release:5.X'" для release версии и "implementation 'edna.chatcenter.ui.android:debug:5.1'" для debug
  2. Изменилось все публичное апи: настройки ui, иные настройки. Больше нет классов "ChatStyle", "Threads" и т.д. Подробнее об интеграции см. разделы "Настройка", "Расширенные настройки", а также документацию по методам в отдельном разделе

Пример перехода с ChatStyle на новую систему стилей

Например, в 4.х имеется следующая конфигурация ChatStyle

val chatStyle = ChatStyle().apply {
setDefaultFontBold(LATO_BOLD_FONT_PATH)
setDefaultFontLight(LATO_LIGHT_FONT_PATH)
setDefaultFontRegular(LATO_REGULAR_FONT_PATH)
setScrollChatToEndIfUserTyping(false)

//UI
setConsultSearchingProgressColor(R.color.light_toolbar)
setChatBodyIconsTint(R.color.light_toolbar)
enableLinkPreview()
setChatTitleStyle(
R.string.app_name,
R.string.demo_alt_threads_operator_subtitle,
R.color.light_toolbar,
R.color.alt_threads_chat_toolbar_text,
R.color.light_statusbar,
R.bool.alt_threads_chat_is_light_status_bar,
R.color.light_toolbar,
R.color.alt_threads_chat_toolbar_hint,
true
)
setOutgoingMessageBubbleColor(R.color.light_outgoing_bubble)
setScrollDownButtonIcon(R.drawable.alt_threads_scroll_down_icon_light)
setRecordButtonBackgroundColor(R.color.light_toolbar)
setOutgoingMessageTextColor(R.color.black_color)
setOutgoingImageTimeBackgroundColor(R.color.light_outgoing_image_time_background)
setOutgoingMessageTimeColor(R.color.light_outgoing_time_text)
setMessageSendingResources(null, R.color.light_icons)
setMessageSentResources(null, R.color.light_icons)
setMessageDeliveredResources(null, R.color.light_icons)
setMessageReadResources(null, R.color.light_icons)
setMessageFailedResources(null, R.color.light_icons)
setChatHighlightingColor(R.color.light_highlighting)
setIncomingMessageLinkColor(R.color.light_links)
setOutgoingMessageLinkColor(R.color.light_links)
}


На 5.х это будет выглядеть так:

val ednaTypography = ChatTypography().apply {
defaultFontRegularPath = LATO_BOLD_FONT_PATH
defaultFontLightPath = LATO_LIGHT_FONT_PATH
defaultFontRegularPath = LATO_REGULAR_FONT_PATH
}
val chatConfig = ChatConfig(
transportConfig, // ваши сетевые конфиги
networkConfig, // обязательные параметры
autoScrollToLatest = true,
linkPreviewEnabled = true
)
val components = ChatComponents(
applicationContext,
typography = ednaTypography
).apply {
navigationBarStyle = navigationBarStyle.copy(closeButtonEnabled = false)
chatMainComponent.iconsTintColor = R.color.light_icons
}

val flows = ChatFlows(components).apply {
searchFlow.loaderStyle?.tintColor = R.color.white_color
chatFlow.navigationBar.toolbarHeaderText.text?.text = "Edna Chat"
chatFlow.navigationBar.toolbarSubtitleText.text?.text = "Subtitle"
chatFlow.navigationBar.backgroundColor = R.color.blue_color
chatFlow.navigationBar.statusBarColor = R.color.blue_color_dark
chatFlow.outcomeMessages.chatBubble.tintColor = R.color.white_color
chatFlow.outcomeMessages.mainText.textColor = R.color.black_color
chatFlow.outcomeMessages.timeText.backgroundColor = R.color.black_color
chatFlow.outcomeMessages.statusIcons = chatFlow.outcomeMessages.statusIcons?.copy(
messageSendingStatusIcon = R.drawable.ecc_message_sent,
messageSendingStatusColor = R.color.blue_color
// так же для остальных статусов
)
chatFlow.highlightingColor = R.color.light_highlighting
chatFlow.incomeMessages.openGraphLinkText.textColor = R.color.light_links
chatFlow.outcomeMessages.openGraphLinkText.textColor = R.color.dark_links
chatFlow.scrollDownButton.tintColor = R.color.gray_color
chatFlow.inputView.voiceButton.style.backgroundColor = R.color.white_color
}