MyTetroid – Android приложение

ВНИМАНИЕ:

1) У кого долго открываются/создаются записи...

У кого на Android 11+ после обновления на GooglePlay с версии 4.6 на версию 5+ приложение долго открывает/создает записи, можете использовать версию приложения в маркете ruStore (Free, Pro), где доступно разрешение на доступ ко всем файлам устройства.

Это связано с тем, что Google ужесточает требования безопасности, и для доступа к файловой системе требуется использовать более безопасные, но значительно менее быстрые механизмы (DocumentFile API вместо классического File API).

Запросить у пользователей разрешение и использовать "классический" доступ к файлам Google Play не позволил, т.к., судя по всему, не посчитал это критичным для приложения (т.к. MyTetroid - это не файловый менеджер).

Чуть более подробно в разделе "Разрешения".

2) У кого не устанавливается/не обновляется Pro версия из Google Play...

У кого не устанавливается/не обновляется Pro версия из Google Play, приложение доступно в маркете RuStore (Free, Pro).

GooglePlay отключил возможность устанавливать платные приложения или их обновления от разработчиков из России.

Также вот ссылка на apk последней стабильной версии 4.6: https://disk.yandex.ru/d/Kj2N7n4LFwg-UA


Mytetroid — менеджер заметок, персональная база знаний на телефоне.

Позволяет упорядоченно хранить информацию в виде заметок, рассортированных по веткам и снабжёных тегами.
В визуальном редакторе можно выполнить любое форматирование текста, создавать списки, вставлять изображения и прочее.
Благодаря гибкому глобальному поиску можно всегда найти нужное.
Шифрование веток позволяет защитить важную информацию от раскрытия.
К записям можно прикрепить любые файлы.
С помощью виджета на рабочем столе можно легко создавать быстрые заметки.

Если вам надоело выискивать ранее сохраненную информацию среди 100500 разрозненных закладок в браузере, текстовых файлов, разбросанных по всему жесткому диску, заметок в социальных сетях и других еще менее очевидных источников, то эта программа для вас.

MyTetroid - это неофициальная Android версия настольной программы MyTetra.

MyTetra — полнофункциональный кроссплатформенный менеджер заметок (PIM-manager) на ПК (Windows/Linux/Mac), использующийся для сбора и накопления различного рода информации. Все записи (заметки, статьи) организуются в древовидную структуру, а так же снабжаются ключевыми словами-тегами, позволяющими быстро находить нужные записи. Ссылки между записями, прикрепляемые файлы, шифрование, развернутый поиск, синхронизация, копирование из браузера, кроссплатформенность, один из лучших визуальных WYSIWYG редакторов текста - все это есть в PIM-менеджере MyTetra.

Хранилище данных реализовано в виде множества html-файлов, структура которого хранится в xml, а настройки в файлах ini. Подробнее о формате хранения данных в MyTetra здесь.

Для шифрования используется открытая библиотека RC5-Simple, реализующая алгоритм RC5-32/12/16 c CBC-режимом сцепления. Также используется реализация алгоритма хеширования Pbkdf2 для хорошего перемешивания бит пароля и сильного замедления перебора. О системе шифрования в MyTetra подробнее здесь и здесь.

Лицензия: GPL v.3

Скачать из RuStore Доступно в Google Play

Версия Pro (описание ниже):

Скачать из RuStore Доступно в Google Play (Pro)

Репозиторий проекта: https://github.com/gee12/MyTetroid

Оригинальный проект MyTetra: https://webhamster.ru/site/page/index/articles/projectcode/105

Политика конфиденциальности


Функционал

Основной функционал приложения на данный момент:

  • использование существующего хранилища или создание нового
  • древовидная структура веток (шторка слева), списки записей в ветках и прикрепленных файлов к записям, как в оригинальной программе
  • просмотр, добавление, изменение, копирование, вырезание и удаление веток, записей и прикрепленных файлов
  • быстрое создание записей с помощью виджета на рабочем столе
  • расшифровка закрытых веток, записей и файлов
  • сохранение прикрепленных файлов по выбранному пути
  • отдельный список меток записей (шторка справа)
  • открытие каталога записи (в стороннем файловом менеджере)
  • глобальный поиск по всем объектам хранилища
  • использование внутренних ссылок на ветки, записи и метки
  • голосовой ввод текста заметок
  • экспорт текста заметок в pdf
  • просмотр статистических данных о хранилище
  • некоторые опциональные возможности:
    • установка нового или изменение текущего пароля хранилища с перешифровкой данных
    • хранение пароля локально на устройстве или ввод при необходимости
    • расшифровка прикрепленных файлов во временный каталог
    • запуск с открытием ветки, выбранной в прошлый раз
    • запись логов в файл
    • полноэкранный режим и блокировка отключения экрана при просмотре записи
    • отслеживание изменений дерева записей "извне"
    • указание ветки по-умолчанию для новых "быстрых" записей
    • темная тема

Визуальный редактор текста заметок поддерживает:

  • форматирование шрифта (толщина, курсив, размер, цвет, фон и т.д.)
  • форматирование абзацев (отступ, список, выравнивание и т.д.)
  • вставка гиперссылок, изображений и захват фото с камеры
  • работа с таблицами
  • команды для работы с выделением и буфером обмена
  • редактирование исходного html-кода заметки

В версии Pro на данный момент добавлено:

  • использование нескольких хранилищ
  • список избранных записей
  • история открытия объектов хранилища: записей, веток, меток, прикрепленных файлов
  • дата последнего изменения содержимого записи
  • запрос ПИН-кода для расшифровки веток при локальном хранении пароля
  • переименование меток (у всех записей, в которых метка добавлена)
  • голосовой ввод текста записей
  • создание пользовательских Javascript-сценариев (скриптов)

Для проверки работы приложения можно использовать тестовое хранилище.

Ветки, записи, метки, файлы:

Текст записи, редактирование, html-код:

Глобальный поиск, статистика:

Настройки:

Описание настроек MyTetroid.

Опция Тип значения Краткое описание Доп.информация

Хранилище

Каталог хранилища Путь к каталогу в файловой системе устройства

Путь к каталогу, содержащему данные хранилища

Каталог, содержащий файлы mytetra.xml, database.ini, каталог base/

Загружать предыдущее Да/Нет При запуске загрузка хранилища, используемого в прошлый раз  
Каталог корзины Путь к каталогу в файловой системе устройства Путь к каталогу, куда перемещаются неактуальные данные хранилища для последующего восстановления при необходимости

В каталог перемещаются следующие данные:

* исходный файл mytetra.xml перед любыми изменениями дерева записей (изменение веток/записей/меток и т.д.)

* каталоги записей при удалении записей/веток

* каталоги записей при вырезании записей/веток. При вставке эти данные перемещаются обратно в каталог хранилища

