Commit Graph

6 Commits

Author SHA1 Message Date
b-dev-mobile 84a1ea9f27 design(calendar): деталь события и пилюли по живой теме
Заголовок события 18/600 (модалки темы); пилюля события в неделе —
#ECF9DE с рамкой #70B62B r4 (был полупрозрачный зелёный r6). Лейблы
детали уже серые, кнопки — дизайн-система (градиентные пилюли) —
совпадали. Наш bottom-sheet и список дня — осознанная моб. адаптация.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-10 03:22:53 +00:00
b-dev-mobile 65805a15af design(calendar): месячная сетка 1:1 по живой теме
_calendar-month-view-mobile.css: месяц — белая карточка r12 с рамкой
и паддингом 12; дни недели — круги 40 #F5F5F5 (16/500, были пилюли);
ячейки — карточки #FDFDFD r4 с тенью, высота 120 (были gridline 66),
зазор 4; номер дня 14/500 справа-сверху; «сегодня» — зелёная плашка
40×24 r4 с белым числом (был круг); события — пилюли #ECF9DE с рамкой
#70B62B r4, текст 10/12, до 3 в ячейке; вне месяца — серые.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-09 21:20:26 +00:00
b-dev-mobile fb57156ee9 calendar: кэш событий по CTag (Этап 2, DAV ч.2)
listCalendars теперь забирает и cs:getctag (тот же PROPFIND — ноль лишних
запросов; DavCalendar.ctag). Новый CalendarEventsCache — дисковый кэш
СЫРЫХ REPORT-ответов per (аккаунт, календарь, диапазон), ключ — CTag:
не менялся → события парсятся с диска (боевым парсером CalDavClient),
REPORT-запросы в сеть не идут. Изменился → сеть + обновление кэша.
Хранение сырого XML вместо сериализации моделей — без хрупкого
JSON-маппинга ~20 полей события; чистка записей старше 30 дней.
CalDavClient.queryEventsInRange разделён на queryEventsRawXml +
parseEventsXml (поведение прежнее). Эффект: переключение месяцев,
периодический рефреш и возврат в календарь при неизменных календарях —
1 PROPFIND вместо 1+N REPORT. +5 unit-тестов кэша (JVM, TemporaryFolder).
2026-07-09 09:39:07 +00:00
b-dev-mobile a727e2dbd1 calendar: рескин месячной сетки под макет
По «Календарь · Месяц»: дни недели — серые пилюли; сетка безрамочная с
гридлайнами (0.5dp) вместо скруглённых боксов; номер дня сверху-слева;
сегодня — в зелёном круге (Primary, белый текст); событие — зелёная
пилюля PrimaryLight (до 2 + «+N»), было одно превью/точка. Компактная
модель (месяц + список дня снизу) сохранена. Компилируется.
2026-07-08 10:15:41 +00:00
b-dev-mobile ab8fa70e51 Этап 1: единый OkHttpClient ч.2 — 401 централизован через interceptor
CI / verify (push) Has been cancelled
CI / release (push) Has been cancelled
- UnauthorizedInterceptor (401→UnauthorizedException) в NetworkFactory,
  флаг throwOnUnauthorized (по умолчанию true).
- Удалены 75 ручных проверок if(code==401) throw в 16 репозиториях.
- AuthVerifier (login-верификация) исключён: throwOnUnauthorized=false —
  401 = 'неверный пароль' со своим сообщением, не session-expired.
- Побочно: 401 теперь ловится единообразно ВЕЗДЕ (включая пути, что раньше
  забывали проверку).
- +3 MockWebServer-теста (401 бросает; 200/403 проходят) — всего 18 тестов.

Проверено: 18 тестов зелёные + assembleRelease BUILD SUCCESSFUL, APK 53 МБ.
2026-07-07 23:29:49 +00:00
F7cloud Mobile fd17df80a8 Initial import of f7cloud-mobile native Android app.
Kotlin/Compose client for F7cloud (mail, files, talk, calendar, contacts, tasks, support).
Current version: 0.5.113 (build 121).
2026-07-07 12:05:18 +03:00