From 0fdd8a62b2edefc6bc099d22960cefe034b782bc Mon Sep 17 00:00:00 2001 From: ggurdin <46800240+ggurdin@users.noreply.github.com> Date: Tue, 31 Dec 2024 12:26:56 -0500 Subject: [PATCH] fix: don't play button click sound on click message button (#1334) --- lib/pages/chat/events/message.dart | 3 --- lib/pages/chat/events/message_content.dart | 6 ------ lib/pangea/choreographer/controllers/choreographer.dart | 3 --- lib/pangea/controllers/app_version_controller.dart | 2 +- lib/pangea/widgets/chat/message_toolbar_buttons.dart | 1 + lib/pangea/widgets/pressable_button.dart | 8 +++++--- 6 files changed, 7 insertions(+), 16 deletions(-) diff --git a/lib/pages/chat/events/message.dart b/lib/pages/chat/events/message.dart index 80a40ac60..8919e6a7a 100644 --- a/lib/pages/chat/events/message.dart +++ b/lib/pages/chat/events/message.dart @@ -391,8 +391,6 @@ class Message extends StatelessWidget { showToolbar(pangeaMessageEvent); }, color: color, - clickPlayer: - controller.choreographer.clickPlayer, child: // Pangea# Container( @@ -521,7 +519,6 @@ class Message extends StatelessWidget { controller: controller, nextEvent: nextEvent, prevEvent: previousEvent, - isButton: isButton, // Pangea# ), if (event.hasAggregatedEvents( diff --git a/lib/pages/chat/events/message_content.dart b/lib/pages/chat/events/message_content.dart index 6b842a0a1..b68cd0a8c 100644 --- a/lib/pages/chat/events/message_content.dart +++ b/lib/pages/chat/events/message_content.dart @@ -41,7 +41,6 @@ class MessageContent extends StatelessWidget { final ChatController controller; final Event? nextEvent; final Event? prevEvent; - final bool isButton; // Pangea# const MessageContent( @@ -56,7 +55,6 @@ class MessageContent extends StatelessWidget { required this.controller, this.nextEvent, this.prevEvent, - this.isButton = false, // Pangea# required this.borderRadius, }); @@ -333,10 +331,6 @@ class MessageContent extends StatelessWidget { return; } - if (isButton) { - controller.choreographer.clickPlayer.play(); - } - controller.showToolbar( event, pangeaMessageEvent: pangeaMessageEvent, diff --git a/lib/pangea/choreographer/controllers/choreographer.dart b/lib/pangea/choreographer/controllers/choreographer.dart index b17a413c6..b65e261a2 100644 --- a/lib/pangea/choreographer/controllers/choreographer.dart +++ b/lib/pangea/choreographer/controllers/choreographer.dart @@ -17,7 +17,6 @@ import 'package:fluffychat/pangea/models/tokens_event_content_model.dart'; import 'package:fluffychat/pangea/utils/any_state_holder.dart'; import 'package:fluffychat/pangea/utils/error_handler.dart'; import 'package:fluffychat/pangea/utils/overlay.dart'; -import 'package:fluffychat/pangea/utils/play_click_sound.dart'; import 'package:fluffychat/pangea/widgets/chat/tts_controller.dart'; import 'package:fluffychat/pangea/widgets/igc/paywall_card.dart'; import 'package:flutter/foundation.dart'; @@ -43,7 +42,6 @@ class Choreographer { late AlternativeTranslator altTranslator; late ErrorService errorService; final tts = TtsController(); - final clickPlayer = ClickPlayer(); bool isFetching = false; int _timesClicked = 0; @@ -520,7 +518,6 @@ class Choreographer { _textController.dispose(); trialStream?.cancel(); tts.dispose(); - clickPlayer.dispose(); } LanguageModel? get l2Lang { diff --git a/lib/pangea/controllers/app_version_controller.dart b/lib/pangea/controllers/app_version_controller.dart index 836dcbcd2..dc0b75c9b 100644 --- a/lib/pangea/controllers/app_version_controller.dart +++ b/lib/pangea/controllers/app_version_controller.dart @@ -117,7 +117,7 @@ class AppVersionController { isOlderCurrentVersion = true; } - if (!isOlderCurrentVersion && !mandatoryUpdate) { + if (!isOlderCurrentVersion) { return; } diff --git a/lib/pangea/widgets/chat/message_toolbar_buttons.dart b/lib/pangea/widgets/chat/message_toolbar_buttons.dart index 26ea040fc..d4917f286 100644 --- a/lib/pangea/widgets/chat/message_toolbar_buttons.dart +++ b/lib/pangea/widgets/chat/message_toolbar_buttons.dart @@ -209,6 +209,7 @@ class ToolbarButton extends StatelessWidget { onPressed: enabled ? () => overlayController.updateToolbarMode(mode) : null, + playSound: true, child: AnimatedContainer( duration: FluffyThemes.animationDuration, height: buttonSize, diff --git a/lib/pangea/widgets/pressable_button.dart b/lib/pangea/widgets/pressable_button.dart index 97e78f69f..9e86b69f3 100644 --- a/lib/pangea/widgets/pressable_button.dart +++ b/lib/pangea/widgets/pressable_button.dart @@ -14,7 +14,7 @@ class PressableButton extends StatefulWidget { final void Function()? onPressed; final Stream? triggerAnimation; - final ClickPlayer? clickPlayer; + final bool playSound; final bool? isShadow; @@ -26,8 +26,8 @@ class PressableButton extends StatefulWidget { this.buttonHeight = 5, this.depressed = false, this.triggerAnimation, - this.clickPlayer, this.isShadow, + this.playSound = false, super.key, }); @@ -41,6 +41,7 @@ class PressableButtonState extends State late Animation _tweenAnimation; Completer? _animationCompleter; StreamSubscription? _triggerAnimationSubscription; + final ClickPlayer clickPlayer = ClickPlayer(); // seperate the widget's depressed state from the internal // state to enable animations when this changes @@ -112,7 +113,7 @@ class PressableButtonState extends State if (_animationCompleter != null) { await _animationCompleter!.future; } - widget.clickPlayer?.play(); + if (widget.playSound) clickPlayer.play(); if (!kIsWeb) { HapticFeedback.mediumImpact(); } @@ -128,6 +129,7 @@ class PressableButtonState extends State void dispose() { _controller.dispose(); _triggerAnimationSubscription?.cancel(); + clickPlayer.dispose(); super.dispose(); }