Очистить корзину - Удаление содержимого каталога корзины  
Ветка для быстрой вставки Ветка хранилища Ветка по-умолчанию для записей, созданных с помощью виджета или при отправке данных сторонними приложениями

У записей, созданных указанными способами, по-умолчанию устанавливается указанная ветка

Загружать только избранное (Pro) Да/Нет Для ускорения запуска загружать сначала только избранные записи

Опция доступна только в версии Pro.

Остальные записи можно загрузить позже при необходимости.

Выбирать прошлую ветку Да/Нет При запуске открывать ветку, активную в прошлый раз  

Шифрование

Установить пароль - Установка пароля хранилища

Установленный пароль будет использоваться для шифрования данных хранилища.

При этом будет изменен файл database.ini

Сменить пароль - Изменение пароля хранилища

При сохранении нового пароля начнется перешифрация всех зашифрованных данных на новый пароль.

При этом будет изменен файл database.ini

Сохранять пароль Да/Нет Сохранение хэша пароля хранилища локально в памяти устройства

При установке будет запрошен пароль хранилища и его хэш будет сохранен в настройках приложения.

При этом будет изменен файл database.ini

Использовать ПИН-код

Да/Нет,

Число (длиной 4-8 цифр)

Установка ПИН-кода, который будет запрашиваться вместо пароля, но при этом пароль должен быть сохранен локально (см.опция "Сохранять пароль")

Опция доступна только в версии Pro.

ПИН-код может использоваться как компромиссное решение между вводом пароля (каждый раз при обращении к зашифрованным данным) и свободным доступом к зашифрованным данным, когда пароль уже сохранен в памяти устройства.

Значение ПИН-кода сохраняется в памяти устройства в зашифрованном виде с помощью того же ключа шифрования, использованного для шифрования хранилища.

На запрос ПИН-кода влияют опции "Запрос пароля" и "Закрывать ветки".

Запрос пароля При выборе зашифрованной ветки / При загрузке хранилища Когда необходимо запрашивать пароль и расшифровывать данные ?

Опция доступна, только если не включена опция "Сохранять пароль".

Если установлен вариант "При загрузке хранилища", то перед загрузкой хранилища будет запрошен пароль (либо ПИН-код, если установлена соответствующая опция).

Если пароль будет введен, то зашифрованные ветки будут сразу расшифровываться.

Если пароль не будет введен, то зашифрованные ветки будут загружены как закрытые.

Если установлен вариант "При выборе зашифрованной ветки", то пароль может быть запрошен уже после загрузки хранилища, при выборе любой зашифрованной ветки.

Расшифровывать файлы в каталог Да/Нет Расшифровка прикрепленных файлы в каталог корзины при их открытии Если опция не установлена, то открыть прикрепленные файлы зашифрованных записей не удастся

Синхронизация

Синхронизация хранилища Да/Нет Включение механизма передачи стороннему приложению команд запуска синхронизации хранилища

Поддержка приема команд синхронизации поддерживается в приложениях:
* MGit (
в неофициальной версии приложения: код, apk) - подерживается только pull
* Termux - поддерживается отправка любой команды/скрипта, которые могут выполняться в среде Termux

Приложение MGit / Termux Приложение для выполнения команды синхронизации

 

Команда синхронизации Строка Команда или скрипт синхронизации

Например: git hull или ~/sync.sh
Можно использовать макрос %a для получения пути к каталогу хранилища

Синхронизровать перед загрузкой Да/Нет Автоматически запускать синхронизацию перед загрузкой хранилища

 

Спрашивать перед запуском Да/Нет
Выводить подтверждение запуска синхронизации

Зависит от опции "Синхронизровать перед загрузкой"

Синхронизировать при выходе Да/Нет Автоматически запускать синхронизацию при выходе из приложения

 

Спрашивать перед запуском
Да/Нет
Выводить подтверждение запуска синхронизации при перед выходом из приложения

Зависит от опции "Синхронизровать при выходе"

Отслеживать изменения извне Да/Нет Проверка дерева записей на изменение сторонними программами

Если опция установлена, будет запущен специальный сервис, осуществляющий мониторинг модификации файла mytetra.xml.

Если файл будет изменен сторонним приложением (например, дерево записей было изменено на другом устройстве и приложение-синхронизатор моментально внесло эти изменения), то на главном окне приложения будет выведен диалог с просьбой перезагрузить хранилище.

Редактирование

Режим редактирования Да/Нет Открытие записи сразу в режиме редактирования, а не просмотра  
Сохранять автоматически Да/Нет Сохранение изменений записи автоматически при завершении редактирования

Запись будет сохранена автоматически при:

* скрытии окна редактирования записи с экрана (например, если приложение будет свернуто или "перекрыто" другим приложением)

* при выходе из окна редактирования записи

* переходе из режима редактирования в режим просмотра или редактирования html-кода

Исправлять html при сохранении Да/Нет Исправление html-текста записи для корректного отображения в MyTetra

Опция добавлена для исправления ситуации, когда после редактирования записи в приложении, в MyTetra у этих записей очищался текст из абзацев, содержащих свойство стиля "-qt-paragraph-type:empty;".

Например, в таких абзацах:

текст

Такое поведение связано с особенностями Qt-библиотеки для работы с html-текстом, которая используется в MyTetra.

-qt-paragraph-type - это Qt-специфичное CSS свойство (документация). Может принимать, судя по всему, только одно значение "empty", что означает скрытие блока текста.

А приложение MyTetroid для работы с html-текстом использует стандартный для Android движок Chromium, который ничего не знает о свойстве "-qt-paragraph-type", поэтому не обрабатывает его так, как MyTetra.

Если опция установлена, то перед сохранением записи из всех не пустых абзацев (с текстом) будет удалено свойство "-qt-paragraph-type".

Отображение

Тема приложения Как в системе / Светлая / Темная Цвет интерфейса приложения  
Тема редактора текста Как в теме приложения / Светлая / Темная Цвет фона и текста в редакторе

Темная тема в редакторе текста заметки делает инверсию цветов, но только визуально.

Например, если в исходной html разметке содержится черный текст на белом фоне, то в результате будет отображаться белый текст на черном фоне. При этом html разметка самой заметки изменена не будет.

Не гасить экран Да/Нет Отключение функции затемнения/блокировки экрана, когда запись открыта  
Показывать свойства записи Отображать / Не отображать / Отображать если заполнено Показывать панели со свойствами записи при ее открытии  
Размер кнопок в редакторе Маленький / Средний / Большой Размер кнопок в панели инструментов редактора текста (внизу экрана) Размер кнопок до того, как была добавлена эта настройка, соответствовал значению "Средний"
Подсвечивать записи с файлами Да/Нет Включение подсветки записей с прикрепленными файлами  
Подсвечивать зашифрованные ветки Да/Нет Включение подсветки зашифрованных веток  
Цвет подсветки Цвет Установка цвета подсветки  
Формат даты Строка форматирования Строка форматирования даты создания/времени создания записи Указанный формат используется для отображения даты/времени создания записи в списке записей
Отображаемые свойства записей Автор / Метки / Дата создания / Дата изменения (Pro) Свойства записей, отображаемые в списке  


Управление

Полноэкранный режим при двойном касании
Да/Нет
Включение/отключение полноэкранного режима при двойном касании по пустому месту экрана
 
Разворачивать пустые ветки Да/Нет
Разворот пустой ветки вместо открытия списка ее записей  
Показывать ветки при нажатии Back Да/Нет
Показывать дерево веток при нажатии на кнопку Back, вместо выхода из приложения  
Подтверждать выход
Да/Нет
Выводить диалог подтверждения выхода из приложения
 

Остальное

Показать логи - Открытие окна с логами работы приложения

Если опция "Записывать логи в файл" включена, то будет отображено содержимое лог-файла.

Иначе - логи текущего сеанса запуска приложения.

Записывать логи в файл Да/Нет Логирование событий приложения в файл

Имя лог-файла будет иметь имя в следующем формате:

.log

Например, для версии Pro имя будет такое:

MyTetroid Pro.log

Каталог логов Путь к каталогу в файловой системе устройства Путь к каталогу, содержащему лог-файл  
Очистить историю поиска - Удаление подсказок при вводе запроса поиска (фильтрации) и параметров глобального поиска  

 

Список разрешений, которые может запрашивать приложение:

Разрешение Обязательное Описание

Доступ ко всем файлам устройства

да

Запрашивается:

  • начиная с версии 5.3.2
  • на устройствах с API 30+ (Android 11+)
  • только на версиях приложения, скачанных из RuStore

Доступ необходим, чтобы размещать хранилище данных в любом месте файловой системы, и использовать его сторонними приложениями, если это потребуется (например, для синхронизации данных с другими устройствами с помощью Syncthing).

Также, данное разрешение позволяет ускорить работу с большими хранилищами (состоящие из большого количества файлов) за счет использования более быстрого File API взамен DocumentFile API на устройствах с версией API > 29.

Чтение и запись в память устройства и SD-карты да

Запрашивается на версиях приложения, скачанных из GooglePlay.

Нужен для работы с файлами хранилища данных

На версиях Android ≥ 10, кроме предоставления данного разрешения,  требуется также выбор каталога хранилища данных в специальном диалоге (SAF).

Также, в некоторых случаях, в данном диалоге сначала потребуется выбрать корневой каталог файлового хранилища устройства (или карты памяти), а потом уже непосредственно каталог хранилища данных (базы знаний). Для этого будет выведено соответствующее уведомление.

Использование камеры нет Для захвата изображений с камеры и их вставки в текст заметки
Запись звука нет Для голосового ввода текста заметки
Запуск команд Termux нет Для запуска bash-команд внутри оболочки Termux, если Termux был выбран для синхронизации

Благодаря простому устройству хранения данных в программе, можно настроить их синхронизацию через интернет с помощью систем облачного хранения или систем контроля версий.

Примечание...

Хоть вступление и звучит довольно обнадеживающе, но процесс настройки синхронизации может быть как увлекательным времяпровождением (если вы гик или любите делать эксперименты), так и скучным, мучительным и травмоопасным (если вы любите кнопки типа "Запустить автонастройку в 1 клик и забыть")

О синхронизации данных в MyTetra через интернет и с помощью Git подробнее здесь.

Если вкратце, синхронизировать данные между ПК и Android можно с помощью:

  • Syncthing - программа непрерывной синхронизации файлов. Синхронизирует файлы между двумя или более устройствами в режиме реального времени. Имеются клиенты на различные платформы. Кто не пробовал - рекомендую. 
  • клиентов облачных хранилищ (например, Google Drive, Яндекс.Диск, Dropbox, Mega и др.). Могу посоветовать семейство условно бесплатных приложений AutoSync от разработчика MetaCtrl.
  • клиентов систем контроля версий (например, Git). Описано у меня здесь и еще подробнее здесь. Для Android<7 могу посоветовать платное приложение PocketGit или бесплатное MGit (о нем ниже). Для версий Android >= 7 можно использовать Termux.


Автоматизация синхронизации (не окончено)

Изначально планировалось запускать синхронизацию хранилища, посылая "команды" другим сторонним приложениям (git-клиентам, WebDAV-клиентам). Это удобно, например, когда нужно автоматически обновить данные перед их открытием, или сохранить изменения при выходе из приложения. Но для этого нужно реализовать поддержку этого функционала в этих приложениях, что не всегда возможно.

На данный момент прием команд на синхронизацию от MyTetroid поддерживается в:

  • git-клиенте MGitмоем форке). Кому нужен скомпиллированный .apk с нововведением, пока оно не внесено в официальную версию, его можно скачать отсюда. На данный момент поддерживается только команда pull. Реализация других команд была приостановлена, но, скорее всего, разработка будет возобновлена.
  • Linux-оболочке на Android - Termux. Поддерживается передача команды или файла bash-скрипта на выполнение Termux.

С официальными клиентами облаков, такими как Google Drive, Яндекс.Диск, Dropbox и прочими, ничего не выйдет, т.к. они закрыты (так что при их использовании синхронизацию нужно запускать вручную).

Еще подробнее здесь.

На данный момент поддерживается импорт данных из таких менеджеров заметок:

Менеджер заметок Конвертер Описание
TomBoy 

TomBoy2MyTetraConverter

(релиз 1.2.0, exe/deb)

Преобразование файлов заметок TomBoy в файлы хранилища MyTetra

Скрипты - это Javascript-сценарии, позволяющие добавить дополнительный функционал в редактор текста заметок, наподобие плагинов.

Список скриптов

Например, в стандартных скриптах (см. ниже) добавлена возможность изменения сортировки строк таблиц в заметке, а также подсчет итоговой суммы по колонке таблицы, и прочее.

Можно добавлять свои скрипты, либо использовать стандартные (предполагается, что список стандартных скриптов будет расширяться), либо модифицировать стандартные под свои нужды.

Javascript-код скриптов хранится в файлах, которые располагаются в подкаталоге scripts каталога хранилища (рядом с подкаталогом base).

Скрипты могут быть включены сразу для всего хранилища, либо, при необходимости, только для определенной ветки или записи.

Примечание:

Если скрипт включен сразу для всего хранилища (или определенной ветки), то его нельзя отдельно отключить для какой-либо записи этого хранилища (или этой ветки).


Ограничения

 
Возможности расширения функционала довольно широки, но есть некоторые ограничения:
 
1) Версия Android, а точнее версия WebView и веб-движка Chrome (ASW), который запускает javascript-сценарии, может быть устаревшей.
 
Android System WebView (ASW) - компонент в системе Android для отображения веб-контента в приложениях.
 

Подробнее об ASW

