mirror of
https://github.com/gabehf/Fladder.git
synced 2026-03-07 21:48:14 -08:00
fix: Properly close player on user switch
This commit is contained in:
parent
fc8a0e153b
commit
e4c61aa43d
3 changed files with 9 additions and 5 deletions
|
|
@ -12,6 +12,7 @@ import 'package:fladder/providers/api_provider.dart';
|
|||
import 'package:fladder/providers/service_provider.dart';
|
||||
import 'package:fladder/providers/shared_provider.dart';
|
||||
import 'package:fladder/providers/sync_provider.dart';
|
||||
import 'package:fladder/providers/video_player_provider.dart';
|
||||
|
||||
part 'user_provider.g.dart';
|
||||
|
||||
|
|
@ -171,6 +172,7 @@ class User extends _$User {
|
|||
}
|
||||
|
||||
Future<void> logoutUser() async {
|
||||
await ref.read(videoPlayerProvider).stop();
|
||||
if (state == null) return;
|
||||
userState = null;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -58,10 +58,7 @@ class _CurrentlyPlayingBarState extends ConsumerState<FloatingPlayerBar> {
|
|||
}
|
||||
}
|
||||
|
||||
Future<void> stopPlayer() async {
|
||||
ref.read(mediaPlaybackProvider.notifier).update((state) => state.copyWith(state: VideoPlayerState.disposed));
|
||||
return ref.read(videoPlayerProvider).stop();
|
||||
}
|
||||
Future<void> stopPlayer() async => ref.read(videoPlayerProvider).stop();
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@ import 'package:wakelock_plus/wakelock_plus.dart';
|
|||
|
||||
import 'package:fladder/models/item_base_model.dart';
|
||||
import 'package:fladder/models/items/media_streams_model.dart';
|
||||
import 'package:fladder/models/media_playback_model.dart';
|
||||
import 'package:fladder/models/playback/playback_model.dart';
|
||||
import 'package:fladder/models/settings/video_player_settings.dart';
|
||||
import 'package:fladder/providers/settings/client_settings_provider.dart';
|
||||
|
|
@ -237,6 +238,10 @@ class MediaControlsWrapper extends BaseAudioHandler {
|
|||
|
||||
@override
|
||||
Future<void> stop() async {
|
||||
final playbackModel = ref.read(playBackModel);
|
||||
if (playbackModel == null) return;
|
||||
|
||||
ref.read(mediaPlaybackProvider.notifier).update((state) => state.copyWith(state: VideoPlayerState.disposed));
|
||||
WakelockPlus.disable();
|
||||
super.stop();
|
||||
_player?.stop();
|
||||
|
|
@ -247,7 +252,7 @@ class MediaControlsWrapper extends BaseAudioHandler {
|
|||
// //Small delay so we don't post right after playback/progress update
|
||||
await Future.delayed(const Duration(seconds: 1));
|
||||
|
||||
await ref.read(playBackModel)?.playbackStopped(position ?? Duration.zero, totalDuration, ref);
|
||||
await playbackModel.playbackStopped(position ?? Duration.zero, totalDuration, ref);
|
||||
ref.read(mediaPlaybackProvider.notifier).update((state) => state.copyWith(position: Duration.zero));
|
||||
|
||||
smtc?.setPlaybackStatus(PlaybackStatus.stopped);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue