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

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.

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

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

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

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

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

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

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

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

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

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

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

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

Опция деактивирована, начиная с версии 4.0.

Поддержка указанного механизма была добавлена лишь в неофициальной версии приложения MGit.

Работа над механизмом была приостановлена в связи с высокой трудоемкостью процесса разработки.

На данный момент, синхронизацию хранилища целесообразно осуществлять:

* либо с помощью нативного git-клиента с использованием Termux (и Tasker, например)

* либо с помощью любого клиента облачных хранилищ, поддерживающего 2-х стороннее обновление хранилища данных (например, DropSync)

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

Если опция установлена, будет запущен специальный сервис, осуществляющий мониторинг модификации файла 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".

Отображение

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

Остальное

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

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

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

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

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

.log

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

MyTetroid Pro.log

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

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

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

  • клиентов облачных хранилищ (например, Google Drive, Яндекс.Диск, Dropbox, Mega и др.)
  • клиентов систем контроля версий (например, Git). Описано у меня здесь и здесь.

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

Чуть подробнее об этом (развернуть)

Начиная с версии 1.14 возможен вызов стороннего приложения для синхронизации хранилища. Это удобно, например, когда нужно автоматически обновить данные перед их загрузкой, или сохранить изменения при выходе из приложения. Но функционал ПРИЕМА команд синхронизации (запроса) нужно реализовывать в каждом конкретном приложении-синхронизаторе отдельно.

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

  • git-клиенте MGit (в моем форке). Кому нужен скомпиллированный .apk с нововведением, пока оно не внесено в официальную версию, его можно скачать отсюда.

Планируется поддержка в:

С официальными клиентами облаков, такими как 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.
Встроенный редактор WyEdit.

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

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

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

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

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

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

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

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

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

  • исправление затирания текста заметки в MyTetra, написанного в приложении (связано с атрибутом стиля абзаца "-qt-paragraph-type:empty;")
  • панель в редакторе заметки для работы с выделением текста и буфером обмена
  • добавление команды "Инфо о ветке" для просмотра некоторой "системной" информации
  • исправление открытия каталога записи стандартными файловыми менеджероми (например, на Xiaomi)
  • отслеживание изменений дерева записей внешней программой (исправление стабильной работы механизма)
  • запрос ПИН-кода при использовании сохранения хэша пароля на устройстве (Pro)
  • создание виджета для быстрого создания записей

Обнаруженные ошибки или пожелания оформляйте в виде issue на github.


Голосовалка за новый функционал

  • Добавить свой вариант

Пусто

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

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

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

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

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

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

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

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

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

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

      1+

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

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