Материалы:
ASW - описание на оф.сайте chromium
ASW - приложение на 4pda.ru
 
Начиная с Android 4.4 WebView основан на Chrome, а до этого - на WebKit.
 
В Android 4.4 ASW был встроен в систему и обновлялся вместе с ней, а начиная с Android 5 - поставлялся как отдельное приложение, которое можно было обновить прямо из Google Play.
 
Начиная с Android 7 WebView использовался на основе Chrome (было опцией по-умолчанию на устройстве).
Но в Android 10 WebView снова стал отдельной компонентой, разделенным кодом между ним и Google Chrome.

Версии движка Chrome в Android

(данные собирал самостоятельно, есть неточности)
 

Версия Android

WebView (Chrome for Android)

<4.4

WebKit

4.4

30.0.0.0 (документация)

4.4.3

33.0.0.0

4.4.4

?

5.0-6.0.1

Отдельное приложение ASW (версия 39)

7.0-9

Соответствовал версии приложения Chrome.

Но, фактически на Android 7.0 было:

    Приложение ASW - версия 64

    Приложение Chrome - версия 119

10+

Отдельное приложение ASW (опять)

Доступность выражений/методов Javascript, в зависимости от версии движка Chrome, можно посмотреть на сайте developer.mozilla.org в разделе "Совместимость с браузерами".
 

Таблица доступности некоторых из них (для примера)

Выражение/метод

Поддерживается, начиная с версии движка Chrome:

const

isNaN

30 (Released 2013-12-09)

let

49 (релиз 2016-03-09)

В 41-48 в режиме Strict mode

Template strings ``

41 (Released 2015-03-11)

Array.from

45 (Released 2015-09-01)

forEach

map

37 (Released 2014-09-03)

for

30 (Released 2013-12-09)

for...of

38 (Released 2014-10-08)

Element.querySelector()

Element.querySelectorAll()

Node.appendChild

sort

30 (Released 2013-12-09)

Element.append()

54 (Released 2016-10-19)

Method definitions

39 (Released 2014-11-12)

Async methods

55 (Released 2016-12-06)

Arrow functions (anonymous)

45 (Released 2015-09-01)

Default parameters

49 (Released 2016-03-09)

Примечание:

Стандартные скрипты были написаны с совместимостью запуска в WebView на Android 4.4, поэтому пришлось отказаться от многих удобных конструкция языка в стандартных скриптах.

Но даже при этом могут быть проблемы. Например, может не работать событие "долгого клика" в таблицах, что сказывается на скрипте "Итоги таблиц". И т.д. и т.п.

2) Синхронизация хранилища с настольной версией MyTetra.


Т.к. настольная версия программы (MyTetra) имеет html-редактор текста заметок, поддерживающий ограниченный набор конструкций языка разметки html, то неизвестные ему конструкции (теги, атрибуты) удаляются при чтении заметки.
Т.е. изменения в тексте заметки, сделанные с помощью скриптов в приложении, могут быть утрачены после синхронизации с настольной версией программы.
Это довольно сильное ограничение для тех, кто использует настольную версию.

Например, в тексте заметки можно создать спойлеры (тег details в html) - элементы, с помощью которых можно скрыть или показать нужную информацию по клику на галочке.
Но после открытия заметки со спойлерами в настольной версии программы, спойлеры будут удалены из текста.

Это ограничение можно обойти, только если переписать MyTetra с использованием другого html-движка для редактора текста.

Сейчас в MyTetra редактор текста основан на классе QTextEdit.

Подробнее про QTextEdit

QTextEdit - это продвинутый просмотрщик / редактор WYSIWYG в Qt, поддерживающий форматирование текста с использованием подмножества разметки HTML 4 или Markdown.

Supported HTML Subset - здесь описаны поддерживаемые теги, атрибуты и прочее.

В перспективе, в настольной MyTetra нужно рассмотреть возможность использования QtWebKit, который предоставляет собой полнофункциональный веб-движок, основанный на WebKit.

Примечание:

Стандартные скрипты были написаны так, чтобы итоговый текст заметок был совместим с настольной версией программы.


Стандартные скрипты

 

Список стандартных скриптов может пополниться в будущем.

 

Сортировка таблиц

Строки таблицы будут отсортированы при клике на заголовке колонки.

Исходный код: table_sort.js

Итоги таблиц

Будет отображена итоговая сумма по колонке таблицы во всплывающем окне при долгом клике на ее заголовке.

Исходный код: table_totals.js

Адрес ссылки

При долгом клике по заголовку ссылки будет отображен ее URL-адрес во всплывающем окне.

Исходный код: link_url_tooltip.js


Написание скриптов

 

Содержимое заметок хранится в html файлах (text.html). Для его отображения используется Android-компонент WebView, который обрабатывает содержимое как обычную веб-страницу.

Для редактирования заметки WebView позволяет взаимодействовать с содержимым веб-страницы на языке Javascript, используя событийную модель обмена данными с кодом самого Android-приложения (оф.документация).

В данный момент специально для работы скриптов используются 2 события:

  • addOnAfterLoadHtmlContentEventListener - обработчик события, который вызывается после загрузки html кода заметки, Javascript кода редактора и кода самого скрипта.

Например, во всех стандартных скриптах это событие используется для установки обработчиков определенных действий пользователя (а по факту - событий элементов разметки). Например, в скрипте "Сортировка таблиц" так устанавливается обработчик нажатия на заголовках столбцов таблиц, чтобы запустить сортировку их строк:

RE.addOnAfterLoadHtmlContentEventListener(function () {
    setTablesCallbacks();
});

  • addOnBeforeSaveHtmlContentEventListener - обработчик события, который вызывается перед сохранением html кода заметки (в файл text.html).

Например, в стандартных скриптах "Итоги таблиц" и "Адрес ссылки" это событие используется для удаления (возможно) отображаемого в данный момент всплывающего окна перед сохранением заметки, чтобы оно не попало в результирующий html код заметки:

RE.addOnBeforeSaveHtmlContentEventListener(function () {
    removeTooltips();
});

Более детально ознакомиться с механизмом работы можно, изучив код стандартных скриптов (.js файлы скриптов сохраняются в подкаталог scripts каталога хранилища) и редактора текста заметки (файл editor.js, версия файла из ветки dev).


Что еще планируется реализовать

 
  • добавить возможность вызова или включения/отключения скриптов из панели инструментов редактора
  • добавить параметр в каком режиме скрипт должен работать: только при просмотре текста, только при редактировании, либо в обеих
  • добавить подсветку синтаксиса javascript кода в окне редактирования скрипта
  • добавить проверку валидности javascript кода в окне редактирования скрипта
  • добавить другие стандартные скрипты, например:
    • Совместимые с настольной версией программы:
      • Перемещение строки таблицы вверх/вниз (изменение очередности строк вручную)
      • Перемещение столбца таблицы влево/вправо (изменение очередности столбцов вручную)
      • Блочное выделение текста
    • Несовместимые с настольной версией программы:
      • Отображение спойлеров в тексте
      • Отображение checkbox'ов в тексте
    • Требующие сторонние библиотеки / подключение к Интернету:
      • Подсветка синтаксиса блоков кода на различных языках программирования
      • Перевод текста заметки на другой язык
      • Проверка орфографии текста

