feat(brand): новый 3D-логотип (монограмма R) + лого/иконка под цветовую тему
Логотип: монограмма-R пользователя отрендерена в матовый 3D через routerai (gpt-5.4-image), один мастер перекрашен под 8 тем (recolor по яркости, форма идентична). - Внутри приложения: AppMark показывает перекрашенный 3D-логотип текущей палитры (LocalThemePalette + ThemePalette.logoRes, drawable logo_<тема>). - Иконка лаунчера следует теме: 8 adaptive-иконок (ic_fg_<тема> + ic_bg_<тема>) и 8 activity-alias в манифесте; LauncherIconManager включает alias выбранной темы, гасит остальные (ровно один активен, guard против лишних миганий). Переключение — в MainActivity по LaunchedEffect(paletteId). На ColorOS иконка может обновляться с задержкой — особенность системы. Скрипты генерации в design/logos (ключ routerai — вне репо, ~/.routerai_key).
BIN
app/src/main/res/drawable-nodpi/ic_fg_amber.png
Normal file
|
After Width: | Height: | Size: 54 KiB |
BIN
app/src/main/res/drawable-nodpi/ic_fg_amethyst.png
Normal file
|
After Width: | Height: | Size: 53 KiB |
BIN
app/src/main/res/drawable-nodpi/ic_fg_forest.png
Normal file
|
After Width: | Height: | Size: 58 KiB |
BIN
app/src/main/res/drawable-nodpi/ic_fg_ice.png
Normal file
|
After Width: | Height: | Size: 53 KiB |
BIN
app/src/main/res/drawable-nodpi/ic_fg_neon.png
Normal file
|
After Width: | Height: | Size: 55 KiB |
BIN
app/src/main/res/drawable-nodpi/ic_fg_ocean.png
Normal file
|
After Width: | Height: | Size: 56 KiB |
BIN
app/src/main/res/drawable-nodpi/ic_fg_rose.png
Normal file
|
After Width: | Height: | Size: 54 KiB |
BIN
app/src/main/res/drawable-nodpi/ic_fg_sunset.png
Normal file
|
After Width: | Height: | Size: 55 KiB |
BIN
app/src/main/res/drawable-nodpi/logo_amber.png
Normal file
|
After Width: | Height: | Size: 84 KiB |
BIN
app/src/main/res/drawable-nodpi/logo_amethyst.png
Normal file
|
After Width: | Height: | Size: 82 KiB |
BIN
app/src/main/res/drawable-nodpi/logo_forest.png
Normal file
|
After Width: | Height: | Size: 89 KiB |
BIN
app/src/main/res/drawable-nodpi/logo_ice.png
Normal file
|
After Width: | Height: | Size: 82 KiB |
BIN
app/src/main/res/drawable-nodpi/logo_neon.png
Normal file
|
After Width: | Height: | Size: 85 KiB |
BIN
app/src/main/res/drawable-nodpi/logo_ocean.png
Normal file
|
After Width: | Height: | Size: 85 KiB |
BIN
app/src/main/res/drawable-nodpi/logo_rose.png
Normal file
|
After Width: | Height: | Size: 82 KiB |
BIN
app/src/main/res/drawable-nodpi/logo_sunset.png
Normal file
|
After Width: | Height: | Size: 84 KiB |
5
app/src/main/res/mipmap-anydpi-v26/ic_launcher_amber.xml
Normal file
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<background android:drawable="@color/ic_bg_amber"/>
|
||||
<foreground android:drawable="@drawable/ic_fg_amber"/>
|
||||
</adaptive-icon>
|
||||
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<background android:drawable="@color/ic_bg_amber"/>
|
||||
<foreground android:drawable="@drawable/ic_fg_amber"/>
|
||||
</adaptive-icon>
|
||||
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<background android:drawable="@color/ic_bg_amethyst"/>
|
||||
<foreground android:drawable="@drawable/ic_fg_amethyst"/>
|
||||
</adaptive-icon>
|
||||
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<background android:drawable="@color/ic_bg_amethyst"/>
|
||||
<foreground android:drawable="@drawable/ic_fg_amethyst"/>
|
||||
</adaptive-icon>
|
||||
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<background android:drawable="@color/ic_bg_forest"/>
|
||||
<foreground android:drawable="@drawable/ic_fg_forest"/>
|
||||
</adaptive-icon>
|
||||
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<background android:drawable="@color/ic_bg_forest"/>
|
||||
<foreground android:drawable="@drawable/ic_fg_forest"/>
|
||||
</adaptive-icon>
|
||||
5
app/src/main/res/mipmap-anydpi-v26/ic_launcher_ice.xml
Normal file
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<background android:drawable="@color/ic_bg_ice"/>
|
||||
<foreground android:drawable="@drawable/ic_fg_ice"/>
|
||||
</adaptive-icon>
|
||||
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<background android:drawable="@color/ic_bg_ice"/>
|
||||
<foreground android:drawable="@drawable/ic_fg_ice"/>
|
||||
</adaptive-icon>
|
||||
5
app/src/main/res/mipmap-anydpi-v26/ic_launcher_neon.xml
Normal file
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<background android:drawable="@color/ic_bg_neon"/>
|
||||
<foreground android:drawable="@drawable/ic_fg_neon"/>
|
||||
</adaptive-icon>
|
||||
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<background android:drawable="@color/ic_bg_neon"/>
|
||||
<foreground android:drawable="@drawable/ic_fg_neon"/>
|
||||
</adaptive-icon>
|
||||
5
app/src/main/res/mipmap-anydpi-v26/ic_launcher_ocean.xml
Normal file
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<background android:drawable="@color/ic_bg_ocean"/>
|
||||
<foreground android:drawable="@drawable/ic_fg_ocean"/>
|
||||
</adaptive-icon>
|
||||
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<background android:drawable="@color/ic_bg_ocean"/>
|
||||
<foreground android:drawable="@drawable/ic_fg_ocean"/>
|
||||
</adaptive-icon>
|
||||
5
app/src/main/res/mipmap-anydpi-v26/ic_launcher_rose.xml
Normal file
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<background android:drawable="@color/ic_bg_rose"/>
|
||||
<foreground android:drawable="@drawable/ic_fg_rose"/>
|
||||
</adaptive-icon>
|
||||
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<background android:drawable="@color/ic_bg_rose"/>
|
||||
<foreground android:drawable="@drawable/ic_fg_rose"/>
|
||||
</adaptive-icon>
|
||||
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<background android:drawable="@color/ic_bg_sunset"/>
|
||||
<foreground android:drawable="@drawable/ic_fg_sunset"/>
|
||||
</adaptive-icon>
|
||||
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<background android:drawable="@color/ic_bg_sunset"/>
|
||||
<foreground android:drawable="@drawable/ic_fg_sunset"/>
|
||||
</adaptive-icon>
|
||||
11
app/src/main/res/values/ic_colors.xml
Normal file
@@ -0,0 +1,11 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<color name="ic_bg_forest">#0C1410</color>
|
||||
<color name="ic_bg_ocean">#0A0F1A</color>
|
||||
<color name="ic_bg_sunset">#1A0F0C</color>
|
||||
<color name="ic_bg_amethyst">#120E1A</color>
|
||||
<color name="ic_bg_neon">#0D0A12</color>
|
||||
<color name="ic_bg_amber">#14110A</color>
|
||||
<color name="ic_bg_ice">#0C1014</color>
|
||||
<color name="ic_bg_rose">#160E12</color>
|
||||
</resources>
|
||||