b-dev-mobile
d1d61d0cf8
ux: pull-to-refresh на всех списках (Этап 2 п.12)
...
Раньше свайп-обновление было только в Файлах. Добавлено (Material3
PullToRefreshBox): Почта (входящие/исходящие, force-обновление), Конференции
(список бесед — заменяет убранную кнопку ↻), Контакты (force + CTag — дёшево),
Задачи (список), Карточки (доски и открытая доска). Контакты: refresh()
получил параметр force (pull-to-refresh форсит sync мимо TTL; с CTag-проверкой
это 1 лёгкий PROPFIND).
2026-07-09 12:48:08 +00:00
b-dev-mobile
342e1e497d
ui: убрана кнопка «чаты» в панели и кнопка обновления в Конференциях
...
- Нижняя панель: слева всегда «назад» (кнопки чатов больше нет; в
Конференциях раньше был чат-слот) — единый layout во всех разделах.
- Экран Конференций: убран onRefresh у F7ModuleScreen → нет кнопки ↻
сверху справа (список грузится при открытии и по push).
2026-07-08 17:45:34 +00:00
b-dev-mobile
8c3d422c85
talk: подложка чата из дизайна (Подложка2), локальный webp
...
TalkChatBackground грузил chat-pattern.svg с сервера поверх плоского фона.
Заменил на бандл-ресурс R.drawable.chat_background (светлый градиент +
паттерн иконок из Figma, Подложка2) — офлайн и точно из макета.
PNG 481КБ → WebP 49КБ (q82). ContentScale.Crop, full-bleed.
2026-07-08 09:33:31 +00:00
b-dev-mobile
fd96ca89e6
Этап 1: version catalog (libs.versions.toml) — устранён дрейф версий
...
CI / verify (push) Has been cancelled
CI / release (push) Has been cancelled
- gradle/libs.versions.toml: единый источник версий (Gradle 9.3 авто-подхват).
- 15 module build.gradle мигрированы на libs.* (скриптом, регекс по group:name).
- Устранён дрейф: coroutines 1.8.1/1.10.1→1.10.1, coil 2.6.0/2.7.0→2.7.0,
lifecycle 2.8.1/2.8.7→2.8.7, activity-compose 1.9.0/1.10.1→1.10.1,
core-ktx 1.13.1/1.15.0→1.15.0. Firebase в core/push → bom (был explicit 24.0.1).
- Compose BOM в каталоге вместо дубля в каждом модуле.
Проверено: assembleRelease BUILD SUCCESSFUL, APK 53 МБ.
2026-07-07 23:53:30 +00:00
b-dev-mobile
ac438269c5
Этап 1: detekt (статанализ + ktlint-форматирование) с baseline
...
CI / verify (push) Has been cancelled
CI / release (push) Has been cancelled
- detekt 1.23.8 применён ко всем НАШИМ модулям (vendor-форк исключён),
+formatting-ruleset (обёртка ktlint). Совместим с Kotlin 2.3 (проверено).
- config/detekt/detekt.yml — настройки под наш код (LongMethod 120, MaxLine 140,
MagicNumber off — dp/цвета отдельно, FunctionNaming off — @Composable Заглавные).
- detekt-baseline.xml по модулям: ~403 текущих замечаний зафиксированы →
detekt зелёный, дальше ловит только НОВЫЕ. detekt в CI (ci.yml verify).
Проверено: detektBaseline + detekt BUILD SUCCESSFUL.
2026-07-07 23:36:40 +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
b-dev-mobile
51fd1bf936
Этап 0 п.3: безопасность-минимум (trust-all off в release, шифрование пароля, allowBackup, ревокация)
...
1. trust-all TLS отключён в release: гейт if(!BuildConfig.DEBUG) в UnsafeSsl +
OfficeWebViewClient + TalkCallActivity; чекбокс скрыт в release. buildConfig
включён в core:network и feature:talk.
2. allowBackup=false (tools:replace поверх vendor true).
3. app password шифруется в покое AndroidKeystore AES-256-GCM (KeystoreCrypto),
AuthStore мигрирует legacy-plaintext при первом load. Биометрия — отдельная
задача (ломает фоновые push/звонки, нужен кэш в памяти).
4. Ревокация app password при logout (AppPasswordRevoker, DELETE core/apppassword,
best-effort).
Проверено: assembleRelease 53 МБ, подпись v2+v3, allowBackup=false в манифесте OK.
2026-07-07 19:51:23 +00:00
b-dev-mobile
6a07f1f40a
v0.5.114: убраны зашитые касания боевых хостов ячейки A (mail/035)
...
- дефолт-URL экрана входа -> BuildConfig.DEFAULT_SERVER_URL (-Pf7DefaultServerUrl, по умолчанию пусто)
- TalkHelper: preconnect только к origin сессии, хардкод hpb-prod.f7cloud.ru удалён
- AuthErrors: нейтральный пример адреса сервера
2026-07-07 10:04:11 +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