Skip to content

Commit

Permalink
chore: few tweaks
Browse files Browse the repository at this point in the history
  • Loading branch information
MSOB7YY committed Oct 9, 2023
1 parent 822072e commit e1889d6
Show file tree
Hide file tree
Showing 7 changed files with 57 additions and 15 deletions.
1 change: 1 addition & 0 deletions lib/controller/audio_handler.dart
Original file line number Diff line number Diff line change
Expand Up @@ -576,6 +576,7 @@ class NamidaAudioVideoHandler<Q extends Playable> extends BasicAudioHandler<Q> {
setVolume(settings.playerVolume.value);
if (waitForBuffer) await _waitForAllBuffers();
await _playAudioThenVideo();
settings.wakelockMode.value.toggleOn(currentVideoStream.value != null || currentCachedVideo.value != null);
}
if (!wasPlayingFromCache) {
startSleepAfterMinCount();
Expand Down
12 changes: 3 additions & 9 deletions lib/controller/miniplayer_controller.dart
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,12 @@ import 'package:flutter/scheduler.dart';
import 'package:flutter/services.dart';

import 'package:get/get.dart';
import 'package:wakelock_plus/wakelock_plus.dart';

import 'package:namida/core/namida_converter_ext.dart';
import 'package:namida/controller/player_controller.dart';
import 'package:namida/controller/settings_controller.dart';
import 'package:namida/controller/video_controller.dart';
import 'package:namida/core/dimensions.dart';
import 'package:namida/core/enums.dart';
import 'package:namida/core/extensions.dart';
import 'package:namida/core/icon_fonts/broken_icons.dart';
import 'package:namida/packages/mp.dart';
Expand Down Expand Up @@ -294,16 +293,11 @@ class MiniPlayerController {
}

void _toggleWakelockOn() {
if (settings.wakelockMode.value == WakelockMode.expanded) {
WakelockPlus.enable();
}
if (settings.wakelockMode.value == WakelockMode.expandedAndVideo && VideoController.inst.shouldShowVideo) {
WakelockPlus.enable();
}
settings.wakelockMode.value.toggleOn(VideoController.inst.shouldShowVideo);
}

void _toggleWakelockOff() {
WakelockPlus.disable();
settings.wakelockMode.value.toggleOff();
}

void snapToExpanded({bool haptic = true}) {
Expand Down
14 changes: 14 additions & 0 deletions lib/controller/navigator_controller.dart
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,16 @@ class NamidaNavigator {
MiniPlayerController.inst.ytMiniplayerKey.currentState?.animateToState(false);
}

void hideStuff({
bool searchMenuAndUnfocus = true,
bool minimizeMiniplayers = true,
bool closeDialogs = true,
}) {
if (searchMenuAndUnfocus) _hideSearchMenuAndUnfocus();
if (minimizeMiniplayers) _minimizeMiniplayer();
if (closeDialogs) closeAllDialogs();
}

void _hideEverything() {
_hideSearchMenuAndUnfocus();
_minimizeMiniplayer();
Expand Down Expand Up @@ -290,6 +300,10 @@ class NamidaNavigator {
innerDrawerKey.currentState?.close();
return;
}
if (MiniPlayerController.inst.ytMiniplayerKey.currentState?.isExpanded == true) {
MiniPlayerController.inst.ytMiniplayerKey.currentState?.animateToState(false);
return;
}
if (ScrollSearchController.inst.isGlobalSearchMenuShown.value) {
_hideSearchMenuAndUnfocus();
return;
Expand Down
7 changes: 5 additions & 2 deletions lib/controller/video_controller.dart
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart' hide Response;
import 'package:http/http.dart' as http;
import 'package:namida/ui/widgets/custom_widgets.dart';
import 'package:newpipeextractor_dart/models/streams.dart';
import 'package:picture_in_picture/picture_in_picture.dart';
import 'package:video_player/video_player.dart';
Expand All @@ -21,11 +20,13 @@ import 'package:namida/controller/indexer_controller.dart';
import 'package:namida/controller/navigator_controller.dart';
import 'package:namida/controller/player_controller.dart';
import 'package:namida/controller/settings_controller.dart';
import 'package:namida/youtube/controller/youtube_controller.dart';
import 'package:namida/core/constants.dart';
import 'package:namida/core/enums.dart';
import 'package:namida/core/extensions.dart';
import 'package:namida/core/namida_converter_ext.dart';
import 'package:namida/ui/widgets/custom_widgets.dart';
import 'package:namida/ui/widgets/video_widget.dart';
import 'package:namida/youtube/controller/youtube_controller.dart';

class NamidaVideoWidget extends StatelessWidget {
final bool enableControls;
Expand Down Expand Up @@ -329,6 +330,8 @@ class VideoController {
]);
await Future.delayed(const Duration(milliseconds: 100));
await Player.inst.refreshVideoSeekPosition(delayed: true);

settings.wakelockMode.value.toggleOn(shouldShowVideo);
});
}

Expand Down
13 changes: 13 additions & 0 deletions lib/core/namida_converter_ext.dart
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import 'package:get/get.dart';
import 'package:history_manager/history_manager.dart';
import 'package:newpipeextractor_dart/newpipeextractor_dart.dart';
import 'package:path/path.dart' as p;
import 'package:wakelock_plus/wakelock_plus.dart';

import 'package:namida/class/lang.dart';
import 'package:namida/class/media_info.dart';
Expand Down Expand Up @@ -399,6 +400,18 @@ extension PlaylistToQueueSource on Playlist {

extension WAKELOCKMODETEXT on WakelockMode {
String toText() => _NamidaConverters.inst.getTitle(this);
void toggleOn(bool isShowingVideo) {
if (settings.wakelockMode.value == WakelockMode.expanded) {
WakelockPlus.enable();
}
if (settings.wakelockMode.value == WakelockMode.expandedAndVideo && isShowingVideo) {
WakelockPlus.enable();
}
}

void toggleOff() {
WakelockPlus.enable();
}
}

extension NotificationTapActionTEXT on NotificationTapAction {
Expand Down
20 changes: 19 additions & 1 deletion lib/packages/mp.dart
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
import 'package:flutter/material.dart';

import 'package:namida/controller/settings_controller.dart';
import 'package:namida/controller/video_controller.dart';
import 'package:namida/core/extensions.dart';
import 'package:namida/core/namida_converter_ext.dart';

/// Used to retain state for cases like navigating after pip mode.
bool _wasExpanded = false;
Expand Down Expand Up @@ -56,6 +59,8 @@ class NamidaYTMiniplayerState extends State<NamidaYTMiniplayer> with SingleTicke
super.dispose();
}

bool get isExpanded => _dragheight >= widget.maxHeight - widget.minHeight;

double _dragheight = 0;

double get percentage => (controller.value - widget.minHeight) / (widget.maxHeight - widget.minHeight);
Expand All @@ -72,13 +77,26 @@ class NamidaYTMiniplayerState extends State<NamidaYTMiniplayer> with SingleTicke
void animateToState(bool toExpanded, {Duration? dur}) {
_updateHeight(toExpanded ? widget.maxHeight : widget.minHeight, duration: dur ?? widget.duration);
_wasExpanded = toExpanded;
if (toExpanded) {
_toggleWakelockOn();
} else {
_toggleWakelockOff();
}
}

void _toggleWakelockOn() {
settings.wakelockMode.value.toggleOn(VideoController.vcontroller.isInitialized);
}

void _toggleWakelockOff() {
settings.wakelockMode.value.toggleOff();
}

@override
Widget build(BuildContext context) {
return WillPopScope(
onWillPop: () async {
if (_dragheight >= widget.maxHeight - widget.minHeight) {
if (isExpanded) {
animateToState(false);
return false;
}
Expand Down
5 changes: 2 additions & 3 deletions lib/youtube/yt_utils.dart
Original file line number Diff line number Diff line change
Expand Up @@ -172,10 +172,9 @@ class YTUtils {

void jump() => YoutubeHistoryController.inst.scrollController.jumpTo(initialScrollOffset);

NamidaNavigator.inst.hideStuff();

if (YoutubeHistoryController.inst.scrollController.hasClients) {
NamidaNavigator.inst.closeAllDialogs();
MiniPlayerController.inst.snapToMini();
MiniPlayerController.inst.ytMiniplayerKey.currentState?.animateToState(false);
jump();
} else {
WidgetsBinding.instance.addPostFrameCallback((timeStamp) {
Expand Down

0 comments on commit e1889d6

Please sign in to comment.