Skip to content

Beta v2.0.4 Release

Choose a tag to compare

@BAZESHOT1 BAZESHOT1 released this 15 Sep 22:23
ace9e29

Новое

  1. Полная локализация интерфейса — русский и английский языки.
  2. Автоопределение системного языка при первом запуске (Windows, macOS, Linux, Android, iOS).
  3. Переключатель языка в настройках — выпадающий список с пунктом «Системный».
  4. Выбор языка сохраняется в SharedPreferences и применяется мгновенно без перезапуска.
  5. Персистентный кеш данных пользователя — профиль, метаданные подписки, устройства, тариф, лимиты трафика теперь сохраняются на диск и доступны после перезапуска или временной потери связи с сервером.
  6. Плашка «Приложение успешно обновлено до версии X» — показывается один раз при первом запуске после апдейта, длится 5 секунд.
  7. Скрипт сборки scripts/build_all.bat — собирает Windows-installer и Android-APK одной командой, автоматически переименовывает артефакты в MinionGuard_<версия>-Windows.exe и MinionGuard_<версия>-Android.apk, версия подтягивается из pubspec.yaml.

Исправления

  1. Красный экран No MaterialLocalizations found при запуске — добавлены flutter_localizations и делегаты GlobalMaterialLocalizations / GlobalWidgetsLocalizations / GlobalCupertinoLocalizations.
  2. Drawer не находил MaterialLocalizations для русской локали — та же причина, что выше.
  3. Ошибка константного конструктора в AppStringsRu / AppStringsEn — добавлен явный const AppStrings() в базовый класс.
  4. Кеш данных терялся при деавторизации — теперь logoutAll() очищает всё, а DataCache переживает рестарт.
  5. Устройства не кешировались — теперь сохраняются и восстанавливаются после перезапуска.
  6. Inno Setup показывал диалог «Установить для меня / для всех» — убран, установка всегда идёт в %LOCALAPPDATA%\Programs\MinionGuard без UAC.
  7. Апдейт стирал пользовательские файлы в папке установки — удалён блок [InstallDelete] и вызов старого деинсталлятора.
  8. Сборка ломалась на копировании артефактов — папка build\dist теперь создаётся после flutter clean, а не до.
  9. Плашка обновления не появлялась — исправлено ожидание ScaffoldMessenger через retry-цикл.