✨ Player wakelock
This commit is contained in:
@ -10,6 +10,7 @@ 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';
|
||||
@ -20,6 +21,7 @@ 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});
|
||||
@ -33,6 +35,8 @@ class _PlayerScreenState extends State<PlayerScreen> {
|
||||
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(
|
||||
index:
|
||||
@ -56,6 +60,20 @@ 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;
|
||||
|
@ -123,6 +123,17 @@ class _SettingsScreenState extends State<SettingsScreen> {
|
||||
onChanged: _preferences.setNormalizeAudio,
|
||||
),
|
||||
),
|
||||
Obx(
|
||||
() => SwitchListTile(
|
||||
contentPadding: const EdgeInsets.symmetric(horizontal: 24),
|
||||
secondary: const Icon(Icons.screen_lock_portrait),
|
||||
title: const Text('Player Wakelock'),
|
||||
subtitle: const Text(
|
||||
'Keep your screen doesn\'t lock in player screen'),
|
||||
value: _preferences.state.value.playerWakelock,
|
||||
onChanged: _preferences.setPlayerWakelock,
|
||||
),
|
||||
),
|
||||
const Divider(thickness: 0.3, height: 1),
|
||||
ListTile(
|
||||
contentPadding: const EdgeInsets.symmetric(horizontal: 24),
|
||||
|
Reference in New Issue
Block a user