You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+58Lines changed: 58 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -222,6 +222,64 @@ AboutAppPlugin(
222
222
-`title` — название поля (например, «Версия»)
223
223
-`value` — значение поля (например, «1.1.0»)
224
224
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()`. Можно подписаться как на одно конкретное событие, так и на несколько:
Для предотвращения попадания тестовых данных в релизные сборки рекомендуется не задавать их явно в классе Application, а использовать реализации `DebugDataProvider`, которые можно разнести по разным `buildType`. Для release-версии следует создать пустую реализацию.
0 commit comments