mirror of
https://github.com/zarzet/SpotiFLAC-Mobile.git
synced 2026-09-30 13:19:44 +02:00
fix(ui): align local lyrics and refine Mornye selection
Read embedded lyrics through the playback metadata fallback when the lyrics reader misses them. Restore edge icon highlighting during navbar drags, tune selection contrast, and blend the profile name field into its card.
This commit is contained in:
1 parent
d8d46108bc
commit
1c535b493c
7 files changed
+217
-37
No files matched your search
@@ -107,7 +107,7 @@ class MornyeBottomBar extends ConsumerWidget {
|
||||
scheme.brightness == Brightness.dark ? 0.5 : 0.4,
|
||||
);
|
||||
final player = MiniPlayer(compact: collapsed, bottomPadding: 0);
|
||||
final tabs = TickerMode(
|
||||
Widget tabs({required bool hideEdgeIcons}) => TickerMode(
|
||||
enabled: !collapsed,
|
||||
child: RepaintBoundary(
|
||||
child: MornyeTabBar(
|
||||
@@ -115,10 +115,15 @@ class MornyeBottomBar extends ConsumerWidget {
|
||||
selectedIndex: selectedIndex,
|
||||
onSelected: onSelected,
|
||||
blurEnabled: blurEnabled,
|
||||
hideEdgeIcons: true,
|
||||
hideEdgeIcons: hideEdgeIcons,
|
||||
),
|
||||
),
|
||||
);
|
||||
// At rest the glass bar must paint its own edge icons: its selected layer
|
||||
// follows a dragged pill before the destination is committed. Hand them
|
||||
// to the moving overlays only while folding, at the same coordinates.
|
||||
final fullTabs = tabs(hideEdgeIcons: false);
|
||||
final foldingTabs = tabs(hideEdgeIcons: true);
|
||||
return LayoutBuilder(
|
||||
builder: (context, constraints) {
|
||||
// Match the tab's actual label height, including accessibility scaling.
|
||||
@@ -185,7 +190,10 @@ class MornyeBottomBar extends ConsumerWidget {
|
||||
scheme.primary,
|
||||
amount,
|
||||
),
|
||||
icon: destinations[index].icon,
|
||||
icon: Opacity(
|
||||
opacity: amount == 0 ? 0 : 1,
|
||||
child: destinations[index].icon,
|
||||
),
|
||||
onPressed: home ? onHome : onSearch,
|
||||
),
|
||||
),
|
||||
@@ -237,7 +245,10 @@ class MornyeBottomBar extends ConsumerWidget {
|
||||
ignoring: amount > 0.5,
|
||||
child: ExcludeSemantics(
|
||||
excluding: amount > 0.5,
|
||||
child: Opacity(opacity: 1 - amount, child: tabs),
|
||||
child: Opacity(
|
||||
opacity: 1 - amount,
|
||||
child: amount == 0 ? fullTabs : foldingTabs,
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
|
||||
@@ -451,6 +451,9 @@ class MornyeTabBar extends StatelessWidget {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final scheme = Theme.of(context).colorScheme;
|
||||
final selectionFill = scheme.onSurface.withValues(
|
||||
alpha: scheme.brightness == Brightness.dark ? 0.12 : 0.08,
|
||||
);
|
||||
final inactiveIconColor = Color.lerp(
|
||||
scheme.onSurfaceVariant,
|
||||
scheme.onSurface,
|
||||
@@ -510,12 +513,13 @@ class MornyeTabBar extends StatelessWidget {
|
||||
iconSize: 25,
|
||||
labelFontSize: 11,
|
||||
),
|
||||
pillStyle: const LiquidGlassTabPillStyle(
|
||||
pillStyle: LiquidGlassTabPillStyle(
|
||||
mode: LiquidGlassPillMode.impellerOnly,
|
||||
color: selectionFill,
|
||||
animated: true,
|
||||
// Keep the moving refractive pill, without stacking the
|
||||
// package's second magnifier lens beneath it.
|
||||
magnifierPill: LiquidGlassTabMagnifierPillStyle(
|
||||
magnifierPill: const LiquidGlassTabMagnifierPillStyle(
|
||||
enabled: false,
|
||||
),
|
||||
),
|
||||
@@ -548,7 +552,7 @@ class MornyeTabBar extends StatelessWidget {
|
||||
?.copyWith(
|
||||
fontSize: label.textStyle.fontSize,
|
||||
fontWeight: FontWeight.w600,
|
||||
color: scheme.onSurface,
|
||||
color: label.textStyle.color,
|
||||
),
|
||||
),
|
||||
),
|
||||
@@ -591,7 +595,7 @@ class MornyeTabBar extends StatelessWidget {
|
||||
),
|
||||
decoration: BoxDecoration(
|
||||
color: index == selectedIndex
|
||||
? scheme.onSurface.withValues(alpha: 0.09)
|
||||
? selectionFill
|
||||
: Colors.transparent,
|
||||
borderRadius: BorderRadius.circular(28),
|
||||
),
|
||||
@@ -625,7 +629,9 @@ class MornyeTabBar extends StatelessWidget {
|
||||
style: Theme.of(context).textTheme.labelSmall
|
||||
?.copyWith(
|
||||
fontWeight: FontWeight.w600,
|
||||
color: scheme.onSurface,
|
||||
color: index == selectedIndex
|
||||
? scheme.primary
|
||||
: scheme.onSurface,
|
||||
),
|
||||
),
|
||||
],
|
||||
|
||||
Reference in new issue
Block a user