Skip to content

Commit 179c791

Browse files
committed
release: update readme & changelog
1 parent d692503 commit 179c791

2 files changed

Lines changed: 65 additions & 7 deletions

File tree

CHANGELOG.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
## [Unreleased]
2-
3-
### Changes
4-
5-
- *No changes*
6-
7-
## [1.1.0] (2026-05-21)
1+
## [Unreleased]
2+
3+
### Changes
4+
5+
* Добавлена возможность добавлять пользовательские действия (`AboutAppAction`) в `plugin-about-app`.
6+
7+
## [1.1.0] (2026-05-21)
88

99
### Changes
1010

README.md

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -222,6 +222,64 @@ AboutAppPlugin(
222222
- `title` — название поля (например, «Версия»)
223223
- `value` — значение поля (например, «1.1.0»)
224224

225+
В плагин можно опционально передать список пользовательских действий — `AboutAppAction`. Каждое действие отображается отдельной кнопкой под блоком с информацией о приложении.
226+
227+
У `AboutAppAction` есть 2 варианта для использования:
228+
229+
- `AboutAppAction.Event` — при нажатии публикует переданный `DebugEvent` в шину событий панели. Это рекомендуемый способ для прикладного кода.
230+
- `AboutAppAction.Direct` — выполняет обработчик `onClick` напрямую с `Context`. Он зарезервирован для встроенных действий самой библиотеки, и в коде приложения использовать его не следует.
231+
232+
Каждый `AboutAppAction` содержит:
233+
- `title` — подпись кнопки (например, «Открыть ui-kit»)
234+
- `debugEvent` — событие, публикуемое при нажатии
235+
236+
Пример с несколькими действиями:
237+
238+
```kotlin
239+
object OpenUiKitEvent : DebugEvent
240+
object ClearCacheEvent : DebugEvent
241+
object CopyTokenEvent : DebugEvent
242+
243+
AboutAppPlugin(
244+
appInfoList = listOf(/*...*/),
245+
actions = listOf(
246+
AboutAppAction.Event(
247+
title = "Открыть ui-kit",
248+
debugEvent = OpenUiKitEvent,
249+
),
250+
AboutAppAction.Event(
251+
title = "Очистить кэш",
252+
debugEvent = ClearCacheEvent,
253+
),
254+
AboutAppAction.Event(
255+
title = "Скопировать токен",
256+
debugEvent = CopyTokenEvent,
257+
),
258+
)
259+
)
260+
```
261+
262+
Обработка событий — через `observeEvents()`. Можно подписаться как на одно конкретное событие, так и на несколько:
263+
264+
```kotlin
265+
DebugPanel.observeEvents()
266+
.filterIsInstance(OpenUiKitEvent::class)
267+
.onEach { /** Event handling logic **/ }
268+
.launchIn(lifecycleScope)
269+
```
270+
271+
```kotlin
272+
DebugPanel.observeEvents()
273+
.onEach { event ->
274+
when (event) {
275+
is OpenUiKitEvent -> { /** Event handling logic **/ }
276+
is ClearCacheEvent -> { /** Event handling logic **/ }
277+
is CopyTokenEvent -> { /** Event handling logic **/ }
278+
}
279+
}
280+
.launchIn(lifecycleScope)
281+
```
282+
225283
# Безопасность
226284

227285
Для предотвращения попадания тестовых данных в релизные сборки рекомендуется не задавать их явно в классе Application, а использовать реализации `DebugDataProvider`, которые можно разнести по разным `buildType`. Для release-версии следует создать пустую реализацию.

0 commit comments

Comments
 (0)