bug fixes

This commit is contained in:
MohammadTaha Basiri 2022-03-29 16:28:47 +04:30
parent 9369dffc03
commit a128684f27
5 changed files with 27 additions and 8 deletions

View File

@ -36,10 +36,13 @@ class _DirectListState extends State<DirectList> {
title: 'پیام‌ها', title: 'پیام‌ها',
trailing: state.unreadCount == 0 trailing: state.unreadCount == 0
? null ? null
: DidvanBadge( : Padding(
padding: const EdgeInsets.only(left: 20),
child: DidvanBadge(
text: state.unreadCount.toString(), text: state.unreadCount.toString(),
), ),
), ),
),
slivers: [ slivers: [
SliverStateHandler<DirectListState>( SliverStateHandler<DirectListState>(
onRetry: state.getDirectsList, onRetry: state.getDirectsList,

View File

@ -3,10 +3,12 @@ import 'package:didvan/constants/app_icons.dart';
import 'package:didvan/models/chat_room/chat_room.dart'; import 'package:didvan/models/chat_room/chat_room.dart';
import 'package:didvan/routes/routes.dart'; import 'package:didvan/routes/routes.dart';
import 'package:didvan/utils/date_time.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/badge.dart';
import 'package:didvan/views/widgets/didvan/divider.dart'; import 'package:didvan/views/widgets/didvan/divider.dart';
import 'package:didvan/views/widgets/didvan/text.dart'; import 'package:didvan/views/widgets/didvan/text.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
class ChatRoomItem extends StatelessWidget { class ChatRoomItem extends StatelessWidget {
final ChatRoom chatRoom; final ChatRoom chatRoom;
@ -20,7 +22,10 @@ class ChatRoomItem extends StatelessWidget {
Routes.direct, Routes.direct,
arguments: {'type': chatRoom.type}, arguments: {'type': chatRoom.type},
); );
final state = context.read<DirectListState>();
int unreadCount = chatRoom.unread;
chatRoom.unread = 0; chatRoom.unread = 0;
state.unreadCount -= unreadCount;
}, },
child: Container( child: Container(
color: Colors.transparent, color: Colors.transparent,

View File

@ -103,6 +103,9 @@ class StudioDetailsState extends CoreProvier {
if (nextStudio != null && !_positionListenerActivated) { if (nextStudio != null && !_positionListenerActivated) {
_positionListenerActivated = true; _positionListenerActivated = true;
MediaService.audioPlayer.positionStream.listen((event) { MediaService.audioPlayer.positionStream.listen((event) {
if (MediaService.audioPlayerTag?.contains('message') == true) {
return;
}
final duration = MediaService.audioPlayer.duration ?? final duration = MediaService.audioPlayer.duration ??
Duration(seconds: studio.duration); Duration(seconds: studio.duration);
if (event.compareTo(duration) > 0 && nextStudio != null) { if (event.compareTo(duration) > 0 && nextStudio != null) {

View File

@ -20,8 +20,7 @@ class DidvanAppBar extends StatelessWidget {
return Container( return Container(
height: appBarData.isSmall ? 56 : 72, height: appBarData.isSmall ? 56 : 72,
width: MediaQuery.of(context).size.width, width: MediaQuery.of(context).size.width,
padding: padding: const EdgeInsets.only(right: 4),
EdgeInsets.only(right: 4, left: appBarData.trailing == null ? 20 : 0),
decoration: BoxDecoration( decoration: BoxDecoration(
border: hasBorder border: hasBorder
? Border( ? Border(

View File

@ -3,6 +3,7 @@ import 'package:didvan/config/theme_data.dart';
import 'package:didvan/constants/app_icons.dart'; import 'package:didvan/constants/app_icons.dart';
import 'package:didvan/models/enums.dart'; import 'package:didvan/models/enums.dart';
import 'package:didvan/services/media/media.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/studio_details_state.dart';
import 'package:didvan/views/home/studio/studio_details/widgets/studio_details_widget.dart'; import 'package:didvan/views/home/studio/studio_details/widgets/studio_details_widget.dart';
import 'package:didvan/views/home/studio/studio_state.dart'; import 'package:didvan/views/home/studio/studio_state.dart';
@ -24,7 +25,8 @@ class DidvanBNB extends StatelessWidget {
: super(key: key); : super(key: key);
bool get _enablePlayerController => bool get _enablePlayerController =>
MediaService.currentPodcast != null && MediaService.audioPlayer.playing; MediaService.currentPodcast != null &&
(MediaService.audioPlayerTag?.contains('podcast') ?? false);
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
@ -39,7 +41,7 @@ class DidvanBNB extends StatelessWidget {
child: AnimatedContainer( child: AnimatedContainer(
padding: const EdgeInsets.only(top: 12), padding: const EdgeInsets.only(top: 12),
duration: DesignConfig.lowAnimationDuration, duration: DesignConfig.lowAnimationDuration,
height: _enablePlayerController ? 120 : 72, height: _enablePlayerController ? 128 : 72,
decoration: BoxDecoration( decoration: BoxDecoration(
color: DesignConfig.isDark color: DesignConfig.isDark
? Theme.of(context).colorScheme.focused ? Theme.of(context).colorScheme.focused
@ -51,7 +53,7 @@ class DidvanBNB extends StatelessWidget {
child: !_enablePlayerController child: !_enablePlayerController
? const SizedBox() ? const SizedBox()
: SizedBox( : SizedBox(
height: 48, height: 56,
child: Row( child: Row(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
@ -109,8 +111,15 @@ class DidvanBNB extends StatelessWidget {
: DidvanIcons.play_solid, : DidvanIcons.play_solid,
onPressed: () { onPressed: () {
MediaService.handleAudioPlayback( 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, id: state.studio.id,
isVoiceMessage: false,
); );
}, },
), ),