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

Mytetroid – это Android-клиент хранилища данных настольной версии программы MyTetra.

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

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

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

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

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

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

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

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

Скриншоты:

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

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

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

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

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

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

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

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

Голосовалка за новый функционал
  • Добавить свой вариант

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

Ссылка на GooglePlay (бета-тестирование): 

Доступно в Google Play

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

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


Ускорить выход новых версий:


Changelist

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 не будет опубликован. Обязательные поля помечены *