diff --git a/lib/views/home/settings/direct_list/direct_list.dart b/lib/views/home/settings/direct_list/direct_list.dart index 7c8d264..f0f0966 100644 --- a/lib/views/home/settings/direct_list/direct_list.dart +++ b/lib/views/home/settings/direct_list/direct_list.dart @@ -36,8 +36,11 @@ class _DirectListState extends State { title: 'پیام‌ها', trailing: state.unreadCount == 0 ? null - : DidvanBadge( - text: state.unreadCount.toString(), + : Padding( + padding: const EdgeInsets.only(left: 20), + child: DidvanBadge( + text: state.unreadCount.toString(), + ), ), ), slivers: [ diff --git a/lib/views/home/settings/direct_list/widgets/direct_item.dart b/lib/views/home/settings/direct_list/widgets/direct_item.dart index 6aa9a45..da51414 100644 --- a/lib/views/home/settings/direct_list/widgets/direct_item.dart +++ b/lib/views/home/settings/direct_list/widgets/direct_item.dart @@ -3,10 +3,12 @@ import 'package:didvan/constants/app_icons.dart'; import 'package:didvan/models/chat_room/chat_room.dart'; import 'package:didvan/routes/routes.dart'; import 'package:didvan/utils/date_time.dart'; +import 'package:didvan/views/home/settings/direct_list/direct_list_state.dart'; import 'package:didvan/views/widgets/didvan/badge.dart'; import 'package:didvan/views/widgets/didvan/divider.dart'; import 'package:didvan/views/widgets/didvan/text.dart'; import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; class ChatRoomItem extends StatelessWidget { final ChatRoom chatRoom; @@ -20,7 +22,10 @@ class ChatRoomItem extends StatelessWidget { Routes.direct, arguments: {'type': chatRoom.type}, ); + final state = context.read(); + int unreadCount = chatRoom.unread; chatRoom.unread = 0; + state.unreadCount -= unreadCount; }, child: Container( color: Colors.transparent, diff --git a/lib/views/home/studio/studio_details/studio_details_state.dart b/lib/views/home/studio/studio_details/studio_details_state.dart index b127d42..fa59702 100644 --- a/lib/views/home/studio/studio_details/studio_details_state.dart +++ b/lib/views/home/studio/studio_details/studio_details_state.dart @@ -103,6 +103,9 @@ class StudioDetailsState extends CoreProvier { if (nextStudio != null && !_positionListenerActivated) { _positionListenerActivated = true; MediaService.audioPlayer.positionStream.listen((event) { + if (MediaService.audioPlayerTag?.contains('message') == true) { + return; + } final duration = MediaService.audioPlayer.duration ?? Duration(seconds: studio.duration); if (event.compareTo(duration) > 0 && nextStudio != null) { diff --git a/lib/views/widgets/didvan/app_bar.dart b/lib/views/widgets/didvan/app_bar.dart index 1f1e6ed..81770c8 100644 --- a/lib/views/widgets/didvan/app_bar.dart +++ b/lib/views/widgets/didvan/app_bar.dart @@ -20,8 +20,7 @@ class DidvanAppBar extends StatelessWidget { return Container( height: appBarData.isSmall ? 56 : 72, width: MediaQuery.of(context).size.width, - padding: - EdgeInsets.only(right: 4, left: appBarData.trailing == null ? 20 : 0), + padding: const EdgeInsets.only(right: 4), decoration: BoxDecoration( border: hasBorder ? Border( diff --git a/lib/views/widgets/didvan/bnb.dart b/lib/views/widgets/didvan/bnb.dart index 84eb6eb..9982251 100644 --- a/lib/views/widgets/didvan/bnb.dart +++ b/lib/views/widgets/didvan/bnb.dart @@ -3,6 +3,7 @@ import 'package:didvan/config/theme_data.dart'; import 'package:didvan/constants/app_icons.dart'; import 'package:didvan/models/enums.dart'; import 'package:didvan/services/media/media.dart'; +import 'package:didvan/services/storage/storage.dart'; import 'package:didvan/views/home/studio/studio_details/studio_details_state.dart'; import 'package:didvan/views/home/studio/studio_details/widgets/studio_details_widget.dart'; import 'package:didvan/views/home/studio/studio_state.dart'; @@ -24,7 +25,8 @@ class DidvanBNB extends StatelessWidget { : super(key: key); bool get _enablePlayerController => - MediaService.currentPodcast != null && MediaService.audioPlayer.playing; + MediaService.currentPodcast != null && + (MediaService.audioPlayerTag?.contains('podcast') ?? false); @override Widget build(BuildContext context) { @@ -39,7 +41,7 @@ class DidvanBNB extends StatelessWidget { child: AnimatedContainer( padding: const EdgeInsets.only(top: 12), duration: DesignConfig.lowAnimationDuration, - height: _enablePlayerController ? 120 : 72, + height: _enablePlayerController ? 128 : 72, decoration: BoxDecoration( color: DesignConfig.isDark ? Theme.of(context).colorScheme.focused @@ -51,7 +53,7 @@ class DidvanBNB extends StatelessWidget { child: !_enablePlayerController ? const SizedBox() : SizedBox( - height: 48, + height: 56, child: Row( crossAxisAlignment: CrossAxisAlignment.start, children: [ @@ -109,8 +111,15 @@ class DidvanBNB extends StatelessWidget { : DidvanIcons.play_solid, onPressed: () { MediaService.handleAudioPlayback( - audioSource: state.studio.media, + audioSource: state.downloadedFileIds + .contains(state.studio.id) + ? StorageService.appDocsDir + + '/podcasts/podcast-${state.studio.id}.mp3' + : state.studio.media, + isNetworkAudio: !state.downloadedFileIds + .contains(state.studio.id), id: state.studio.id, + isVoiceMessage: false, ); }, ),