В целом приложение повторяет функционал MyTetra. Но есть и отличия, вот некоторые из них:

Функционал MyTetroid MyTetra
Работа с несколькими хранилищами

Поддерживается, начиная с версии 5.0 (пока только 1 база одновременно)

С помощью специальной функции в Android (н-р, в Xiaomi), или с помощью специальных приложений (например, Clone App) можно создать несколько "клонов" MyTetroid на устройстве, настроенных на использование разных хранилищ.

Пока не реализовано (разрабатывается в ветке basesManagement).

Возможен запуск нескольких Portable экземпляров программы, настроенных на разные хранилища

Загрузка из интернета

Поддерживается скачивание и вставка содержимого веб-страницы и изображений по ссылке (URL) отдельными командами

Поддерживается прикрепление файла к записи по ссылке (скачивание по URL)

Поддерживается прикрепление файла к записи по ссылке (скачивание по URL)

Работа с буфером обмена

При копировании текста веб-страницы в текст записи, изображения не копируются (планируется реализовать)

Поддерживается разные режимы вставки содержимого из буфера обмена, в зависимости от его типа (изображение / URL-ссылка / форматируемый html-текст / только текст и т.п.)

При копировании текста веб-страницы в текст записи, копируются и изображения (скачиваются отдельными файлами в каталог записи)

Сохранение файла mytetra.xml

Исправлено в версии 4.0

Есть некоторые отличия от формата сохранения файла в MyTetra. Н-р, двойные/одинарные кавычки в первой строке <!--?xml... , отступы.

Отличия несущественные, т.к. касаются форматирования текста, но их достаточно, чтобы git запустался и не смог сделать построчное слияние файлов.

Это связано с тем, что для сохранения файла mytetra.xml использовался класс XmlSerializer, при работе с которым нет гибкой настройки вывода текста.

-
Движок работы с html текстом записи

Стандартный механизм Android: WebView + редактирование записи с помощью JavaScript.

В некоторых случаях есть отличия в отображении текста, по сравнению с MyTetra. Например:

  • текст, введенный в абзацы, содержащие атрибут стиля "-qt-paragraph-type:empty;", в MyTetra очищался. Исправлено в версии 3.4
  • в MyTetroid в некоторых случаях используется тег
    вместо
    , как в MyTetra

    • стиль линий (границ) таблиц: в MyTetra - одинарные линии, в MyTetroid - двойные

    Также, имеется следующая "особенность": скопированный из браузера и сохраненный в MyTetroid текст потом при открытии в MyTetra может отображаться без отступов на новые строчки. Это может быть связано с отсутствием в скопированном html-коде абзацев

    или отступов
    , просто как текст с символами перевода строк, не обернутый в блочные теги.

Встроенный редактор WyEdit, используемый библиотеки Qt.

Используется "подмножество" синтаксиса языка html, поэтому при копировании html-текста в редактор записи, "лишние" неподдерживаемые тэги будут заменены либо удалены из кода.

Лишние файлы в каталоге записи Файлы, не принадлежащие записи, игнорируются. Любые файлы, не принадлежащие записи, будут удалены в корзину
Ссылки на объекты хранилища Поддерживаются ссылки на записи, а также на ветки и метки Поддерживаются ссылки на записи
Избранные записи

Добавлена специальная ветка "Избранное" для хранения избранных записей (в версии Pro).

При добавлении записи в избранное сама запись никуда не перемещается и все равно хранится в исходной ветке. Id избранных записей хранятся в настройках приложения.

В идеале необходима поддержка сохранения пометки "избранности" записи в файле mytetra.xml (н-р, атрибут favor в тэге record). Но этот атрибут должен поддерживаться и MyTetra, иначе будет перезатираться.

Не реализовано
     

Разрабатывается в данный момент:

  • исправление багов
  • пользовательские js-скрипты в заметках
  • работа с таблицами
  • изменение размера изображений
  • темная тема
  • работа с несколькими хранилищами

Свои пожелания присылайте на почту yagee12@gmail.com или оформляйте в виде issue на github.

Известные, но пока не исправленные ошибки в приложении:

Ошибка Описание
Карта памяти На некоторых устройствах не удается загрузить или редактировать хранилище, находящееся на карте памяти. Для устранения ошибки нужно больше информации. При возникновее у вас подобного - отзывайтесь.
Открытие каталога записи Существует проблема с открытием каталога записи в сторонних файловых менеджерах.

О найденных ошибках пишите на почту yagee12@gmail.com или создавайте issue на github.

Описание версий MyTetroid.

5.10 (07.07.2024) (версия для ruStore)

  • Исправлено падение приложения при прокрутке формы выбора изображений на устройствах с небольшим объемом ОЗУ (ошибка OutOfMemoryError).

  • Исправлена загрузка изображений по URL на устаревших устройствах Android 4.4-4.4.4 (ошибка SSLHandshakeException), которые не умеют работать с актуальными версиями протоколов TLS, SSL.

  • Исправлен баг: добавлена перезагрузка списка меток после расшифровки хранилища. Раньше могло отображаться "Метки отсутствуют".

  • Добавлен запуск глобального поиска по кнопке "Search" на экранной клавиатуре (или "Enter" на физической клавиатуре).

5.9 (15.06.2024) (версия для ruStore)

  • Добавлена история открытия объектов хранилища: записей, веток, меток, прикрепленных файлов (Pro)

  • Добавлены настройки добавления изображений в текст записи (формат и качество); ранее изображения всегда конвертировались в формат png и занимали много места в памяти

  • Добавлена возможность глобального поиска по имени каталога записи

5.8 (13.05.2024) (версия для ruStore)

  • Добавлены скрипты (пользовательские Javascript-сценарии, расширяющие функционал редактора текста заметок) (Pro)
  • Исправлена небольшая ошибка при удалении/вырезании записей
  • Добавлено создание каталога корзины при загрузке хранилища, если необходимо
  • Небольшие изменения интерфейса (иконки, стили)

5.7.1 (01.05.2024) (версия для ruStore)

  • Исправлен баг с установкой ПИН-кода (Pro)
  • Исправлен баг с лишними отступами в html коде после сохранения записи
  • Подправлено расположение всплывающего контекстного меню для изображения
  • Исправлено в диалоге редактирования таблицы: формат цвета линий переведен из rgb в hex
  • Убрана возможность добавления ссылок без заголовка
  • Исправлен фоновый цвет строки состояния

