bug fixes
This commit is contained in:
parent
8f0b95ae81
commit
256b8db0ad
|
|
@ -4,6 +4,8 @@ class StudioRequestArgs {
|
|||
final String? order;
|
||||
final String? type;
|
||||
final bool? asc;
|
||||
final String? startDate;
|
||||
final String? endDate;
|
||||
|
||||
const StudioRequestArgs({
|
||||
required this.page,
|
||||
|
|
@ -11,5 +13,7 @@ class StudioRequestArgs {
|
|||
this.search,
|
||||
this.order,
|
||||
this.type,
|
||||
this.startDate,
|
||||
this.endDate,
|
||||
});
|
||||
}
|
||||
|
|
|
|||
|
|
@ -15,6 +15,9 @@ class UserProvider extends CoreProvier {
|
|||
int _unreadMessageCount = 0;
|
||||
|
||||
set unreadMessageCount(int value) {
|
||||
if (value < 0) {
|
||||
return;
|
||||
}
|
||||
_unreadMessageCount = value;
|
||||
notifyListeners();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -97,6 +97,8 @@ class RequestHelper {
|
|||
MapEntry('order', args.order),
|
||||
MapEntry('search', args.search),
|
||||
MapEntry('asc', args.asc),
|
||||
MapEntry('start', args.startDate),
|
||||
MapEntry('end', args.endDate),
|
||||
])}';
|
||||
static String studioOverviews({required StudioRequestArgs args}) =>
|
||||
_baseStudioUrl +
|
||||
|
|
@ -106,6 +108,8 @@ class RequestHelper {
|
|||
MapEntry('order', args.order),
|
||||
MapEntry('search', args.search),
|
||||
MapEntry('asc', args.asc),
|
||||
MapEntry('start', args.startDate),
|
||||
MapEntry('end', args.endDate),
|
||||
]);
|
||||
|
||||
static String statisticOverviews(int? category) =>
|
||||
|
|
|
|||
|
|
@ -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/widgets/slider.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/overview/podcast.dart';
|
||||
import 'package:didvan/views/home/widgets/overview/video.dart';
|
||||
import 'package:didvan/views/home/widgets/search_field.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/icon_button.dart';
|
||||
import 'package:didvan/views/widgets/didvan/radial_button.dart';
|
||||
|
|
@ -75,6 +77,8 @@ class _StudioState extends State<Studio> {
|
|||
title: state.videosSelected ? 'ویدئو' : 'پادکست',
|
||||
onChanged: _onChanged,
|
||||
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,
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -12,6 +12,9 @@ class StudioState extends CoreProvier {
|
|||
final List<OverviewData> studios = [];
|
||||
final List<SliderData> sliders = [];
|
||||
|
||||
String? startDate;
|
||||
String? endDate;
|
||||
|
||||
String search = '';
|
||||
String lastSearch = '';
|
||||
int page = 1;
|
||||
|
|
@ -25,6 +28,16 @@ class StudioState extends CoreProvier {
|
|||
|
||||
bool get searching => search.isNotEmpty;
|
||||
|
||||
void resetFilters(bool isInit) {
|
||||
startDate = null;
|
||||
endDate = null;
|
||||
search = '';
|
||||
lastSearch = '';
|
||||
if (!isInit) {
|
||||
getStudios(page: 1);
|
||||
}
|
||||
}
|
||||
|
||||
set videosSelected(bool value) {
|
||||
if (_videosSelected == value || appState == AppState.busy) return;
|
||||
_videosSelected = value;
|
||||
|
|
@ -91,6 +104,8 @@ class StudioState extends CoreProvier {
|
|||
search: search,
|
||||
order: order,
|
||||
asc: selectedSortTypeIndex == 1,
|
||||
endDate: endDate?.split(' ').first,
|
||||
startDate: startDate?.split(' ').first,
|
||||
),
|
||||
),
|
||||
);
|
||||
|
|
|
|||
|
|
@ -87,7 +87,7 @@ class AudioPlayerWidget extends StatelessWidget {
|
|||
DidvanText(
|
||||
state.stopOnPodcastEnds
|
||||
? 'پایان پادکست'
|
||||
: '\'' + state.timerValue.toString(),
|
||||
: '\'${state.timerValue}',
|
||||
isEnglishFont: true,
|
||||
style: Theme.of(context).textTheme.overline,
|
||||
color: Theme.of(context).colorScheme.title,
|
||||
|
|
@ -293,7 +293,7 @@ class AudioPlayerWidget extends StatelessWidget {
|
|||
(timer) {
|
||||
timerValue--;
|
||||
if (timerValue == 0) {
|
||||
MediaService.audioPlayer.stop();
|
||||
MediaService.audioPlayer.pause();
|
||||
state.stopOnPodcastEnds = false;
|
||||
state.timer?.cancel();
|
||||
state.timer = null;
|
||||
|
|
|
|||
Loading…
Reference in New Issue