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

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

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

Запиливается в данные момент:

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

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

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

Доступно в Google Play

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


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


Changelist

1.14:

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

1.13:

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

1.12:

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

1.11:

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

1.10:

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

1.9:

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

1.7:

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

1.4:

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

1.2:

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

1.0:

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

 

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

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

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

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

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

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

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

      0

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

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