major bug fixes

This commit is contained in:
Forrest 2026-08-04 19:29:58 -04:00
parent 9728906556
commit d6144c4483
39 changed files with 483 additions and 53 deletions

View file

@ -9,6 +9,7 @@ import '../screens/now_playing_screen.dart';
import '../screens/settings_screen.dart';
import '../settings/settings_store.dart';
import '../state/providers.dart';
import '../state/remote_providers.dart';
import '../theme/tokens.dart';
import '../widgets/mini_player.dart';
@ -61,6 +62,10 @@ class _AppShellState extends ConsumerState<AppShell>
// PlaybackController.resyncFromPlayer).
if (state == AppLifecycleState.resumed) {
ref.read(playbackCommandsProvider).resyncFromPlayer();
// If we were controlling a remote device, the socket likely died while
// locked/backgrounded — reconnect at once instead of waiting out the
// session's backoff (bug-fixes #5).
ref.read(remoteControlProvider.notifier).onResume();
}
}
@ -128,6 +133,10 @@ class _AppShellState extends ConsumerState<AppShell>
),
bottomNavigationBar: SafeArea(
top: false,
// Bottom inset is handled inside _StatusBar so its background paints
// flush to the screen edge (under the home indicator) instead of
// leaving a dead gap there.
bottom: false,
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
@ -243,8 +252,12 @@ class _StatusBar extends ConsumerWidget {
};
return Container(
height: 22,
color: TimbreColors.surface,
// Pad by the device's bottom safe-area inset so the surface color fills
// down to the physical edge while the 22px content row sits above the
// home indicator.
padding: EdgeInsets.only(bottom: MediaQuery.of(context).padding.bottom),
height: 22 + MediaQuery.of(context).padding.bottom,
child: Row(
children: [
// Left: connection status — tap to open the server switcher.