add notify, files and utils modules documentation

This commit is contained in:
Evgeny
2021-11-26 20:22:52 +03:00
parent b620780482
commit 4c7e9dfe41
4 changed files with 128 additions and 2 deletions

View File

@@ -2,12 +2,13 @@
Начиная с версии 4.0, AIO Launcher поддерживает скрипты, а точнее специальные виджеты, написанные на скриптовом языке [Lua](https://en.wikipedia.org/wiki/Lua_(programming_language)). Такие виджеты следует размещать в каталоге `/sdcard/Android/data/ru.execbit.aiolauncher/files/`. Затем их можно добавить на экран используя раздел настроек "Скрипты" или с помощью бокового меню.
Возможности скриптов ограничены, но с их помощью можно практически безгранично расширять функциональность приложения (посмотрите примеры в этом репозитории).
С помощью скриптов можно практически безгранично расширять функциональность приложения (смотрите примеры в этом репозитории).
# Изменения
* 4.0.0 - первая версия с поддержкой скриптов;
* 4.1.0 - добавлены модули `weather` и `cloud`;
* 4.1.3 - добавлены модули `notify`, `files` и `utils`.
# Функции (колбеки) жизненного цикла
@@ -79,7 +80,7 @@ ui:show_context_menu({
Здесь `share`, `copy` и `trash` - это названия иконок, которое можно узнать на сайте [Fontawesome](https://fontawesome.com/).
При нажатии на любой элемент меню будет вызван колбек `on_context_menu_click(item_idx)`, где `item\_idx` - это индекс элемента меню.
При нажатии на любой элемент меню будет вызван колбек `on_context_menu_click(item_idx)`, где `item_idx` - это индекс элемента меню.
# Системные функции
@@ -196,6 +197,39 @@ ui:show_context_menu({
Все данные возвращаются в `on_cloud_result(meta, content)`. Первый аргумент - это метаданные, либо таблица метаданных (в случае с `list_dir()`), либо строка с сообщением об ошибке. Второй аргумент - содержимое файла (в случае `get_file()`).
# Уведомления
* `notify:get_current()` - запрашивает у лаунчера текущие уведомления;
* `notify:open(key)` - открывает уведомление с указанным key;
* `notify:close(key)` - смахивает уведомление с указанным key;
Функция `notify:get_current()` запрашивает все текущие уведомления. Лаунчер возвращает их поочередно в колбек `on_notify_posted(table)`, где table - это таблица, олицетворяющая уведомление. Тот же колбек будет вызван когда появится новое уведомление. При закрытии уведомления будет вызван колбек `on_notify_removed(table)`.
Формат таблицы-уведомления:
* `key` - уникальный ключ, однозначно идентифицирующий уведомление;
* `time` - время публикации уведомления в секундах;
* `package` - имя пакета приложения, отправившего уведомление;
* `number` - цифра на бейдже уведомления, если есть;
* `importance` - уровень важности уведомления: от 1 (низкий) до 4 (высокий), 3 - стандартный;
* `category` - категория уведомления, например `email`;
* `title` - заголовок уведомления;
* `text` - текст уведомления;
* `sub_text` - дополнительный текст уведомления;
* `big_text` - текст развернутого уведомления;
* `is_clearable` - true, если уведомление смахиваемое;
* `group_id` - ID группы уведомлений.
Имейте ввиду, что стандартный виджет уведомлений AIO также делает вызов `get_current()` при каждом возврате на рабочий стол, а это значит, что при наличии виджета уведомлений все скрипты также будут получать информацию об уведомлениях в колбек `on_notify_posted()` при каждом возврате на рабочий стол.
# Файлы
* `files:read(file)` - возвращает содержимое файла или `nil` если файла не существует;
* `files:write(file, string)` - записывает строку `string` в файл (создает файл если его не существует);
* `files:delete(file)` - удаляет файл;
Обратите внимание, что лаунчер не позволяет читать и писать любые файлы. Вместо этого все файлы создаются в подкаталоге `/sdcard/Android/data/ru.execbit.aiolauncher/files/scripts` без возможности создавать подкаталоги.
# Настройки
* `settings:get()` - возвращает таблицу настроек в формате массива слов;
@@ -208,6 +242,13 @@ ui:show_context_menu({
Стандартный диалог редактирования можно заменить на свой если реализовать функцию `on_settings()`.
# Подсобные функции
* `utils:md5(string)` - возвращает md5-хэш строки (массива байт);
* `utils:sha256(string)` - возвращает sha256-хэш строки (массива байт);
* `utils:base64encode(string)` - возвращает base64-представление строки (массива байт);
* `utils:base64decode(string)` - декодирует base64-строку;
# Функции обработки данных
* `ajson:get_value(string, string)` - получает указанное значение из JSON; первый аргумент - JSON-строка, второй - инструкция для получения значения.