Skip to content

Commit

Permalink
fix: resetting color when toggling pitch black
Browse files Browse the repository at this point in the history
while playing yt video
  • Loading branch information
MSOB7YY committed Nov 12, 2023
1 parent ac117f5 commit 90dd7d4
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 1 deletion.
4 changes: 4 additions & 0 deletions lib/controller/audio_handler.dart
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ import 'dart:io';

import 'package:audio_service/audio_service.dart';
import 'package:basic_audio_handler/basic_audio_handler.dart';
import 'package:flutter/material.dart';
import 'package:flutter/scheduler.dart';
import 'package:get/get_rx/src/rx_types/rx_types.dart';
import 'package:get/get_utils/src/extensions/num_extensions.dart';
Expand Down Expand Up @@ -208,6 +209,8 @@ class NamidaAudioVideoHandler<Q extends Playable> extends BasicAudioHandler<Q> {
// ==============================================================================================
// ================================== QueueManager Overriden ====================================

Color? latestExtractedColor;

@override
void onIndexChanged(int newIndex, Q newItem) async {
refreshNotification(newItem);
Expand All @@ -223,6 +226,7 @@ class NamidaAudioVideoHandler<Q extends Playable> extends BasicAudioHandler<Q> {
if (color != null && finalItem == currentItem) {
// -- only update if same item is still playing, i.e. user didn't skip.
CurrentColor.inst.updatePlayerColorFromColor(color.color);
latestExtractedColor = color.color;
}
}
},
Expand Down
3 changes: 3 additions & 0 deletions lib/controller/player_controller.dart
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import 'dart:async';
import 'dart:io';

import 'package:audio_service/audio_service.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:newpipeextractor_dart/newpipeextractor_dart.dart';

Expand Down Expand Up @@ -78,6 +79,8 @@ class Player {

int get sleepingTrackIndex => sleepAfterTracks + currentIndex - 1;

Color? get latestExtractedColor => _audioHandler.latestExtractedColor;

// -- error playing track
void cancelPlayErrorSkipTimer() => _audioHandler.cancelPlayErrorSkipTimer();
int get playErrorRemainingSecondsToSkip => _audioHandler.playErrorRemainingSecondsToSkip;
Expand Down
6 changes: 5 additions & 1 deletion lib/ui/widgets/settings/theme_settings.dart
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,11 @@ class ThemeSetting extends StatelessWidget {
const ThemeSetting({super.key});

Future<void> _refreshColorCurrentTrack() async {
await CurrentColor.inst.updatePlayerColorFromTrack(Player.inst.nowPlayingTWD, null);
if (Player.inst.currentQueueYoutube.isNotEmpty && Player.inst.latestExtractedColor != null) {
CurrentColor.inst.updatePlayerColorFromColor(Player.inst.latestExtractedColor!);
} else {
await CurrentColor.inst.updatePlayerColorFromTrack(Player.inst.nowPlayingTWD, null);
}
}

Widget getThemeTile() {
Expand Down

0 comments on commit 90dd7d4

Please sign in to comment.