bug fixes

This commit is contained in:
MohammadTaha Basiri 2022-12-08 01:15:11 +03:30
parent 8f0b95ae81
commit 256b8db0ad
6 changed files with 77 additions and 2 deletions

View File

@ -4,6 +4,8 @@ class StudioRequestArgs {
final String? order; final String? order;
final String? type; final String? type;
final bool? asc; final bool? asc;
final String? startDate;
final String? endDate;
const StudioRequestArgs({ const StudioRequestArgs({
required this.page, required this.page,
@ -11,5 +13,7 @@ class StudioRequestArgs {
this.search, this.search,
this.order, this.order,
this.type, this.type,
this.startDate,
this.endDate,
}); });
} }

View File

@ -15,6 +15,9 @@ class UserProvider extends CoreProvier {
int _unreadMessageCount = 0; int _unreadMessageCount = 0;
set unreadMessageCount(int value) { set unreadMessageCount(int value) {
if (value < 0) {
return;
}
_unreadMessageCount = value; _unreadMessageCount = value;
notifyListeners(); notifyListeners();
} }

View File

@ -97,6 +97,8 @@ class RequestHelper {
MapEntry('order', args.order), MapEntry('order', args.order),
MapEntry('search', args.search), MapEntry('search', args.search),
MapEntry('asc', args.asc), MapEntry('asc', args.asc),
MapEntry('start', args.startDate),
MapEntry('end', args.endDate),
])}'; ])}';
static String studioOverviews({required StudioRequestArgs args}) => static String studioOverviews({required StudioRequestArgs args}) =>
_baseStudioUrl + _baseStudioUrl +
@ -106,6 +108,8 @@ class RequestHelper {
MapEntry('order', args.order), MapEntry('order', args.order),
MapEntry('search', args.search), MapEntry('search', args.search),
MapEntry('asc', args.asc), MapEntry('asc', args.asc),
MapEntry('start', args.startDate),
MapEntry('end', args.endDate),
]); ]);
static String statisticOverviews(int? category) => static String statisticOverviews(int? category) =>

View File

@ -10,11 +10,13 @@ import 'package:didvan/utils/action_sheet.dart';
import 'package:didvan/views/home/studio/studio_state.dart'; import 'package:didvan/views/home/studio/studio_state.dart';
import 'package:didvan/views/home/studio/widgets/slider.dart'; import 'package:didvan/views/home/studio/widgets/slider.dart';
import 'package:didvan/views/home/studio/widgets/tab_bar.dart'; import 'package:didvan/views/home/studio/widgets/tab_bar.dart';
import 'package:didvan/views/home/widgets/date_picker_button.dart';
import 'package:didvan/views/home/widgets/logo_app_bar.dart'; import 'package:didvan/views/home/widgets/logo_app_bar.dart';
import 'package:didvan/views/home/widgets/overview/podcast.dart'; import 'package:didvan/views/home/widgets/overview/podcast.dart';
import 'package:didvan/views/home/widgets/overview/video.dart'; import 'package:didvan/views/home/widgets/overview/video.dart';
import 'package:didvan/views/home/widgets/search_field.dart'; import 'package:didvan/views/home/widgets/search_field.dart';
import 'package:didvan/views/widgets/animated_visibility.dart'; import 'package:didvan/views/widgets/animated_visibility.dart';
import 'package:didvan/views/widgets/didvan/checkbox.dart';
import 'package:didvan/views/widgets/didvan/divider.dart'; import 'package:didvan/views/widgets/didvan/divider.dart';
import 'package:didvan/views/widgets/didvan/icon_button.dart'; import 'package:didvan/views/widgets/didvan/icon_button.dart';
import 'package:didvan/views/widgets/didvan/radial_button.dart'; import 'package:didvan/views/widgets/didvan/radial_button.dart';
@ -75,6 +77,8 @@ class _StudioState extends State<Studio> {
title: state.videosSelected ? 'ویدئو' : 'پادکست', title: state.videosSelected ? 'ویدئو' : 'پادکست',
onChanged: _onChanged, onChanged: _onChanged,
focusNode: _focusNode, focusNode: _focusNode,
isFiltered: false,
onFilterButtonPressed: _showFilterBottomSheet,
), ),
), ),
), ),
@ -224,4 +228,49 @@ class _StudioState extends State<Studio> {
), ),
); );
} }
Future<void> _showFilterBottomSheet() async {
final state = context.read<StudioState>();
await ActionSheetUtils.showBottomSheet(
data: ActionSheetData(
title: 'فیلتر جستجو',
smallDismissButton: true,
titleIcon: DidvanIcons.filter_regular,
dismissTitle: 'حذف فیلتر',
confrimTitle: 'نمایش نتایج',
onDismissed: () => state.resetFilters(false),
onConfirmed: () => state.getStudios(page: 1),
content: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
ItemTitle(
title: 'تاریخ رادار',
style: Theme.of(context).textTheme.bodyText2,
icon: DidvanIcons.calendar_range_regular,
),
const SizedBox(height: 8),
StatefulBuilder(
builder: (context, setState) => Row(
children: [
DatePickerButton(
initialValue: state.startDate?.toString(),
emptyText: 'از تاریخ',
onPicked: (date) => setState(() => state.startDate = date),
lastDate: state.endDate,
),
const SizedBox(width: 8),
DatePickerButton(
initialValue: state.endDate,
emptyText: 'تا تاریخ',
onPicked: (date) => setState(() => state.endDate = date),
firstDate: state.startDate,
),
],
),
),
],
),
),
);
}
} }