5.7 (03.02.2024) (версия для ruStore)

  • Добавлено открытие изображений из текста заметки в сторонних приложениях (по долгому тапу)
  • Добавлены команды для редактирования и удаления ссылок
  • Для полей ввода (EditText) добавлена кнопка (крестик) для быстрого сброса введенного текста
  • Для устройств на Android 4.4-4.4.4 изменена форма для выбора каталога хранилища в файловой системе

5.6 (15.01.2024) (версия для ruStore)

  • Добавлены команды для работы с таблицами (создание и редактирование таблиц, вставка и удаление строк и столбцов, объединение и разделение ячеек)

  • Изменен механизм запоминания изменений в тексте заметки, чтобы работало undo/redo после любых изменений

  • Исправлена вставка нескольких изображений с установленными галками "Использовать оригинальный размер" и "Установить аналогичные параметры для остальных изображений", чтобы изображения вставлялись в их оригинальном размере

5.5 (05.01.2024) (версия для ruStore)

  • Исправлена вставка многострочного текста из буфера обмена, когда добавлялись лишние теги

  • Добавлены правки в работе с файловой системой для Android 4.4-5.1

  • При вставке изображений добавлено указание размера сторон в % и с сохранением их соотношения

  • Добавлена возможность редактирования размера уже вставленных изображений

  • Другие небольшие правки

5.4.1 (18.12.2023) (версия для ruStore)

  • Исправлена передача текста и изображений в новую заметку из сторонних приложений (по Intent)

  • Несколько других небольших исправлений

5.4 (03.12.2023) (версия для ruStore)

  • Добавлена темная тема
  • Небольшие изменения и исправления интерфейса

5.3.2 (14.11.2023) (версия для ruStore)

  • Для версии на RuStore добавлен запрос спец.разрешения на доступ ко всем файлам устройства (MANAGE_EXTERNAL_STORAGE) для расположения хранилища в любом месте файловой системы (также, ускоряет работу с большими хранилищами). Google Play не одобрил запрос данного разрешения, поэтому оно будет запрашиваться только у приложения, установленного из RuStore.
  • Добавлен экран загрузки приложения (Splash screen)
  • В инструменты добавлен отступ Tab (/t)
  • Добавлен вывод Uri в форме "Инфо о хранилище"
  • Множество других небольших изменений

5.3.1 (18.06.2023) - в режиме открытого тестирования

  • Исправления

5.3 (05.06.2023) (была только в режиме открытого тестирования)

  • Исправления

5.2 (28.05.2023) (была только в режиме открытого тестирования)

  • В основном: исправления по работе с файловым хранилищем на разных версиях Android
  • Добавлено выделение записи в списке, которую открывали последней
  • Другие исправления

5.1 (11.02.2023) (была только в режиме открытого тестирования)

  • Добавлен поиск записей по нескольким меткам (по И/ИЛИ) (Pro)
  • Добавлен голосовой ввод текста заметки (Pro)
  • Добавлен экспорт заметки в pdf
  • Добавлена настройка размера кнопок в панели инструментов редактора текста
  • В панель инструментов добавлена команда вставки отступа на новую строку (
    )
  • Исправлено отображение [кол-ва записей] в ветке или метки в списке, когда имя слишком длинное

5.0, 5.0_pro (29.01.2022) (была только в режиме открытого тестирования)

  • Добавлена поддержка нескольких хранилищ (пока загружено может быть только одно):
    • добавлен пункт меню "Список хранилищ"
    • настройки разделены на общие и настройки текущего хранилища
  • В диалог выбора изображений добавлен поиск и сортировка
  • Добавлена опция "Очищать корзину перед выходом"
  • Добавлен запуск синхронизации с помощью приложения AutoSync
  • Обновлено окно просмотра информации о хранилище

4.6, 4.6_pro (03.05.2021)

  • Исправлена ошибка при захвате изображения с камеры
  • Добавлена установка иконок у веток
  • Добавлено прикрепление файлов к записям по URL
  • Добавлена вставка содержимого web-страницы или изображения по URL
  • Исправлена вставка контента из буфера обмена с помощью команд в редакторе
  • Добавлен список действий при вставке контента из буфера обмена в зависимости от его типа (например, html-текст, web-ссылка, ссылка на локальный файл, внутренняя ссылка MyTetra)
  • Добавлена вставка Youtube-видео по URL (Pro)
  • Исправлено задвоение последнего слова в команде синхронизации с помощью Termux (Pro)

4.5 (03.04.2021)

  • Исправлено: панель свойств записи теперь не будет показываться при создании записи или при включенной опции "Режим редактирования"
  • Исправлено: надпись в списке веток была видна даже при сбросе запроса фильтра
  • Исправлено: при удалении ветки добавлено обновление индикатора с количеством избранных записей
  • Исправлено: ошибка при открытии приложения из "свернутого" состояния спустя время
  • Другие исправления

4.4 (05.03.2021)

  • Добавлен "мгновенный" фильтр в списках веток, меток и записей при изменении текста запроса
  • Исправлена ошибка открытие ссылок на объекты хранилища (метки, другие записи и ветки) из записи, когда загружены только избранные записи (Pro)
  • Другие небольшие исправления

4.3 (12.02.2021):

  • Добавлено переименование меток (у всех записей, в которых метка добавлена) (Pro)
  • Добавлена поддержка передачи команды синхронизации в приложение Termux
  • Добавлен запуск синхронизации при выходе из приложения
  • Добавлена сортировка меток (по имени, количеству записей)
  • Добавлен пункт в контексное меню прикрепленных файлов "Инфо о файле"
  • Добавлена опция "Развернуть пустую ветку вместо открытия списка ее записей"
  • Добавлена опция "Показывать ветки при нажатии на Back" (вместо выхода из приложения)
  • Добавлен выбор ветки в глобальном поиске

4.2 (05.01.2021):

  • Добавлена опция "Отображаемые свойства записей" для выбора свойств записей, отображаемых в списке (автор, метки, дата создания и последнего изменения)
  • Добавлено в инфо о хранилище: путь к хранилищу, размер каталога на диске и дата последнего изменения дерева
  • Добавлена отдельная кнопка для добавления новых веток
  • Добавлена опция "Отображать панель свойств при открытии записи"
  • Добавлена кнопка Home в окне выбора каталога хранилища
  • Другие исправления

4.1 (07.12.2020):

  • Исправлены некоторые ошибки
  • Добавлено отображение меток записи в списке записей (опционально)
  • В окне выбора каталога в файловой системе добавлена команда ручного редактирования пути

