Расположение индикатора
Индикатор синхронизации расположен в правой части верхней панели (topbar) приложения. Он всегда виден и показывает текущее состояние подключения и синхронизации данных.
Статусы индикатора
Online (зеленый)
Устройство подключено к интернету, все данные синхронизированы с сервером. Это штатное состояние.
Индикатор отображается как зеленая точка или иконка подключения.
Что это значит:
- Соединение с сервером установлено
- Нет ожидающих изменений
- Все данные актуальны
Offline (янтарный)
Устройство не подключено к интернету. Приложение работает с локальными данными.
Индикатор отображается как янтарная (оранжевая) точка или иконка отсутствия связи.
Что это значит:
- Соединение с сервером отсутствует
- Приложение работает с кэшированными данными
- Все новые изменения сохраняются локально
- Синхронизация начнется автоматически при восстановлении связи
Syncing (анимированный)
Идет процесс синхронизации -- локальные изменения отправляются на сервер.
Индикатор отображается как анимированная (пульсирующая) иконка синхронизации.
Что это значит:
- Соединение восстановлено или запущена ручная синхронизация
- Ожидающие изменения отправляются на сервер в хронологическом порядке
- Процесс обычно занимает несколько секунд
Счетчик ожидающих изменений
Рядом с индикатором отображается число -- количество изменений, ожидающих синхронизации. Каждое действие, выполненное оффлайн, увеличивает счетчик на единицу:
- Отметка check-in -- +1
- Ручная отметка оплаты -- +1
- Изменение статуса регистрации -- +1
Примеры отображения:
- Зеленая точка без числа -- все синхронизировано
- Янтарная точка + 3 -- оффлайн, 3 изменения ожидают отправки
- Анимация + 3 -> 2 -> 1 -> 0 -- идет синхронизация, изменения отправляются
Когда счетчик достигает нуля, индикатор переключается на зеленый статус.
Что такое pendingSync
Каждое изменение, сделанное оффлайн, получает флаг pendingSync=true в локальной базе данных. Этот флаг означает:
- Изменение сохранено локально
- Изменение еще не отправлено на сервер
- При следующей синхронизации оно будет передано
После успешной отправки на сервер флаг снимается (pendingSync=false), и запись считается синхронизированной.
Ручная синхронизация
Помимо автоматической синхронизации при восстановлении связи, вы можете запустить синхронизацию вручную:
- Нажмите на индикатор синхронизации в верхней панели.
- Откроется панель деталей с информацией:
- Текущий статус подключения
- Количество ожидающих изменений
- Время последней успешной синхронизации
- Нажмите кнопку Синхронизировать.
Ручной запуск полезен, когда:
- Вы хотите убедиться, что все данные отправлены перед закрытием приложения
- Автоматическая синхронизация не запустилась после восстановления связи
- Вы хотите проверить, что синхронизация работает корректно
Если устройство находится оффлайн, кнопка «Синхронизировать» будет неактивна.
Уведомления о синхронизации
Приложение показывает toast-уведомления при ключевых событиях синхронизации:
| Событие | Уведомление |
|---|---|
| Потеря связи | «Вы оффлайн. Данные сохраняются локально» |
| Восстановление связи | «Связь восстановлена. Синхронизация...» |
| Успешная синхронизация | «Все данные синхронизированы» |
| Ошибка синхронизации | «Ошибка синхронизации. Повтор через 30 с» |
| Конфликт данных | «Обнаружен конфликт. Требуется ваше решение» (Business+) |
Рекомендации
- Не закрывайте приложение сразу после работы оффлайн. Дождитесь, пока счетчик ожидающих изменений станет нулевым.
- Следите за индикатором перед началом мероприятия. Убедитесь, что данные актуальны (зеленый статус).
- При долгой оффлайн-работе периодически проверяйте счетчик. Большое количество ожидающих изменений (50+) может замедлить синхронизацию при восстановлении связи.