🐛 Fix wakelock doesn't work

This commit is contained in:
2024-09-02 23:52:38 +08:00
parent ee2633db52
commit 3c3447a9ee
10 changed files with 22 additions and 66 deletions

View File

@ -13,6 +13,7 @@ class ErrorNotifier extends GetxController {
void showError(String msg) {
showing.value = MaterialBanner(
dividerColor: Colors.transparent,
leading: const Icon(Icons.error),
content: Column(
crossAxisAlignment: CrossAxisAlignment.start,

View File

@ -12,6 +12,7 @@ import 'package:spotify/spotify.dart';
import 'package:flutter/material.dart';
import 'package:path/path.dart';
import 'package:path_provider/path_provider.dart';
import 'package:wakelock_plus/wakelock_plus.dart';
typedef UserPreferences = PreferencesTableData;
@ -48,6 +49,8 @@ class UserPreferencesProvider extends GetxController {
.listen((event) async {
state.value = event;
await WakelockPlus.toggle(enable: state.value.playerWakelock);
await audioPlayer.setAudioNormalization(state.value.normalizeAudio);
});
}
@ -173,5 +176,6 @@ class UserPreferencesProvider extends GetxController {
void setPlayerWakelock(bool wakelock) {
setData(PreferencesTableCompanion(playerWakelock: Value(wakelock)));
WakelockPlus.toggle(enable: wakelock);
}
}

View File

@ -2,10 +2,8 @@ import 'dart:math';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:rhythm_box/providers/user_preferences.dart';
import 'package:rhythm_box/widgets/lyrics/synced_lyrics.dart';
import 'package:rhythm_box/widgets/player/bottom_player.dart';
import 'package:wakelock_plus/wakelock_plus.dart';
class LyricsScreen extends StatefulWidget {
const LyricsScreen({super.key});
@ -15,22 +13,6 @@ class LyricsScreen extends StatefulWidget {
}
class _LyricsScreenState extends State<LyricsScreen> {
late final UserPreferencesProvider _preferences = Get.find();
@override
void activate() {
super.activate();
if (_preferences.state.value.playerWakelock) {
WakelockPlus.enable();
}
}
@override
void deactivate() {
super.deactivate();
WakelockPlus.disable();
}
@override
Widget build(BuildContext context) {
return Material(

View File

@ -2,13 +2,11 @@ import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:go_router/go_router.dart';
import 'package:rhythm_box/platform.dart';
import 'package:rhythm_box/providers/user_preferences.dart';
import 'package:rhythm_box/screens/player/queue.dart';
import 'package:rhythm_box/screens/player/siblings.dart';
import 'package:rhythm_box/widgets/lyrics/synced_lyrics.dart';
import 'package:rhythm_box/widgets/player/bottom_player.dart';
import 'package:rhythm_box/widgets/player/devices.dart';
import 'package:wakelock_plus/wakelock_plus.dart';
import 'package:window_manager/window_manager.dart';
class MiniPlayerScreen extends StatefulWidget {
@ -21,8 +19,6 @@ class MiniPlayerScreen extends StatefulWidget {
}
class _MiniPlayerScreenState extends State<MiniPlayerScreen> {
late final UserPreferencesProvider _preferences = Get.find();
bool _wasMaximized = false;
bool _areaActive = false;
@ -55,20 +51,6 @@ class _MiniPlayerScreenState extends State<MiniPlayerScreen> {
}
}
@override
void activate() {
super.activate();
if (_preferences.state.value.playerWakelock) {
WakelockPlus.enable();
}
}
@override
void deactivate() {
super.deactivate();
WakelockPlus.disable();
}
@override
void initState() {
super.initState();

View File

@ -10,7 +10,6 @@ import 'package:google_fonts/google_fonts.dart';
import 'package:media_kit/media_kit.dart';
import 'package:rhythm_box/providers/audio_player.dart';
import 'package:rhythm_box/providers/auth.dart';
import 'package:rhythm_box/providers/user_preferences.dart';
import 'package:rhythm_box/screens/player/queue.dart';
import 'package:rhythm_box/screens/player/siblings.dart';
import 'package:rhythm_box/services/artist.dart';
@ -21,7 +20,6 @@ import 'package:rhythm_box/services/audio_services/image.dart';
import 'package:rhythm_box/widgets/lyrics/synced_lyrics.dart';
import 'package:rhythm_box/widgets/tracks/heart_button.dart';
import 'package:rhythm_box/widgets/tracks/querying_track_info.dart';
import 'package:wakelock_plus/wakelock_plus.dart';
class PlayerScreen extends StatefulWidget {
const PlayerScreen({super.key});
@ -34,7 +32,6 @@ class _PlayerScreenState extends State<PlayerScreen> {
late final AudioPlayerProvider _playback = Get.find();
late final QueryingTrackInfoProvider _query = Get.find();
late final AuthenticationProvider _auth = Get.find();
late final UserPreferencesProvider _preferences = Get.find();
String? get _albumArt =>
(_playback.state.value.activeTrack?.album?.images).asUrlString(
@ -59,20 +56,6 @@ class _PlayerScreenState extends State<PlayerScreen> {
static const double maxAlbumSize = 360;
@override
void activate() {
super.activate();
if (_preferences.state.value.playerWakelock) {
WakelockPlus.enable();
}
}
@override
void deactivate() {
super.deactivate();
WakelockPlus.disable();
}
@override
Widget build(BuildContext context) {
final size = MediaQuery.of(context).size;