You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
mohemm-flutter-app/lib/ui/disclosure/widgets/disclosure_banner.dart

557 lines
26 KiB
Dart

// import 'dart:developer';
// import 'dart:math' as math;
//
// import 'package:easy_localization/easy_localization.dart';
// import 'package:flutter/foundation.dart';
// import 'package:flutter/material.dart';
// import 'package:flutter_svg/flutter_svg.dart';
// import 'package:mohem_flutter_app/app_state/app_state.dart';
// import 'package:mohem_flutter_app/classes/colors.dart';
// import 'package:mohem_flutter_app/classes/decorations_helper.dart';
// import 'package:mohem_flutter_app/classes/utils.dart';
// import 'package:mohem_flutter_app/config/routes.dart';
// import 'package:mohem_flutter_app/extensions/int_extensions.dart';
// import 'package:mohem_flutter_app/extensions/string_extensions.dart';
// import 'package:mohem_flutter_app/extensions/widget_extensions.dart';
// import 'package:mohem_flutter_app/generated/locale_keys.g.dart';
// import 'package:mohem_flutter_app/main.dart';
// import 'package:mohem_flutter_app/ui/disclosure/disclosure_provider.dart';
// import 'package:mohem_flutter_app/ui/disclosure/widgets/countdown_timer_main_screen.dart';
// import 'package:provider/provider.dart';
//
// // It is used to pass a dummy time to test Marathon
// int dummyTime = DateTime.now().millisecondsSinceEpoch + 8690;
//
// class DisclosureBanner extends StatelessWidget {
// const DisclosureBanner({Key? key}) : super(key: key);
//
// Widget getUnPrivilegedMarathon(BuildContext context) {
// return Container(
// decoration: MyDecorations.shadowDecoration,
// height: isTablet ? MediaQuery.of(context).size.height * 0.17 : MediaQuery.of(context).size.height * 0.11,
// clipBehavior: Clip.antiAlias,
// child: Stack(
// children: <Widget>[
// Transform(
// alignment: Alignment.center,
// transform: Matrix4.rotationY(
// AppState().isArabic(context) ? math.pi : 0,
// ),
// child: SvgPicture.asset(
// "assets/images/marathon_banner_bg.svg",
// fit: BoxFit.fill,
// width: double.infinity,
// ),
// ),
// AppState().isArabic(context)
// ? Positioned(
// right: -15,
// top: -10,
// child: Transform.rotate(
// angle: 10,
// child: Container(
// width: isTablet ? 70 : 65,
// height: isTablet ? 40 : 32,
// color: MyColors.darkDigitColor,
// ),
// ),
// )
// : Positioned(
// left: -20,
// top: -10,
// child: Transform.rotate(
// angle: 15,
// child: Container(
// width: isTablet ? 70 : 65,
// height: isTablet ? 40 : 32,
// color: MyColors.darkDigitColor,
// ),
// ),
// ),
// SizedBox(
// width: double.infinity,
// height: double.infinity,
// child: Row(
// children: <Widget>[
// const Expanded(
// flex: 3,
// child: SizedBox(
// width: double.infinity,
// height: double.infinity,
// ),
// ),
// Expanded(
// flex: AppState().isArabic(context) ? 4 : 5,
// child: SizedBox(
// width: double.infinity,
// height: double.infinity,
// child: Row(
// mainAxisAlignment: MainAxisAlignment.start,
// children: <Widget>[
// Column(
// mainAxisAlignment: MainAxisAlignment.center,
// crossAxisAlignment: CrossAxisAlignment.start,
// mainAxisSize: MainAxisSize.min,
// children: <Widget>[
// AppState().isArabic(context) ? 0.height : 5.height,
// Text(
// LocaleKeys.getReadyForContest.tr(),
// style: TextStyle(
// fontSize: isTablet ? 20 : 11,
// fontStyle: FontStyle.italic,
// fontWeight: FontWeight.w600,
// color: MyColors.white.withOpacity(0.83),
// letterSpacing: -0.4,
// ),
// ),
// Text(
// LocaleKeys.brainMarathon.tr(),
// style: TextStyle(
// fontStyle: FontStyle.italic,
// fontSize: isTablet ? 30 : 19,
// fontWeight: FontWeight.bold,
// color: MyColors.white.withOpacity(0.83),
// height: 32 / 22,
// ),
// ),
// ],
// ).paddingOnly(
// left: AppState().isArabic(context) ? 12 : 3,
// right: AppState().isArabic(context) ? 3 : 12,
// )
// ],
// ),
// ),
// ),
// ],
// ),
// ),
// AppState().isArabic(context)
// ? Align(
// alignment: Alignment.topRight,
// child: SizedBox(
// height: isTablet ? 30 : 20,
// width: isTablet ? 45 : 35,
// child: Transform.rotate(
// angle: math.pi / 4.5,
// child: Text(
// LocaleKeys.brainMarathon.tr(),
// textAlign: TextAlign.center,
// maxLines: 2,
// style: TextStyle(
// color: MyColors.white,
// fontWeight: FontWeight.bold,
// fontSize: isTablet ? 8 : 6,
// height: 1.2,
// ),
// ),
// ),
// ),
// ).paddingOnly(top: 5)
// : Align(
// alignment: Alignment.topLeft,
// child: SizedBox(
// height: isTablet ? 30 : 20,
// width: isTablet ? 45 : 35,
// child: Transform.rotate(
// angle: -math.pi / 4.5,
// child: Text(
// LocaleKeys.brainMarathon.tr(),
// textAlign: TextAlign.center,
// maxLines: 2,
// style: TextStyle(
// color: MyColors.kWhiteColor,
// fontWeight: FontWeight.bold,
// fontSize: isTablet ? 8 : 6,
// height: 1.2,
// ),
// ),
// ),
// ),
// ).paddingOnly(top: 5),
// Container(
// height: double.infinity,
// width: double.infinity,
// color: Colors.black.withOpacity(0.6),
// child: const Icon(
// Icons.lock_rounded,
// color: MyColors.lightGreyIconColor,
// ),
// ),
// ],
// ),
// );
// }
//
// Widget getNoUpcomingMarathonWidget(BuildContext context) {
// return Container(
// decoration: MyDecorations.shadowDecoration,
// height: isTablet ? MediaQuery.of(context).size.height * 0.17 : MediaQuery.of(context).size.height * 0.11,
// clipBehavior: Clip.antiAlias,
// child: Stack(
// children: <Widget>[
// Transform(
// alignment: Alignment.center,
// transform: Matrix4.rotationY(
// AppState().isArabic(context) ? math.pi : 0,
// ),
// child: SvgPicture.asset(
// "assets/images/marathon_banner_bg.svg",
// fit: BoxFit.fill,
// width: double.infinity,
// ),
// ),
// AppState().isArabic(context)
// ? Positioned(
// right: -15,
// top: -10,
// child: Transform.rotate(
// angle: 10,
// child: Container(
// width: isTablet ? 70 : 65,
// height: isTablet ? 40 : 32,
// color: MyColors.darkDigitColor,
// ),
// ),
// )
// : Positioned(
// left: -20,
// top: -10,
// child: Transform.rotate(
// angle: 15,
// child: Container(
// width: isTablet ? 70 : 65,
// height: isTablet ? 40 : 32,
// color: MyColors.darkDigitColor,
// ),
// ),
// ),
// SizedBox(
// width: double.infinity,
// height: double.infinity,
// child: Row(
// children: <Widget>[
// const Expanded(
// flex: 3,
// child: SizedBox(
// width: double.infinity,
// height: double.infinity,
// ),
// ),
// Expanded(
// flex: AppState().isArabic(context) ? 4 : 5,
// child: SizedBox(
// width: double.infinity,
// height: double.infinity,
// child: Row(
// mainAxisAlignment: MainAxisAlignment.start,
// children: <Widget>[
// Column(
// mainAxisAlignment: MainAxisAlignment.center,
// crossAxisAlignment: CrossAxisAlignment.start,
// mainAxisSize: MainAxisSize.min,
// children: <Widget>[
// AppState().isArabic(context) ? 0.height : 5.height,
// Text(
// LocaleKeys.noUpcoming.tr(),
// style: TextStyle(
// fontSize: isTablet ? 20 : 11,
// fontStyle: FontStyle.italic,
// fontWeight: FontWeight.w600,
// color: MyColors.white.withOpacity(0.83),
// letterSpacing: -0.4,
// ),
// ),
// Text(
// LocaleKeys.brainMarathon.tr(),
// style: TextStyle(
// fontStyle: FontStyle.italic,
// fontSize: isTablet ? 30 : 19,
// fontWeight: FontWeight.bold,
// color: MyColors.white.withOpacity(0.83),
// height: 32 / 22,
// ),
// ),
// Text(
// LocaleKeys.youCanPlayDemo.tr(),
// style: TextStyle(
// fontSize: isTablet ? 20 : 11,
// fontStyle: FontStyle.italic,
// fontWeight: FontWeight.w600,
// color: MyColors.white.withOpacity(0.83),
// letterSpacing: -0.4,
// ),
// ),
// ],
// ).paddingOnly(
// left: AppState().isArabic(context) ? 12 : 3,
// right: AppState().isArabic(context) ? 3 : 12,
// )
// ],
// ),
// ),
// ),
// ],
// ),
// ),
// AppState().isArabic(context)
// ? Align(
// alignment: Alignment.topRight,
// child: SizedBox(
// height: isTablet ? 30 : 20,
// width: isTablet ? 45 : 35,
// child: Transform.rotate(
// angle: math.pi / 4.5,
// child: Text(
// LocaleKeys.brainMarathon.tr(),
// textAlign: TextAlign.center,
// maxLines: 2,
// style: TextStyle(
// color: MyColors.white,
// fontWeight: FontWeight.bold,
// fontSize: isTablet ? 8 : 6,
// height: 1.2,
// ),
// ),
// ),
// ),
// ).paddingOnly(top: 5)
// : Align(
// alignment: Alignment.topLeft,
// child: SizedBox(
// height: isTablet ? 30 : 20,
// width: isTablet ? 45 : 35,
// child: Transform.rotate(
// angle: -math.pi / 4.5,
// child: Text(
// LocaleKeys.brainMarathon.tr(),
// textAlign: TextAlign.center,
// maxLines: 2,
// style: TextStyle(
// color: MyColors.kWhiteColor,
// fontWeight: FontWeight.bold,
// fontSize: isTablet ? 8 : 6,
// height: 1.2,
// ),
// ),
// ),
// ),
// ).paddingOnly(top: 5),
// ],
// ),
// ).onPress(() {
// Navigator.pushNamed(context, AppRoutes.marathonIntroScreen);
// });
// }
//
// @override
// Widget build(BuildContext context) {
// DisclosureProvider provider = context.read<DisclosureProvider>();
// // if(provider.isUserWaiting) {
// // provider.isUserWaiting = false;
// // provider.getMarathonDetailsFromApi();
// // }
// return !provider.isPrivilegedWithMarathon
// ? getUnPrivilegedMarathon(context)
// : provider.isUpComingMarathon
// ? Container(
// decoration: MyDecorations.shadowDecoration,
// height: isTablet ? MediaQuery.of(context).size.height * 0.17 : MediaQuery.of(context).size.height * 0.11,
// clipBehavior: Clip.antiAlias,
// child: Stack(
// children: <Widget>[
// Transform(
// alignment: Alignment.center,
// transform: Matrix4.rotationY(
// AppState().isArabic(context) ? math.pi : 0,
// ),
// child: SvgPicture.asset(
// "assets/images/marathon_banner_bg.svg",
// fit: BoxFit.fill,
// width: double.infinity,
// ),
// ),
// AppState().isArabic(context)
// ? Positioned(
// right: -15,
// top: -10,
// child: Transform.rotate(
// angle: 10,
// child: Container(
// width: isTablet ? 70 : 65,
// height: isTablet ? 40 : 32,
// color: MyColors.darkDigitColor,
// ),
// ),
// )
// : Positioned(
// left: -20,
// top: -10,
// child: Transform.rotate(
// angle: 15,
// child: Container(
// width: isTablet ? 70 : 65,
// height: isTablet ? 40 : 32,
// color: MyColors.darkDigitColor,
// ),
// ),
// ),
// SizedBox(
// width: double.infinity,
// height: double.infinity,
// child: Row(
// children: <Widget>[
// const Expanded(
// flex: 3,
// child: SizedBox(
// width: double.infinity,
// height: double.infinity,
// ),
// ),
// Expanded(
// flex: AppState().isArabic(context) ? 4 : 5,
// child: SizedBox(
// width: double.infinity,
// height: double.infinity,
// child: Row(
// mainAxisAlignment: MainAxisAlignment.start,
// children: <Widget>[
// Column(
// mainAxisAlignment: MainAxisAlignment.center,
// crossAxisAlignment: CrossAxisAlignment.start,
// mainAxisSize: MainAxisSize.min,
// children: <Widget>[
// AppState().isArabic(context) ? 0.height : 5.height,
// Text(
// LocaleKeys.getReadyForContest.tr(),
// style: TextStyle(
// fontSize: isTablet ? 20 : 11,
// fontStyle: FontStyle.italic,
// fontWeight: FontWeight.w600,
// color: MyColors.white.withOpacity(0.83),
// letterSpacing: -0.4,
// ),
// ),
// Flexible(
// child: Text(
// displayLocalizedContent(
// isPhoneLangArabic: AppState().isArabic(context),
// selectedLanguage: provider.marathonDetailModel.selectedLanguage ?? 0,
// englishContent: provider.marathonDetailModel.titleEn ?? "",
// arabicContent: provider.marathonDetailModel.titleAr ?? "",
// ),
// overflow: TextOverflow.ellipsis,
// style: TextStyle(
// fontStyle: FontStyle.italic,
// fontSize: isTablet ? 30 : 19,
// fontWeight: FontWeight.bold,
// color: MyColors.white.withOpacity(0.83),
// height: 32 / 22,
// ),
// ),
// ),
// isTablet ? 10.height : 3.height,
// DisclosureCountdownTimerForMainScreen(
// timeToMarathon: DateTime.parse(provider.marathonDetailModel.startTime!).millisecondsSinceEpoch,
// provider: provider,
// ),
// ],
// ).paddingOnly(
// left: AppState().isArabic(context) ? 12 : 3,
// right: AppState().isArabic(context) ? 3 : 12,
// )
// ],
// ),
// ),
// ),
// ],
// ),
// ),
// AppState().isArabic(context)
// ? Align(
// alignment: Alignment.topRight,
// child: SizedBox(
// height: isTablet ? 30 : 20,
// width: isTablet ? 45 : 35,
// child: Transform.rotate(
// angle: math.pi / 4.5,
// child: Text(
// LocaleKeys.brainMarathon.tr(),
// textAlign: TextAlign.center,
// maxLines: 2,
// style: TextStyle(
// color: MyColors.white,
// fontWeight: FontWeight.bold,
// fontSize: isTablet ? 8 : 6,
// height: 1.2,
// ),
// ),
// ),
// ),
// ).paddingOnly(top: 5)
// : Align(
// alignment: Alignment.topLeft,
// child: SizedBox(
// height: isTablet ? 30 : 20,
// width: isTablet ? 45 : 35,
// child: Transform.rotate(
// angle: -math.pi / 4.5,
// child: Text(
// LocaleKeys.brainMarathon.tr(),
// textAlign: TextAlign.center,
// maxLines: 2,
// style: TextStyle(
// color: MyColors.kWhiteColor,
// fontWeight: FontWeight.bold,
// fontSize: isTablet ? 8 : 6,
// height: 1.2,
// ),
// ),
// ),
// ),
// ).paddingOnly(top: 5),
// !AppState().isArabic(context)
// ? Positioned(
// right: 0,
// bottom: 0,
// child: RotatedBox(
// quarterTurns: 4,
// child: SvgPicture.asset("assets/images/arrow_next.svg", color: MyColors.whiteColor),
// ).paddingAll(isTablet ? 20 : 15),
// )
// : Positioned(
// bottom: 0,
// left: 0,
// child: RotatedBox(
// quarterTurns: 2,
// child: SvgPicture.asset("assets/images/arrow_next.svg", color: MyColors.whiteColor),
// ).paddingAll(isTablet ? 20 : 15),
// ),
// ],
// ).onPress(() async {
// int remainingTimeInMinutes = DateTime.parse(provider.marathonDetailModel.startTime!).difference(DateTime.now()).inMinutes;
// if (remainingTimeInMinutes > 5 && provider.marathonDetailModel.sponsors != null && provider.marathonDetailModel.sponsors!.isNotEmpty) {
// Utils.showLoading(context);
// // try {
// // await provider.initializeVideoPlayer().then((_) {
// // Utils.hideLoading(context);
// // provider.startTimerForSponsorVideo();
// // Navigator.pushNamed(context, AppRoutes.marathonSponsorVideoScreen);
// // });
// // } catch (e) {
// // if (kDebugMode) {
// // log("Error in VideoPlayer: ${e.toString()}");
// // }
// // Utils.hideLoading(context);
// // Navigator.pushNamed(context, AppRoutes.marathonIntroScreen);
// // }
// } else {
// Navigator.pushNamed(context, AppRoutes.marathonIntroScreen);
// }
// provider.updateLanguageAsPerMarathon(context, provider.isUpComingMarathon ? provider.marathonDetailModel : provider.demoMarathonDetailModel);
// }),
// )
// : getNoUpcomingMarathonWidget(context);
// }
// }