SIDELK
Класс SIDELK является основным интерфейсом для взаимодействия с ELK SDK. Все методы доступны через статический экземпляр SID.ELK.
Предоставляет методы для:
- Настройки интерфейса (цвета, шрифты)
- Добавления пользовательских элементов
- Обновления данных и виджетов
- Работы с кэшированными изображениями
| Характеристика | Значение |
|---|---|
| Тип | Синглтон |
| Доступ | SID.ELK |
| Статус | Только для использования после инициализации ЕЛК |
Ограничения и требования
- Инициализация обязательна — все методы требуют предварительной инициализации SID-CORE SDK
- Поток UI — методы, влияющие на интерфейс, должны вызываться в основном потоке
- Обязательные настройки — перед использованием необходимо установить:
SID.Settings.setMainSettings(
userID = "user123",
clientID = "client_456"
)
Свойства
| Свойство | Тип | Описание |
|---|---|---|
INSTANCE | SIDELK | Единственный экземпляр класса (используется внутри SDK) |
Методы
setUIMode()
fun setUIMode(uiColorMode: UIColorMode)
Устанавливает цветовой режим интерфейса ЕЛК.
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| uiColorMode | Да | UIColorMode | Режим отображения: LIGHT (светлая), DARK (темная), AUTO (автоматический) |
Пример:
SID.ELK.setUIMode(UIColorMode.DARK)
getPictureFromCache() (асинхронная)
suspend fun getPictureFromCache(url: String): Bitmap?
Асинхронно загружает изображение из кэша по URL.
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| url | Да | String | URL изображения для загрузки |
Пример:
lifecycleScope.launch {
val bitmap = SID.ELK.getPictureFromCache("https://example.com/avatar.jpg")
bitmap?.let { imageView.setImageBitmap(it) }
}
Возвращает: Bitmap — загруженное изображение или null при ошибке
getPictureFromCache() (синхронная с callback)
fun getPictureFromCache(url: String, result: (Bitmap?) -> Unit)
Синхронно загружает изображение из кэша с callback-обработкой.
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| url | Да | String | URL изображения для загрузки |
| result | Да | (Bitmap?) -> Unit | Callback-функция, принимающая результат загрузки |
Пример:
SID.ELK.getPictureFromCache("https://example.com/avatar.jpg") { bitmap ->
bitmap?.let { imageView.setImageBitmap(it) }
}
updateWidgets()
fun updateWidgets()
Обновляет все виджеты ЕЛК, кроме корневого элемента. Вызывайте при изменении данных пользователя или настроек.
Пример:
// После изменения данных профиля
SID.ELK.updateWidgets()
setUIPreferences()
fun setUIPreferences(preferences: SIDPreferencesELK)
Устанавливает настройки интерфейса ЕЛК (цвета, шрифты, тексты).
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| preferences | Да | SIDPreferencesELK | Объект с настройками интерфейса ЕЛК |
Пример:
val config = SIDPreferencesELK(
themeColor = SIDColorELK(light = Color.BLUE, dark = Color.CYAN),
primaryColor = SIDColorELK(light = Color.GREEN, dark = Color.MAGENTA),
fonts = SIDFontsELK(semiBoldResID = R.font.roboto_semibold)
)
SID.ELK.setUIPreferences(config)
setProfileUrl()
fun setProfileUrl(url: String)
Устанавливает URL эндпоинта профиля пользователя для загрузки данных.
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| url | Да | String | Адрес API для загрузки профиля пользователя |
Пример:
SID.ELK.setProfileUrl("https://api.example.com/profile")
addCustomElement()
fun <T : Any> addCustomElement(
elementName: String,
filterCondition: (T) -> Boolean,
entityConvertor: (ELKCustomElement<*>) -> T,
shimmer: @Composable (Modifier) -> Unit,
content: @Composable (T, SIDPartnerColors, Modifier, () -> Unit) -> Unit
)
Добавляет пользовательский элемент в интерфейс ЕЛК.
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| elementName | Да | String | Уникальное имя пользовательского элемента |
| filterCondition | Да | (T) -> Boolean | Функция-фильтр для определения условий отображения элемента |
| entityConvertor | Да | (ELKCustomElement<*>) -> T | Функция-конвертер для преобразования данных элемента |
| shimmer | Да | @Composable (Modifier) -> Unit | Composable-функция для отображения состояния загрузки (шиммер) |
| content | Да | @Composable (T, SIDPartnerColors, Modifier, () -> Unit) -> Unit | Основная Composable-функция для отображения элемента |
Пример:
SID.ELK.addCustomElement(
elementName = "PromoCard",
filterCondition = { it.isActive },
entityConvertor = { customElement ->
PromoData(
title = customElement.title ?: "",
imageUrl = customElement.picture
)
},
shimmer = { modifier ->
Box(
modifier = modifier
.fillMaxWidth()
.height(100.dp)
.shimmerEffect()
)
},
content = { data, colors, modifier, onClick ->
Card(
modifier = modifier
.fillMaxWidth()
.clickable { onClick() },
backgroundColor = Color(colors.primaryColor)
) {
Column {
Text(text = data.title)
// ... остальной контент
}
}
}
)
updateBadge()
fun updateBadge()
Обновляет данные и состояние бейджа ЕЛК.
Пример:
// После изменения данных, влияющих на бейдж
SID.ELK.updateBadge()