View File

@ -12,6 +12,9 @@ class StudioState extends CoreProvier {
final List<OverviewData> studios = []; final List<OverviewData> studios = [];
final List<SliderData> sliders = []; final List<SliderData> sliders = [];
String? startDate;
String? endDate;
String search = ''; String search = '';
String lastSearch = ''; String lastSearch = '';
int page = 1; int page = 1;
@ -25,6 +28,16 @@ class StudioState extends CoreProvier {
bool get searching => search.isNotEmpty; bool get searching => search.isNotEmpty;
void resetFilters(bool isInit) {
startDate = null;
endDate = null;
search = '';
lastSearch = '';
if (!isInit) {
getStudios(page: 1);
}
}
set videosSelected(bool value) { set videosSelected(bool value) {
if (_videosSelected == value || appState == AppState.busy) return; if (_videosSelected == value || appState == AppState.busy) return;
_videosSelected = value; _videosSelected = value;
@ -91,6 +104,8 @@ class StudioState extends CoreProvier {
search: search, search: search,
order: order, order: order,
asc: selectedSortTypeIndex == 1, asc: selectedSortTypeIndex == 1,
endDate: endDate?.split(' ').first,
startDate: startDate?.split(' ').first,
), ),
), ),
); );

View File

@ -87,7 +87,7 @@ class AudioPlayerWidget extends StatelessWidget {
DidvanText( DidvanText(
state.stopOnPodcastEnds state.stopOnPodcastEnds
? 'پایان پادکست' ? 'پایان پادکست'
: '\'' + state.timerValue.toString(), : '\'${state.timerValue}',
isEnglishFont: true, isEnglishFont: true,
style: Theme.of(context).textTheme.overline, style: Theme.of(context).textTheme.overline,
color: Theme.of(context).colorScheme.title, color: Theme.of(context).colorScheme.title,
@ -293,7 +293,7 @@ class AudioPlayerWidget extends StatelessWidget {
(timer) { (timer) {
timerValue--; timerValue--;
if (timerValue == 0) { if (timerValue == 0) {
MediaService.audioPlayer.stop(); MediaService.audioPlayer.pause();
state.stopOnPodcastEnds = false; state.stopOnPodcastEnds = false;
state.timer?.cancel(); state.timer?.cancel();
state.timer = null; state.timer = null;