SugarLife — объяснения

Почему приложение ведёт себя именно так и чем платят настройки

View the Project on GitHub iMironRU/sugarlife-wiki

Счётчик до следующего показания

На баннере и в виджете есть отсчёт: сколько осталось до следующего показания. Он основан на такте — том, как часто ваш источник приносит числа.

Такт у всех разный

Поэтому мы такт не выдумываем и не берём из описания прибора, а измеряем: смотрим, с каким шагом показания приходили в последний час, и берём типичное значение.

Это надёжнее заявленного. Прибор может обещать минуту, а на деле телефон засыпает, связь пропадает, посредник задерживает — и настоящий такт другой.

Что означает «опаздывает»

Пока идёт текущий такт, счётчик отсчитывает время до ожидаемого показания. Это ожидание, а не расписание: показание может прийти чуть раньше или чуть позже, и ничего страшного в этом нет.

Но если счётчик дошёл до нуля, а показание не пришло, он не замирает на нуле и не начинает отсчёт заново. Он переворачивается и показывает, насколько мы опаздываем.

Это принципиально. Счётчик, который бодро отсчитывает следующую минуту, когда данных нет уже десять, врёт — а по нашим числам вы принимаете решения. То же правило, по которому рядом с любым показанием всегда стоит его возраст.

Небольшие перерывы — это нормально

На минутном сенсоре перерывы в две-три минуты случаются десятки раз в сутки: телефон отвлёкся, прибор задержал кадр, связь моргнула. Это дыхание канала, а не поломка, и тревожить вас по такому поводу не нужно.

Настоящие перерывы выглядят иначе: они начинаются от пяти минут и случаются примерно раз в сутки. Именно на них и настроена тревога о пропаже данных.

Если такт неизвестен

Счётчика не будет. Пока источник не заговорил и мерить нечего, честнее не показывать ничего, чем нарисовать правдоподобную минуту.