feat(splash+icon): фон иконки-градиент под тему + темо-зависимый сплэш
- Подложка adaptive-иконки: градиент под акцент темы + радиальное свечение + мягкая тень от логотипа (ic_bg_<тема>, было плоским цветом). Иконку-лого не трогал. - Сплэш под выбранную тему: системный сплэш Android 12+ нельзя перекрасить под выбор пользователя (alias-тема на ColorOS игнорится), поэтому системный = просто тёмный (splash_transparent), а красивый сплэш рисуем сами на Compose (SplashOverlay): 3D-лого + акцентное свечение + тень + анимация, цвет берём из текущей темы. - Тему на старте читаем синхронно из SharedPreferences (мгновенно, без блокировки кадра). - Ускорен холодный старт до первого кадра 1.48с→1.11с: сплэш рисуется на первом дешёвом кадре, тяжёлый контент (ViewModels/плеер) композится под ним; старт PlayerService уведён с критического пути. Остаток — оверхед debug-сборки.
This commit is contained in:
@@ -42,42 +42,50 @@
|
||||
Переключается в рантайме (LauncherIconManager) при смене темы. -->
|
||||
<activity-alias android:name=".MainAliasForest" android:enabled="true" android:exported="true"
|
||||
android:targetActivity=".MainActivity" android:label="@string/app_name"
|
||||
android:icon="@mipmap/ic_launcher_forest" android:roundIcon="@mipmap/ic_launcher_forest_round">
|
||||
android:icon="@mipmap/ic_launcher_forest" android:roundIcon="@mipmap/ic_launcher_forest_round"
|
||||
android:theme="@style/Theme.Radiola.Splash.Forest">
|
||||
<intent-filter><action android:name="android.intent.action.MAIN"/><category android:name="android.intent.category.LAUNCHER"/></intent-filter>
|
||||
</activity-alias>
|
||||
<activity-alias android:name=".MainAliasOcean" android:enabled="false" android:exported="true"
|
||||
android:targetActivity=".MainActivity" android:label="@string/app_name"
|
||||
android:icon="@mipmap/ic_launcher_ocean" android:roundIcon="@mipmap/ic_launcher_ocean_round">
|
||||
android:icon="@mipmap/ic_launcher_ocean" android:roundIcon="@mipmap/ic_launcher_ocean_round"
|
||||
android:theme="@style/Theme.Radiola.Splash.Ocean">
|
||||
<intent-filter><action android:name="android.intent.action.MAIN"/><category android:name="android.intent.category.LAUNCHER"/></intent-filter>
|
||||
</activity-alias>
|
||||
<activity-alias android:name=".MainAliasSunset" android:enabled="false" android:exported="true"
|
||||
android:targetActivity=".MainActivity" android:label="@string/app_name"
|
||||
android:icon="@mipmap/ic_launcher_sunset" android:roundIcon="@mipmap/ic_launcher_sunset_round">
|
||||
android:icon="@mipmap/ic_launcher_sunset" android:roundIcon="@mipmap/ic_launcher_sunset_round"
|
||||
android:theme="@style/Theme.Radiola.Splash.Sunset">
|
||||
<intent-filter><action android:name="android.intent.action.MAIN"/><category android:name="android.intent.category.LAUNCHER"/></intent-filter>
|
||||
</activity-alias>
|
||||
<activity-alias android:name=".MainAliasAmethyst" android:enabled="false" android:exported="true"
|
||||
android:targetActivity=".MainActivity" android:label="@string/app_name"
|
||||
android:icon="@mipmap/ic_launcher_amethyst" android:roundIcon="@mipmap/ic_launcher_amethyst_round">
|
||||
android:icon="@mipmap/ic_launcher_amethyst" android:roundIcon="@mipmap/ic_launcher_amethyst_round"
|
||||
android:theme="@style/Theme.Radiola.Splash.Amethyst">
|
||||
<intent-filter><action android:name="android.intent.action.MAIN"/><category android:name="android.intent.category.LAUNCHER"/></intent-filter>
|
||||
</activity-alias>
|
||||
<activity-alias android:name=".MainAliasNeon" android:enabled="false" android:exported="true"
|
||||
android:targetActivity=".MainActivity" android:label="@string/app_name"
|
||||
android:icon="@mipmap/ic_launcher_neon" android:roundIcon="@mipmap/ic_launcher_neon_round">
|
||||
android:icon="@mipmap/ic_launcher_neon" android:roundIcon="@mipmap/ic_launcher_neon_round"
|
||||
android:theme="@style/Theme.Radiola.Splash.Neon">
|
||||
<intent-filter><action android:name="android.intent.action.MAIN"/><category android:name="android.intent.category.LAUNCHER"/></intent-filter>
|
||||
</activity-alias>
|
||||
<activity-alias android:name=".MainAliasAmber" android:enabled="false" android:exported="true"
|
||||
android:targetActivity=".MainActivity" android:label="@string/app_name"
|
||||
android:icon="@mipmap/ic_launcher_amber" android:roundIcon="@mipmap/ic_launcher_amber_round">
|
||||
android:icon="@mipmap/ic_launcher_amber" android:roundIcon="@mipmap/ic_launcher_amber_round"
|
||||
android:theme="@style/Theme.Radiola.Splash.Amber">
|
||||
<intent-filter><action android:name="android.intent.action.MAIN"/><category android:name="android.intent.category.LAUNCHER"/></intent-filter>
|
||||
</activity-alias>
|
||||
<activity-alias android:name=".MainAliasIce" android:enabled="false" android:exported="true"
|
||||
android:targetActivity=".MainActivity" android:label="@string/app_name"
|
||||
android:icon="@mipmap/ic_launcher_ice" android:roundIcon="@mipmap/ic_launcher_ice_round">
|
||||
android:icon="@mipmap/ic_launcher_ice" android:roundIcon="@mipmap/ic_launcher_ice_round"
|
||||
android:theme="@style/Theme.Radiola.Splash.Ice">
|
||||
<intent-filter><action android:name="android.intent.action.MAIN"/><category android:name="android.intent.category.LAUNCHER"/></intent-filter>
|
||||
</activity-alias>
|
||||
<activity-alias android:name=".MainAliasRose" android:enabled="false" android:exported="true"
|
||||
android:targetActivity=".MainActivity" android:label="@string/app_name"
|
||||
android:icon="@mipmap/ic_launcher_rose" android:roundIcon="@mipmap/ic_launcher_rose_round">
|
||||
android:icon="@mipmap/ic_launcher_rose" android:roundIcon="@mipmap/ic_launcher_rose_round"
|
||||
android:theme="@style/Theme.Radiola.Splash.Rose">
|
||||
<intent-filter><action android:name="android.intent.action.MAIN"/><category android:name="android.intent.category.LAUNCHER"/></intent-filter>
|
||||
</activity-alias>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user