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

Инструкции по миграции

Инструкции по миграции на новые версии библиотек

Переход на 4.0.0

Изменения в работе push библиотеки Chat Center 4.0.0

  • Удалена зависимость от библиотеки push-lite.
  • Удалены классы, использовавшиеся в интеграции:
  • im.threads.push.ThreadsPushBroadcastReceiver
  • im.threads.push.ThreadsPushFcmIntentService

Для корректной работы push необходимо в приложении определить собственного наследника https://firebase.google.com/docs/reference/android/com/google/firebase/messaging/FirebaseMessagingService Для передачи токена в соответствующем методе наследника нужно использовать ChatCenterPushMessageHelper.setFcmToken(...). Для обработки входящего пуша нужно использовать ChatCenterPushMessageHelper.process(...). Этот метод будет обрабатывать только пуши, содержащие флаг принадлежности к edna Chat Center origin=threads.

Пример кода интеграции:

    override fun onNewToken(token: String) {  
super.onNewToken(token)
ChatCenterPushMessageHelper.setFcmToken(token)
//your custom handling here
}

override fun onMessageReceived(message: RemoteMessage) {
super.onMessageReceived(message)
ChatCenterPushMessageHelper.process(this, message.data)
//your custom handling here
}
}

Переход с 4.1.0 на 4.2.0

Изменения в работе библиотеки Chat Center 4.2.0

  • Добавлен обязательный параметр datastoreUrl: String, который необходимо передавать перед стартом библиотеки.

Если вы не разделяете пути для отправки файлов и для работы с backend API, вы можете передать одинаковые параметры для serverBaseUrl и для datastoreUrl
Пример реализации через ConfigBuilder:

val configBuilder = ConfigBuilder(this) // this - android context  
val transportConfig = getTransportConfig(this)
configBuilder.serverBaseUrl(transportConfig.baseUrl)
.datastoreUrl(transportConfig.datastoreUrl)
.threadsGateUrl(transportConfig.threadsGateUrl)
.threadsGateProviderUid(transportConfig.threadsGateProviderUid)

fun getTransportConfig(ctx: Context?): TransportConfig? {
val sharedPreferences = PreferenceManager.getDefaultSharedPreferences(ctx)
val baseUrl = sharedPreferences.getString(PREF_SERVER_BASE_URL, null)
?: return null
val datastoreUrl = sharedPreferences.getString(PREF_DATASTORE_URL, null)
?: return null
val threadsGateUrl = sharedPreferences.getString(PREF_THREADS_GATE_URL, null)
?: return null
val threadsGateProviderUid =
sharedPreferences.getString(PREF_THREADS_GATE_PROVIDER_UID, null)
?: return null

return TransportConfig(
baseUrl,
datastoreUrl,
threadsGateUrl,
threadsGateProviderUid
)
}

Также вы можете прописать параметр через манифест:

<meta-data  
android:name="im.threads.getDatastoreUrl"
android:value="http://datastore.yourcompany.com/"/>

Переход с 4.4.0 на 4.5.0

Функционал селфи более не поддерживается. Убран метод setSelfieEnabled(boolean enabled)

Переход с 4.5.0 на 4.6.0

В версии 4.6.0 был произведен рефакторинг SDK, вследствие чего изменились некоторые импорты. Классы, которые поменяли свое расположение, теперь имеют в имени пакета путь ui или business.

Перестал быть доступен класс PrefUtils, через который можно было получить прямой доступ к настройкам SDK. Теперь для этого необходимо использовать методы из публичного API.

Переход с 4.9.0 на 4.10.0

Первое изменение - аттачменты теперь отключены по умолчанию. Для включения возможности прикрепления вложения необходимо в манифесте установить в true следующий параметр:

<meta-data
android:name="im.threads.attachmentEnabled"
tools:replace="android:value"
android:value="@bool/attachment_enabled"/>

Или можно сделать это программно с помощью метода showAttachmentsButton() при создании ConfigBuilder:

val configBuilder = ConfigBuilder(this).showAttachmentsButton()
ThreadsLib.init(configBuilder)

Второе изменение - вероятно, вам может понадобиться донастроить отображение изображений. В версии 4.10 изменились пропорции отображаемых изображений, также добавилась возможность отображать бордер для изображения и регулировать его размер. Подробнее об этом можно почитать в разделе "Отступы изображения от края баббла" раздела "Настройка внешнего вида"

Также теперь не нужно при вызове ThreadsLib.logoutClient() передавать clientId.

Переход с 4.12.0 на 4.13.0

В версии 4.13 к именам ресурсов добавился префикс "ecc" и исчез префикс "threads". То есть, например, если раньше ресурс назывался threads_ic_camera_42dp, то теперь он будет называться ecc_ic_camera_42dp. Или если раньше префикса не было, например, у ресурса ic_clear_gray_30dp, то теперь он называется ecc_ic_clear_gray_30dp. Это сделано для устранения возможных коллизий с существующими ресурсами в других модулях.

В данной версии также появилась возможность кастомизации иконок статусов для исходящих сообщений. Сделать это можно с помощью методов setMessageSendingResources(...) setMessageSentResources(...), setMessageDeliveredResources(...), setMessageReadResources(...). Также в данной версии изменился алгоритм отправки сообщений. Теперь он учитывает больше статусов, таких как delivered, enqueued, иначе по умолчанию обрабатываются иконки статусов. Так, например, по умолчанию иконка отправки не будет изменена, пока от сервера не придет статус delivered.

Переход с 4.13.0 на 4.14.0

compileSdkVersion увеличен до 33 версии

Переход с 4.16.0 на 4.17.0

Была удалена встроенная камера (класс CameraActivity, метод setUseExternalCameraApp). С текущей версии всегда будет открываться стандартное приложение камеры.

Переход с 4.17.0 на 4.18.0

Удален метод ThreadsLib.applyChatStyle(ChatStyle chatStyle). Вместо него добавлены два метода:

ThreadsLib.applyLightTheme(ChatStyle chatStyle) // для светлой темы
ThreadsLib.applyDarkTheme(ChatStyle chatStyle) // для темной темы

Если темная тема не поддерживается, достаточно вызвать applyLightTheme(ChatStyle chatStyle).

Переход с 4.21.0 на 4.22.0

Предпросмотр ссылок (OpenGraph) по умолчанию теперь выключен. Для включения в ChatStyle нужно вызывать метод enableLinkPreview().

Переход с 4.26.0 на 4.27.0

Мы заменили собственную галерею на стандартный Photo Picker. Это позволило нам также перестать запрашивать разрешения на доступ к файлам. Так же мы удалили экран "Файлы и медиа". Версия котлина обновлена до 1.8.0 для поддержки данного функционала.

В данной версии по умолчанию уровень backend api стал равен 15. Уровень можно изменить через метод setApiVersion(apiVersion: ApiVersionEnum). Доступные к изменению версии api - 15, 17, 18.