studio edits

This commit is contained in:
MohammadTaha Basiri 2022-12-09 00:19:06 +03:30
parent ebd2b4ec51
commit 5d70e19811
7 changed files with 49 additions and 12 deletions

View File

@ -12,7 +12,7 @@ class StudioRequestArgs {
this.asc,
this.search,
this.order,
this.type,
this.type = 'video',
this.startDate,
this.endDate,
});

View File

@ -1,10 +1,12 @@
import 'package:didvan/main.dart';
import 'package:didvan/models/requests/news.dart';
import 'package:didvan/models/requests/radar.dart';
import 'package:didvan/models/requests/studio.dart';
import 'package:didvan/models/settings_data.dart';
import 'package:didvan/routes/routes.dart';
import 'package:didvan/services/media/media.dart';
import 'package:didvan/services/storage/storage.dart';
import 'package:didvan/views/home/home_state.dart';
import 'package:didvan/views/home/studio/studio_details/studio_details_state.dart';
import 'package:firebase_core/firebase_core.dart';
import 'package:firebase_messaging/firebase_messaging.dart';
@ -79,16 +81,30 @@ class AppInitializer {
}
}
static void handleCLick() {
static Future<void> handleCLick(
HomeState state, TabController tabController) async {
if (clickAction != null) {
final isRadar = clickAction!.contains('radar');
final action = clickAction!.split('-').first;
final isStudio = action != 'radar' && action != 'news';
String routeName = '/${isStudio ? 'studio' : action}-details';
if (action == 'podcast') {
state.currentPageIndex = 3;
tabController.animateTo(3);
await Future.delayed(const Duration(milliseconds: 500));
clickAction = null;
return;
}
Navigator.of(navigatorKey.currentContext!).pushNamed(
isRadar ? Routes.radarDetails : Routes.newsDetails,
routeName,
arguments: {
'id': int.parse(clickAction!.split('-')[1]),
'args': isRadar
'args': routeName == Routes.newsDetails
? const NewsRequestArgs(page: 0)
: routeName == Routes.radarDetails
? const RadarRequestArgs(page: 0)
: const NewsRequestArgs(page: 0),
: action == 'video'
? const StudioRequestArgs(page: 0)
: null,
'onMarkChanged': (id, value) {},
'onCommentsChanged': (id, count) {},
'hasUnmarkConfirmation': false,

View File

@ -21,6 +21,7 @@ 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';
import 'package:didvan/views/widgets/item_title.dart';
import 'package:didvan/views/widgets/logos/didvan_vertical_logo.dart';
import 'package:didvan/views/widgets/state_handlers/empty_result.dart';
import 'package:didvan/views/widgets/state_handlers/sliver_state_handler.dart';
import 'package:flutter/material.dart';
@ -51,10 +52,11 @@ class _StudioState extends State<Studio> {
SliverToBoxAdapter(
child: Row(
children: [
const Expanded(child: LogoAppBar(type: 'studio')),
const LogoAppBar(),
Padding(
padding:
EdgeInsets.only(top: MediaQuery.of(context).padding.top),
padding: EdgeInsets.only(
top: MediaQuery.of(context).padding.top,
),
child: DidvanIconButton(
icon: DidvanIcons.bookmark_regular,
onPressed: () => Navigator.of(context).pushNamed(

View File

@ -116,6 +116,7 @@ class _StudioDetailsState extends State<StudioDetails> {
final betterPlayerDataSource = BetterPlayerDataSource(
BetterPlayerDataSourceType.network,
state.studio.link,
videoFormat: BetterPlayerVideoFormat.hls,
);
await _betterPlayerController.clearCache();
await _betterPlayerController.setupDataSource(betterPlayerDataSource);

View File

@ -96,6 +96,11 @@ class StudioDetailsState extends CoreProvier {
}
final result = service.result;
studio = StudioDetailsData.fromJson(result['studio']);
if (args?.page == 0) {
initialIndex = 0;
appState = AppState.idle;
return;
}
if (result['nextStudio'].isNotEmpty && this.args?.page != 0) {
nextStudio = StudioDetailsData.fromJson(result['nextStudio']);
}

View File

@ -5,6 +5,7 @@ import 'package:didvan/models/overview_data.dart';
import 'package:didvan/models/requests/studio.dart';
import 'package:didvan/models/slider_data.dart';
import 'package:didvan/providers/core.dart';
import 'package:didvan/services/app_initalizer.dart';
import 'package:didvan/services/network/request.dart';
import 'package:didvan/services/network/request_helper.dart';
@ -67,7 +68,8 @@ class StudioState extends CoreProvier {
void init() {
search = '';
lastSearch = '';
_videosSelected = true;
_videosSelected =
!(AppInitializer.clickAction?.contains('podcast') == true);
selectedSortTypeIndex = 0;
Future.delayed(Duration.zero, () {
_getSliders();

View File

@ -3,7 +3,9 @@ import 'package:didvan/config/design_config.dart';
import 'package:didvan/config/theme_data.dart';
import 'package:didvan/constants/app_icons.dart';
import 'package:didvan/models/enums.dart';
import 'package:didvan/models/requests/radar.dart';
import 'package:didvan/providers/user.dart';
import 'package:didvan/routes/routes.dart';
import 'package:didvan/services/media/media.dart';
import 'package:didvan/utils/action_sheet.dart';
import 'package:didvan/views/home/studio/studio_details/studio_details_state.dart';
@ -114,7 +116,16 @@ class _PlayerNavBar extends StatelessWidget {
builder: (context, snapshot) => GestureDetector(
onTap: () => MediaService.currentPodcast == null ||
MediaService.currentPodcast?.description == 'radar'
? null
? Navigator.of(context).pushNamed(
Routes.radarDetails,
arguments: {
'onMarkChanged': (id, value) {},
'onCommentsChanged': (id, value) {},
'id': MediaService.currentPodcast?.id,
'args': const RadarRequestArgs(page: 0),
'hasUnmarkConfirmation': false,
},
)
: _showPlayerBottomSheet(context),
child: Consumer<StudioDetailsState>(
builder: (context, state, child) => AnimatedContainer(