fix(menu): плоские иконки шторки как на мобильном сайте (images/menu, не glass)

Шторка показывала glass-кружки (frosted 49px из images/header/*-glass),
а мобильный сайт рисует ПЛОСКИЕ двухцветные иконки из images/menu/*.svg
(зелёный #70B62B + чёрный контур). Забандлил menu-*.svg (files/calendar/
contacts/cards/notes/settings + notifications из not-menu-icon-big),
переключил пункты приложений и нативные Уведомления/Настройки на них.
Неиспользуемые glass/header-ассеты удалены (нижняя панель грузит иконки
с сервера).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
b-dev-mobile
2026-07-10 05:58:00 +00:00
parent 0a36abe695
commit cac214340e
28 changed files with 142 additions and 591 deletions
@@ -2,8 +2,9 @@ package ru.forbion.f7cloud.mobile.ui
import ru.forbion.f7cloud.core.designsystem.F7AppMenuItem
// Иконки-glass шторки — локальные (assets/menu/, из живой темы forbion): офлайн + точные.
private fun glass(name: String): String = "file:///android_asset/menu/$name"
// Иконки шторки — ПЛОСКИЕ menu-иконки живой темы forbion (images/menu/*.svg: зелёный+чёрный
// контур), а не glass-кружки. Локальные (assets/menu/menu-*.svg) — офлайн и 1:1 с сайтом.
private fun menuIcon(name: String): String = "file:///android_asset/menu/menu-$name.svg"
enum class AppTab(
val title: String,
@@ -34,12 +35,13 @@ private data class AppMenuEntry(
// Состав меню — по дизайну выдвижного меню (Почта/Конференции/Задачи/Поддержка — только
// в нижней панели; Уведомления/Настройки добавлены как нативные пункты, см. appMenuItems).
// iconPath — базовое имя плоской menu-иконки (assets/menu/menu-<name>.svg)
private val coreAppMenuEntries = listOf(
AppMenuEntry(AppTab.Files, "Файлы", "files-glass.svg"),
AppMenuEntry(AppTab.Calendar, "Календарь", "calendar-glass.svg"),
AppMenuEntry(AppTab.Contacts, "Контакты", "contact-glass.svg"),
AppMenuEntry(AppTab.Deck, "Карточки", "deck-glass.svg"),
AppMenuEntry(null, "Заметки", "notes-glass.svg", webPath = "/apps/notes/"),
AppMenuEntry(AppTab.Files, "Файлы", "files"),
AppMenuEntry(AppTab.Calendar, "Календарь", "calendar"),
AppMenuEntry(AppTab.Contacts, "Контакты", "contacts"),
AppMenuEntry(AppTab.Deck, "Карточки", "cards"),
AppMenuEntry(null, "Заметки", "notes", webPath = "/apps/notes/"),
)
data class AppMenuExternalSite(
@@ -59,7 +61,7 @@ fun appMenuItems(
val core = coreAppMenuEntries.map { entry ->
F7AppMenuItem(
label = entry.label,
iconUrl = glass(entry.iconPath),
iconUrl = menuIcon(entry.iconPath),
selected = entry.tab == active,
externalUrl = entry.webPath?.let { "$base$it" },
)
@@ -72,16 +74,16 @@ fun appMenuItems(
externalUrl = site.openUrl,
)
}
// Нативные пункты — тоже glass-иконки живой темы (mobile-*-glass), действия по label в AppScaffold
// Нативные пункты — плоские menu-иконки темы, действия по label в AppScaffold
val native = listOf(
F7AppMenuItem(
label = "Уведомления",
iconUrl = glass("mobile-notifications-glass.svg"),
iconUrl = menuIcon("notifications"),
selected = false,
),
F7AppMenuItem(
label = "Настройки",
iconUrl = glass("mobile-settings-glass.svg"),
iconUrl = menuIcon("settings"),
selected = false,
),
)