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

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

Доступно в Google Play

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

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

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


Функционал

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

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

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

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

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

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

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

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

Текст записи, редактирование, 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".

Отображение

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


Управление

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

Остальное

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

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

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

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

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

.log

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

MyTetroid Pro.log

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

 

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

ПРИМЕЧАНИЕ:

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

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

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

  • клиентов облачных хранилищ (например, 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 и прочими, ничего не выйдет, т.к. они закрыты (так что при их использовании синхронизацию нужно запускать вручную).

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

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

Функционал MyTetroid MyTetra
Сохранение файла 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, иначе будет перезатираться.

-
Работа с несколькими хранилищами

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

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

Поддержку удобного переключения между несколькими хранилищами планируется реализоваться в версии Pro.

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

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

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

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


Голосовалка за новый функционал
  • Добавить свой вариант
Poll Options are limited because JavaScript is disabled in your browser.

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

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

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

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

4.6 (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):

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

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

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

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

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

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

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

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

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

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

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

      0

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *