b-dev-mobile
|
b90107a7fc
|
Этап 1: баги данных (test-first) — ICS-парсер, QR-пароль, курсор почты
Заведена тестовая инфраструктура (core:network junit) + 12 unit-тестов. Починено:
- ICS parseIcsInstant: суффикс Z → UTC (был локальным!), TZID учитывается, floating→локаль
- parseProps сохраняет параметры: несколько ATTENDEE не схлопываются, CN/PARTSTAT/ROLE
читаются (была порча участников при редактировании события → PUT на сервер)
- unescape single-pass (последовательные replace ломались на экранированном бэкслеше)
- CalDavClient.parseIcsInstant делегирует в CalendarIcs — устранён рассинхрон календарь↔задачи
- LoginFlowClient: маркер-парсер вместо split('&') — QR-пароль с &/: не теряется
- MailRepository/ViewModel/Models/Cache/Screen: курсор пагинации Int→Long (обрезка ~2038)
Проверено: 12 тестов зелёные (CalendarIcsTest 8 + LoginFlowClientTest 4) + assembleRelease OK.
|
2026-07-07 22:21:37 +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 |
|
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 |
|