4.0 (25.11.2020):

  • Исправлены различия в генерации файла mytetra.xml с MyTetra (issue)
  • Исправлено сохранение порядка записей в избранном (Pro)
  • Добавлен виджет для быстрого создания записей
  • Добавлена опция в настройках для выбора ветки по-умолчанию для вставки записей
  • Добавлен глобальный поиск по id веток, записей и файлов
  • Изменена форма для отображения настроек приложения
  • Исправлен полноэкранный режим
  • Добавлен новый диалог выбора цвета и запоминание выбранных ранее цветов
  • Добавлена кнопка отображения/скрытия клавиатуры в редакторе
  • Изменен алгоритм загрузки хранилища (теперь загрузка хранилища возможна из окна записи)
  • Множество других небольших изменений и, конечно, новых багов

3.4 (30.08.2020):

  • Добавлена опция запроса ПИН-кода для расшифровки веток при локальном хранении хэша пароля на устройстве (Pro)
  • Добавлена опция исправления html-текста перед сохранением записи для корректного отображения в MyTetra
  • Добавлена опция отслеживания изменений дерева записей внешней программой (пока в режиме тестирования)
  • Исправлен баг расшифровки меток, когда хэш пароля был сохранен локально
  • Другие исправления

3.3 (19.08.2020):

  • Добавлена дата последнего изменения содержимого записи (Pro)
  • Добавлен пункт меню "Инфо о ветке" с id ветки, количеством подветок и записей
  • Исправлена кнопка разворота веток (до этого частично перекрывалась)
  • В редакторе добавлены команды для работы с выделением и буфером обмена (внизу справа кнопка переключения панелей)
  • К командам в редакторе добавлены всплывающие подсказки при долгом тапе

3.2 (02.08.2020):

  • Добавлен пункт в контекстное меню "Инфо о записи", где можно узнать id записи, путь к каталогу и его размер
  • Добавлена кнопка "Использовать глобальный поиск", если ничего не найдено при фильтрации списка записей
  • Добавлено выделение цветом текущей ветки
  • Добавлена команда "Перезагрузить хранилище"

3.1 (02.07.2020):

  • Исправлены критические и не очень ошибки

3.0 (01.07.2020):

  • Добавлен список избранных записей (Pro)
  • Исправлены ошибки в настройках, если не предоставлено разрешение на запись во внешнюю память
  • Другие исправления

2.9 (26.06.2020):

  • Исправлена ошибка при глобальном поиске
  • Добавлена команда "Сохранить как" у прикрепленных файлов
  • Исправлено: ошибка копирования/вырезания веток с нерасшифрованными подветками
  • Исправлено: принятие текста/изображения после расшифровки хранилища и в первую незашифрованную ветку
  • Другие мелкие исправления

2.8 (07.06.2020):

  • Добавлены команды у веток: копировать, вырезать, вставить рядом, вставить как подветку
  • Добавлена зашифровка и сброс шифровки (расшифровка) веток
  • Добавлена установка и изменение пароля хранилища в настройках (с записью данных в database.ini)
  • Добавлена возможность создания нового хранилища
  • Добавлено автоматическое перемещение старой версии файла mytetra.xml в корзину
  • Добавлены команды "Очистить историю поиска" и "Очистить корзину" в настройки
  • Исправлено добавление в список меток объекта 2 раза, если у него добавлены 2 одинаковые метки
  • Добавлен при запуске выбор ветки, активной в прошлый раз
  • Добавлен запрет на удаление последней ветки
  • Добавлена опция "Подсвечивать зашифрованные ветки"

2.7 (08.05.2020):

  • Добавлено копирование и вырезание записей
  • Добавлена корзина (пока только для удаленных и вырезанных записей)
  • Добавлена отправка текста записи в другие приложения
  • Добавлен прием текста и изображений из других приложений
  • Добавлен диалог изменения размера при добавлении нескольких изображений
  • Теперь логи записываются всегда, но в файл только при включенной опции
  • Изменены иконки пунктов меню

2.6 (23.04.2020):

  • Добавлен поиск в тексте записи и по html-коду (как в браузере)
  • Теперь зашифрованные поля объектов не перешифровуются при каждом сохранении хранилища
  • Незначительно ускорено открытие записей
  • Исправлена автоматическая пометка редактирования записи при переходе в режим html
  • Изменено отображение кнопок и панели ToolBar
  • Исправлено: запрос пароля только при выборе ветки, если указана соответствующая опция
  • При невозможности открытия каталога записи добавлено копирование пути в буфер обмена

2.5 (09.04.2020):

  • Добавлено прикрепление файлов к записи
  • Добавлена проверка существования прикрепленных файлов, каталога для логов, а также файла и каталога записи
  • Добавлено запоминание пути к каталогу, выбранного в послений раз
  • Исправлена блокировка выключения экрана при открытии записи
  • Добавлена возможность просмотра логов в настройках
  • Реализована запись логов в буфер для последующего просмотра, если не получается их записать в файл
  • Исправлен старый баг: авто-расшифровка зашифрованных веток, когда хеш пароля сохранен локально
  • Добавлена вставка изображений в редакторе записи (выбор из галереи или захват с камеры)
  • Исправлено отображение всплывающих инструментов в редакторе записи

2.4 (31.03.2020):

  • Исправлено: сохранение/удаление записи, у которой нет каталога
  • Добавлено контекстное меню к записям, веткам и меткам
  • Добавлено формирование ссылок на записи, ветки и метки и обработка их из текста записи
  • Добавлено изменение порядка записей в списке
  • Добавлено создание веток, удаление, переименование, изменение порядка и разворот подветок

2.3 (22.03.2020):

  • Добавлено редактирование свойств записи
  • Добавлено удаление записей
  • Панель свойств записи теперь скрыта по-умолчанию

2.2 (28.02.2020):

  • Добавлено создание новых записей (при этом перезаписывается файл mytetra.xml, будьте внимательны)
  • Добавлен сброс пометки изменения записи после ее сохранения
  • Добавлен запрос сохранения перед открытием метки/внутренней ссылки из записи

2.1 (23.02.2020):

  • Убран запрос на сохранение записи, даже когда запись не менялась
  • Исправдлено обновление подписей после изменения значений опций в настройках

2.0 (19.02.2020):

  • Работа с содержимым записи вынесена в отдельную активность
  • Реализовано редактирование текста записей (в режиме тестирования)
  • Создан WYSIWYG-редактор html-текста (список команд пока не полный)
  • Добавлена возможность редактирования "сырого" html-кода
  • Добавлены опции в настройки по работе с редактором текста
  • Добавлено требование разрешения на запись во внешнее хранилище
  • Модуль выбора каталога переведен на русский язык
  • Немного изменено отображение веток

1.14 (08.12.2019):

  • Реализован запуск синхронизации хранилища с помощью сторонних приложений
  • Исправлен баг проверки database.ini, когда middle_hash_check_data был равен "" (пустым кавычкам)
  • Исправлена ошибка получения размера у файлов без расширения
  • Исправлена ошибка открытия прикрепленных файлов на API >= 24

1.13 (12.11.2019):

  • Исправлена ошибка чтения файла записи, когда в пути были пробелы
  • Исправлена ошибка при отсутствии файла mytetra.xml
  • Исправлено поведение SearchView (элемент управления для фильтрации записей)

1.12 (05.11.2019):

  • Исправлена ошибка NPE в методе MainPageFragment.initListViews()
  • Добавлена опция в настройки "Не гасить экран при просмотре записи"
  • Добавлен пункт меню "Статистика хранилища" для просмотра статистических данных
  • Исправлена работа глобального поиска с параметром "По целым словам"

1.11 (25.10.2019):

  • Исправлена ​​ошибка при попытке повторной загрузки хранилища (empty context in function MainPageFragment.initListViews)
  • Исправлена ​​ошибка при попытке открыть файл на устройствах с API >=24 (добавлено использование FileProvider)
  • Реализовал выполнение глобального поиска в отдельном потоке
  • Метки к записи сделал интерактивными ссылками

1.10 (29.09.2019):

  • добавлен глобальным поиск по целым словам
  • исправлен фильтр веток по всем уровням вложенности
  • добавлено отображение имени ветки объекта (в списке найденных объектов)
  • добавлены в меню пункты Ветка записи, Прикрепленные файлы, Текст записи
  • добавлена проверка введенной строки формата даты создания заметок в настройках
  • добавлено масштабирования текста записи (двумя пальцами по экрану)
  • добавлено включение полноэкранного режима (в меню или двойным тапом по экрану)

1.9 (18.08.2019):

  • добавлен глобальный поиск (по веткам, меткам, записям, тексту записей, прикрепленным файлам, авторам записей, url записей)
  • добавлена шторка справа со списком всех меток в базе
  • добавлены поля SearchView для фильтрации списков веток, записей, меток
  • добавлена анимация во время загрузки хранилища
  • добавлено уведомление, если прикрепленный файл к записи отсутствует на диске
  • кастомизирован ToolBar: вывод заголовка и типа отображаемого объекта (Ветка/Запись/Файлы/Метка/Найдено)
  • исправлен переход по внешним ссылкам (чтобы открывалось в браузере) и по внутренним ссылкам на другие записи (mytetra://note/ID)

1.8 (28.05.2019):

  • добавил шторку справа для меток
  • исправил в списке записей ошибку, если тег create пуст

1.7 (18.05.2019):

  • оптимизирована расшифровка: убран отдельный этап отсечения служебной информации в начале и в конце результирующего массива байт

1.6 (15.05.2019):

  • добавлена запись логов (опционально)
  • добавлена возможность установки приложения на карту памяти

1.5 (09.05.2019):

  • добавлена команда "Открыть каталог" в контексном меню записи
  • добавлена расшифровка файлов во временный файл (опционально)
  • добавлено вычисление размера прикрепленных файлов
  • увеличена ширина кнопок (стрелок) для разворачивания веток
  • добавлен пункт меню "О программе" с указанием текущей версии и др.

1.4 (24.04.2019):

  • исправлена прокрутка в начало WebView при смене записи
  • на активити записи добавлена скрываемая панель с полями (дата, автор, url, метки)
  • добавлена опция "Формат даты" в настройки
  • исправлено пересоздание элементов управления при изменении ориентации экрана

1.3 (22.04.2019):

  • реализовано открытие файлов
  • добавлен ColorPicker в настройки для выбора цвета выделения записей с файлами

1.2 (18.04.2019):

  • добавлена иконка в приложение
  • обновлена боковая шторка

1.0 (16.04.2019):

  • долго перечислять (а нужно ли?)

10 thoughts on “MyTetroid – Android приложение

  1. Привет, Иван!

    Напишу здесь, что нужно доделать в первую очередь.

    – Где-то нужно отображать номер версии. Сделать пункт меню “О программе”, и там показывать.
    – Разворачивание веток – максимально расширить область кнопки “стрелка вниз”
    – Открытие зашифрованных веток – доделать, чтобы не было сегфолта
    – Поиск, для начала хотя бы по параметрам записи (название,теги…) потом и по содержимому

    Чтобы программа превратилась в полноценного клиента, а не просмоторщик:

    – Создание, удаление, редактирование веток
    – Создание, удаление и редактирование записей

    1. Спасибо за замечания!!
      Показывать версию нужно однозначно.
      И по остальному – нужно дорабатывать.
      Самая большая и нужная работа – с редактированием, со временем реализую.

  2. День добрый!
    Приложение работает очень быстро и древовидная структура реализована круто!!! Спасибо!!! Но если добавите сохранение страницы из инета с картинками или что ещё круче загрузка страницы по ссылке, то это будет просто пушка.

  3. Скажите, совпадает ли структура директории хранения базы MyTetra на декстопах и Android-устройствах? Пользуюсь MyTetra на 3 дектопах Linux (/home/alex/myTetra/data/), синхронизирую базу через Mega одноименным клиентом. Можно ли синхронизировать базу с телефоном, установив Mega-клиент на Android?

    1. Здравствуйте, да, структура совпадает.
      Но приложение работает с локальными файлами на устройстве, т.е. не умеет напрямую подключаться к облачному хранилищу (пока?).
      Не знаю, позволяет ли официальный Android-клиент от Mega синхронизировать локальные файлы на устройстве с файлами в облачном хранилище, не устанавливал.
      Можете попробовать использовать Autosync for MEGA – MegaSync, он это умеет делать.
      Сообщайте о результатах!

  4. Спасибо! А то собираюсь сменить смартфон, а разрабы задний привод включили ) Это при том, что на Pro переход то за деньги был )

    1. Дык это Google Play заднюю включил с платными приложениями из России, а не разраБ )))

  5. С посторонней помощью удалось скачать версию с рустора – доступ к памяти у нее оказался таким-же, как и у гугловской (т.е. урезанным).
    Есть те, для кого работа с рустором невозможна по различным причинам, думаю аудитория пользователей может расшириться благодаря тому-же 4pda. Думаю, так-же, найдутся и те, кто скажет вам спасибо, если вы будете публиковать свободную версию на этом сайте.
    Выяснилось, что в 5ых версиях в приложении пропало диалоговое окно вставки картинки по действию “Отправить в”, которое в версии 4.6 появлялось исправно.
    Так-же в 5ых версиях при выборе директории с Б.Д. если указать, случайно, не ту папку, то “второй заход” невозможен из-за сообщения приложения “выбранная папка пуста”. Помогает только очистка данных приложения.

    1. Не заметил ранее сообщение, поэтому отвечаю только сейчас.
      Скачать Free версии можно на странице “Changelist”, там выкладываю ссылки на .apk.
      Знаю, на 4pda создали страницу, но руки туда пока не доходят. Как и до F-Droid.
      Баг с “Отправить в” картинок исправил в версии 5.4.1.
      По поводу работы с файловой системой – написал вам на почту.

Добавить комментарий

Ваш адрес email не будет опубликован.