diff --git a/assets/json/disclosure_upcoming.json b/assets/json/disclosure_upcoming.json index d17b228..cb507b9 100644 --- a/assets/json/disclosure_upcoming.json +++ b/assets/json/disclosure_upcoming.json @@ -39,7 +39,7 @@ ], "questions": null, "isEmailSent": false, - "totalQuestions": 10, + "totalQuestions": 8, "cancelReason": null, "marathonBufferTime": 30, "currentTime": "2022-12-28T08:03:24.3671803Z", diff --git a/lib/classes/decorations_helper.dart b/lib/classes/decorations_helper.dart index 3c87ef2..c25c898 100644 --- a/lib/classes/decorations_helper.dart +++ b/lib/classes/decorations_helper.dart @@ -38,7 +38,10 @@ class MyDecorations { } } - static Decoration getAnswersContainerColorForDisclosure(DisclosureQuestionsOptionStatus questionsOptionStatus) { + static Decoration getAnswersContainerColorForDisclosure(DisclosureQuestionsOptionStatus questionsOptionStatus, {bool isLastQuestion = false, bool isAgreeSelected = false}) { + if (isLastQuestion && questionsOptionStatus == DisclosureQuestionsOptionStatus.selected && isAgreeSelected) { + return getContainersDecoration(MyColors.greenColor); + } switch (questionsOptionStatus) { case DisclosureQuestionsOptionStatus.correct: return getContainersDecoration(MyColors.greenColor); diff --git a/lib/config/routes.dart b/lib/config/routes.dart index 4776135..be6c04c 100644 --- a/lib/config/routes.dart +++ b/lib/config/routes.dart @@ -1,5 +1,4 @@ import 'package:flutter/material.dart'; -import 'package:mohem_flutter_app/models/my_documents/employee_documents_list_model.dart'; import 'package:mohem_flutter_app/ui/app_update_screen.dart'; import 'package:mohem_flutter_app/ui/attendance/add_vacation_rule_screen.dart'; import 'package:mohem_flutter_app/ui/attendance/monthly_attendance_screen.dart'; @@ -11,6 +10,8 @@ import 'package:mohem_flutter_app/ui/chat/favorite_users_screen.dart'; import 'package:mohem_flutter_app/ui/chat/group_chat_detaied_screen.dart'; import 'package:mohem_flutter_app/ui/chat/group_members.dart'; import 'package:mohem_flutter_app/ui/chat/manage_group.dart'; +import 'package:mohem_flutter_app/ui/disclosure/disclosure_intro_screen.dart'; +import 'package:mohem_flutter_app/ui/disclosure/disclosure_screen.dart'; import 'package:mohem_flutter_app/ui/landing/dashboard_screen.dart'; import 'package:mohem_flutter_app/ui/landing/itg/change_itg_ad_password_screen.dart'; import 'package:mohem_flutter_app/ui/landing/itg/its_add_screen_video_image.dart'; @@ -24,9 +25,6 @@ import 'package:mohem_flutter_app/ui/login/login_screen.dart'; import 'package:mohem_flutter_app/ui/login/new_password_screen.dart'; import 'package:mohem_flutter_app/ui/login/verify_last_login_screen.dart'; import 'package:mohem_flutter_app/ui/login/verify_login_screen.dart'; -import 'package:mohem_flutter_app/ui/disclosure/disclosure_intro_screen.dart'; -import 'package:mohem_flutter_app/ui/disclosure/disclosure_screen.dart'; -import 'package:mohem_flutter_app/ui/disclosure/disclosure_waiting_screen.dart'; import 'package:mohem_flutter_app/ui/marathon/marathon_intro_screen.dart'; import 'package:mohem_flutter_app/ui/marathon/marathon_screen.dart'; import 'package:mohem_flutter_app/ui/marathon/marathon_sponsor_video_screen.dart'; @@ -67,7 +65,6 @@ import 'package:mohem_flutter_app/ui/screens/items_for_sale/items_for_sale_home. import 'package:mohem_flutter_app/ui/screens/mowadhafhi/mowadhafhi_home.dart'; import 'package:mohem_flutter_app/ui/screens/mowadhafhi/mowadhafhi_hr_request.dart'; import 'package:mohem_flutter_app/ui/screens/mowadhafhi/request_details.dart'; -import 'package:mohem_flutter_app/ui/screens/my_documents/my_document_detail_screen.dart'; import 'package:mohem_flutter_app/ui/screens/my_documents/my_documents_screen.dart'; import 'package:mohem_flutter_app/ui/screens/my_requests/my_requests.dart'; import 'package:mohem_flutter_app/ui/screens/my_requests/new_request.dart'; @@ -225,8 +222,8 @@ class AppRoutes { verifyLogin: (BuildContext context) => VerifyLoginScreen(), verifyLastLogin: (BuildContext context) => VerifyLastLoginScreen(), dashboard: (BuildContext context) => DashboardScreen(), - survey: (BuildContext context) => SurveyScreen(), - advertisement: (BuildContext context) => ITGAdsScreen(), + survey: (BuildContext context) => const SurveyScreen(), + advertisement: (BuildContext context) => const ITGAdsScreen(), subMenuScreen: (BuildContext context) => SubMenuScreen(), newPassword: (BuildContext context) => NewPasswordScreen(), @@ -241,7 +238,7 @@ class AppRoutes { workListDetail: (BuildContext context) => WorkListDetailScreen(), itgDetail: (BuildContext context) => ItgDetailScreen(), itemHistory: (BuildContext context) => ItemHistoryScreen(), - worklistSettings: (BuildContext context) => WorklistSettings(), + worklistSettings: (BuildContext context) => const WorklistSettings(), // Leave Balance @@ -251,7 +248,7 @@ class AppRoutes { servicesMenuListScreen: (BuildContext context) => ServicesMenuListScreen(), // workFromHome: (BuildContext context) => WorkFromHomeScreen(), // addWorkFromHome: (BuildContext context) => AddWorkFromHomeScreen(), - profile: (BuildContext context) => ProfileScreen(), + profile: (BuildContext context) => const ProfileScreen(), //Attendance monthlyAttendance: (BuildContext context) => MonthlyAttendanceScreen(), vacationRule: (BuildContext context) => VacationRuleScreen(), @@ -264,9 +261,9 @@ class AppRoutes { //profile: (BuildContext context) => Profile(), //profile: (BuildContext context) => Profile(), personalInfo: (BuildContext context) => PersonalInfo(), - basicDetails: (BuildContext context) => BasicDetails(), - contactDetails: (BuildContext context) => ContactDetails(), - familyMembers: (BuildContext context) => FamilyMembers(), + basicDetails: (BuildContext context) => const BasicDetails(), + contactDetails: (BuildContext context) => const ContactDetails(), + familyMembers: (BuildContext context) => const FamilyMembers(), dynamicScreen: (BuildContext context) => DynamicListViewScreen(), addDynamicInput: (BuildContext context) => DynamicInputScreen(), addDynamicInputProfile: (BuildContext context) => DynamicInputScreenProfile(), @@ -274,31 +271,31 @@ class AppRoutes { deleteFamilyMember: (BuildContext context) => DeleteFamilyMember(ModalRoute.of(context)!.settings.arguments as int), requestSubmitScreen: (BuildContext context) => RequestSubmitScreen(), - addUpdateFamilyMember: (BuildContext context) => AddUpdateFamilyMember(), + addUpdateFamilyMember: (BuildContext context) => const AddUpdateFamilyMember(), //mowadhafhi - mowadhafhi: (BuildContext context) => MowadhafhiHome(), - mowadhafhiDetails: (BuildContext context) => MowadhafhiRequestDetails(), - mowadhafhiHRRequest: (BuildContext context) => MowadhafhiHRRequest(), + mowadhafhi: (BuildContext context) => const MowadhafhiHome(), + mowadhafhiDetails: (BuildContext context) => const MowadhafhiRequestDetails(), + mowadhafhiHRRequest: (BuildContext context) => const MowadhafhiHRRequest(), - pendingTransactions: (BuildContext context) => PendingTransactions(), - pendingTransactionsDetails: (BuildContext context) => PendingTransactionsDetails(), + pendingTransactions: (BuildContext context) => const PendingTransactions(), + pendingTransactionsDetails: (BuildContext context) => const PendingTransactionsDetails(), - announcements: (BuildContext context) => Announcements(), - announcementsDetails: (BuildContext context) => AnnouncementDetails(), + announcements: (BuildContext context) => const Announcements(), + announcementsDetails: (BuildContext context) => const AnnouncementDetails(), //My Requests - myRequests: (BuildContext context) => MyRequests(), - newRequest: (BuildContext context) => NewRequest(), + myRequests: (BuildContext context) => const MyRequests(), + newRequest: (BuildContext context) => const NewRequest(), myDocuments: (BuildContext context) => MyDocumentsScreen(), // Items for sale - itemsForSale: (BuildContext context) => ItemsForSale(), - itemsForSaleDetail: (BuildContext context) => ItemForSaleDetailPage(), + itemsForSale: (BuildContext context) => const ItemsForSale(), + itemsForSaleDetail: (BuildContext context) => const ItemForSaleDetailPage(), addNewItemForSale: (BuildContext context) => AddNewItemForSale(), // Offers & Discounts - offersAndDiscounts: (BuildContext context) => OffersAndDiscountsHome(), - offersAndDiscountsDetails: (BuildContext context) => OffersAndDiscountsDetails(), + offersAndDiscounts: (BuildContext context) => const OffersAndDiscountsHome(), + offersAndDiscountsDetails: (BuildContext context) => const OffersAndDiscountsDetails(), //pay slip monthlyPaySlip: (BuildContext context) => MonthlyPaySlipScreen(), @@ -307,36 +304,35 @@ class AppRoutes { endEmploymentScreen: (BuildContext context) => EndEmploymentScreen(), //My Team - myTeam: (BuildContext context) => MyTeam(), + myTeam: (BuildContext context) => const MyTeam(), employeeDetails: (BuildContext context) => EmployeeDetails(), - profileDetails: (BuildContext context) => ProfileDetails(), - viewAttendance: (BuildContext context) => ViewAttendance(), - teamMembers: (BuildContext context) => TeamMembers(), - createRequest: (BuildContext context) => CreateRequest(), - subordinateLeave: (BuildContext context) => SubordinateLeave(), + profileDetails: (BuildContext context) => const ProfileDetails(), + viewAttendance: (BuildContext context) => const ViewAttendance(), + teamMembers: (BuildContext context) => const TeamMembers(), + createRequest: (BuildContext context) => const CreateRequest(), + subordinateLeave: (BuildContext context) => const SubordinateLeave(), changePassword: (BuildContext context) => ChangePasswordScreen(), changeItgAdPasswordScreen: (BuildContext context) => ChangeItgAdPasswordScreen(), //Chat - chat: (BuildContext context) => ChatHome(), - chatDetailed: (BuildContext context) => ChatDetailScreen(), - chatFavoriteUsers: (BuildContext context) => ChatFavoriteUsersScreen(), + chat: (BuildContext context) => const ChatHome(), + chatDetailed: (BuildContext context) => const ChatDetailScreen(), + chatFavoriteUsers: (BuildContext context) => const ChatFavoriteUsersScreen(), //Group Chat - manageGroup: (BuildContext context) => ManageGroupScreen(), - groupMembers: (BuildContext context) => GroupMembersScreen(), - groupChatDetailed: (BuildContext context) => GroupChatDetailScreen(), + manageGroup: (BuildContext context) => const ManageGroupScreen(), + groupMembers: (BuildContext context) => const GroupMembersScreen(), + groupChatDetailed: (BuildContext context) => const GroupChatDetailScreen(), // Marathon - marathonIntroScreen: (BuildContext context) => MarathonIntroScreen(), - marathonScreen: (BuildContext context) => MarathonScreen(), + marathonIntroScreen: (BuildContext context) => const MarathonIntroScreen(), + marathonScreen: (BuildContext context) => const MarathonScreen(), marathonSponsorVideoScreen: (BuildContext context) => const SponsorVideoScreen(), marathonWaitingScreen: (BuildContext context) => const MarathonWaitingScreen(), marathonTutorialScreen: (BuildContext context) => const MarathonTutorialViewerScreen(), // Disclosure - disclosureIntroScreen: (BuildContext context) => DisclosureIntroScreen(), - disclosureScreen: (BuildContext context) => DisclosureScreen(), - disclosureWaitingScreen: (BuildContext context) => const DisclosureWaitingScreen(), + disclosureIntroScreen: (BuildContext context) => const DisclosureIntroScreen(), + disclosureScreen: (BuildContext context) => const DisclosureScreen(), unsafeDeviceScreen: (BuildContext context) => const UnsafeDeviceScreen(), appUpdateScreen: (BuildContext context) => const AppUpdateScreen(), diff --git a/lib/ui/disclosure/disclosure_intro_screen.dart b/lib/ui/disclosure/disclosure_intro_screen.dart index 84b6e6c..814737d 100644 --- a/lib/ui/disclosure/disclosure_intro_screen.dart +++ b/lib/ui/disclosure/disclosure_intro_screen.dart @@ -5,8 +5,8 @@ import 'package:mohem_flutter_app/extensions/widget_extensions.dart'; import 'package:mohem_flutter_app/generated/locale_keys.g.dart'; import 'package:mohem_flutter_app/ui/disclosure/disclosure_provider.dart'; import 'package:mohem_flutter_app/ui/disclosure/widgets/disclosure_details_card.dart'; -import 'package:mohem_flutter_app/ui/disclosure/widgets/disclosure_footer.dart'; import 'package:mohem_flutter_app/widgets/app_bar_widget.dart'; +import 'package:mohem_flutter_app/widgets/button/default_button.dart'; import 'package:provider/provider.dart'; class DisclosureIntroScreen extends StatelessWidget { @@ -34,17 +34,10 @@ class DisclosureIntroScreen extends StatelessWidget { padding: const EdgeInsets.all(21), children: [ DisclosureDetailsCard(disclosureDetailsCard: provider.disclosureDetailsModel), - 20.height, - // provider.isUpComingMarathon - // ? DisclosureTimerCard( - // provider: provider, - // timeToMarathon: DateTime.parse(provider.marathonDetailModel.startTime!).millisecondsSinceEpoch, - // ) - // : const SizedBox(), ], ).expanded, 1.divider, - DisclosureFooter(provider: provider), + DefaultButton("Start", () => provider.onStartDisclosurePressed(context)).insideContainer, ], ), ); diff --git a/lib/ui/disclosure/disclosure_provider.dart b/lib/ui/disclosure/disclosure_provider.dart index d06ca3b..fedf5c9 100644 --- a/lib/ui/disclosure/disclosure_provider.dart +++ b/lib/ui/disclosure/disclosure_provider.dart @@ -6,12 +6,10 @@ import 'package:easy_localization/easy_localization.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:mohem_flutter_app/api/marathon/demo_marathon_repo.dart'; -import 'package:mohem_flutter_app/app_state/app_state.dart'; import 'package:mohem_flutter_app/classes/utils.dart'; import 'package:mohem_flutter_app/config/routes.dart'; import 'package:mohem_flutter_app/models/disclosure/disclosure_details_model.dart'; import 'package:mohem_flutter_app/models/disclosure/disclosure_question_model.dart'; -import 'package:mohem_flutter_app/models/privilege_list_model.dart'; import 'package:mohem_flutter_app/ui/disclosure/widgets/disclosure_question_card.dart'; class DisclosureProvider extends ChangeNotifier { @@ -20,7 +18,7 @@ class DisclosureProvider extends ChangeNotifier { final AppinioSwiperController swiperController = AppinioSwiperController(); DisclosureQuestionsOptionStatus currentQuestionSelectionStatus = DisclosureQuestionsOptionStatus.unSelected; DisclosureDetailsModel disclosureDetailsModel = DisclosureDetailsModel(); - List cardContentList = []; + List cardContentList = [const DisclosureCardContent()]; DisclosureQuestionModel currentQuestion = DisclosureQuestionModel(); List answerStatusesList = []; DisclosureQuestionCardStatus questionCardStatus = DisclosureQuestionCardStatus.question; @@ -28,9 +26,6 @@ class DisclosureProvider extends ChangeNotifier { String? selectedOptionId; int? totalQualifiers; Locale savedLocale = const Locale("en", "US"); - String? gapTimeImage; - String? gapTimeText; - int? gapTimeType; bool iAmWinner = false; bool isGettingQualifiers = false; @@ -54,31 +49,6 @@ class DisclosureProvider extends ChangeNotifier { notifyListeners(); } - bool _isUserWaiting = false; - - bool get isUserWaiting => _isUserWaiting; - - set isUserWaiting(bool value) { - _isUserWaiting = value; - notifyListeners(); - } - - bool _isMarathonCompleted = false; - - bool get isMarathonCompleted => _isMarathonCompleted; - - set isMarathonCompleted(bool value) { - _isMarathonCompleted = value; - notifyListeners(); - } - - bool isUserOutOfGame = false; - - set updateIsUserOutOfGame(bool value) { - isUserOutOfGame = value; - notifyListeners(); - } - int _currentQuestionNumber = 0; int get currentQuestionNumber => _currentQuestionNumber; @@ -88,91 +58,18 @@ class DisclosureProvider extends ChangeNotifier { notifyListeners(); } - void updateCurrentQuestionSelectionStatus(DisclosureQuestionsOptionStatus value) { + void updateCurrentSelectionYesNo(DisclosureQuestionsOptionStatus value) { currentQuestionSelectionStatus = value; notifyListeners(); } - int _totalMarathoners = 0; - - int get totalMarathoners => _totalMarathoners; - - set totalMarathoners(int value) { - _totalMarathoners = value; - notifyListeners(); - } - - //****************SPONSOR VIDEO PLAYER********** - - // 9c47d281-c5b5-4b5d-a90a-08dacb8cbdb6 - // MarathonI - //************************************************ TIMERS ********************************************************** - - int sponsorsSecondsCounter = 0; - int totalSponsorVideoSeconds = 0; - Timer timerForSponsorVideo = Timer.periodic(const Duration(seconds: 1), (Timer timer) {}); - - void startTimerForSponsorVideo() { - const Duration oneSec = Duration(seconds: 1); - timerForSponsorVideo = Timer.periodic( - oneSec, - (Timer timer) async { - sponsorsSecondsCounter++; - if (totalSponsorVideoSeconds == 0) { - timer.cancel(); - notifyListeners(); - return; - } else { - totalSponsorVideoSeconds--; - } - - notifyListeners(); - }, - ); - } - - int totalSecondsToWaitForMarathon = 30; - - set updateTotalSecondsToWaitForMarathon(int value) { - totalSecondsToWaitForMarathon = value; - notifyListeners(); - } - //************************************************ FUNCTIONS ********************************************************** - void updateLanguageAsPerMarathon(BuildContext context, DisclosureDetailsModel detailModel) { - savedLocale = context.locale; - if (detailModel.selectedLanguage == 1) { - context.setLocale(const Locale("en", "US")); - } else if (detailModel.selectedLanguage == 2) { - context.setLocale(const Locale("ar", "SA")); - } else if (detailModel.selectedLanguage == 3) { - } else { - context.setLocale(const Locale("en", "US")); - } - } - - Future callGetQualifiersApi() async { - if (AppState().getIsDemoMarathon) { - totalQualifiers = isUserOutOfGame ? 0 : 1; - } - isGettingQualifiers = false; - notifyListeners(); - } - - Future callGetSelectedWinnersApi() async { - if (AppState().getIsDemoMarathon) { - return; - } - } - Future callNextQuestionApi() async { + log("currentQuestionNumber: $currentQuestionNumber"); if (currentQuestionNumber < (disclosureDetailsModel.totalQuestions!)) { if (currentQuestionNumber == 0) { currentQuestion = await DisclosureRepo().getDisclosureNextQuestion(currentQuestionNumber: currentQuestionNumber); - gapTimeImage = currentQuestion.gapImage; - gapTimeText = currentQuestion.gapText; - gapTimeType = currentQuestion.gapType; updateCardData(); if (Utils.isLoading) { Utils.hideLoading(AppRoutes.navigatorKey.currentContext!); @@ -180,6 +77,7 @@ class DisclosureProvider extends ChangeNotifier { Navigator.pushReplacementNamed(AppRoutes.navigatorKey.currentContext!, AppRoutes.disclosureScreen); } else { currentQuestion = await DisclosureRepo().getDisclosureNextQuestion(currentQuestionNumber: currentQuestionNumber); + updateCardData(); } notifyListeners(); } @@ -187,13 +85,14 @@ class DisclosureProvider extends ChangeNotifier { void updateCardData() { if (currentQuestionNumber > 0) { - // swiperController.swipeLeft(); + swiperController.swipeRight(); } selectedOptionIndex = null; currentQuestionNumber++; - - cardContentList.add(const DisclosureCardContent()); - totalMarathoners = currentQuestion.remainingParticipantCount!; + if (currentQuestionNumber < disclosureDetailsModel.totalQuestions!) { + cardContentList.add(const DisclosureCardContent()); + cardContentList.add(const DisclosureCardContent()); + } questionCardStatus = DisclosureQuestionCardStatus.question; notifyListeners(); } @@ -208,13 +107,12 @@ class DisclosureProvider extends ChangeNotifier { } } - void updateAnswerStatusesList(DisclosureQuestionCardStatus status) { - answerStatusesList[currentQuestionNumber - 1] = status; - notifyListeners(); - } - void updateCurrentQuestionOptionStatus({required DisclosureQuestionsOptionStatus status, required int selectedOptIndex, required int correctOptionIndex}) { - if (selectedOptionIndex == 0) {} + if (selectedOptIndex == 0) { + updateCurrentSelectionYesNo(DisclosureQuestionsOptionStatus.correct); + } else if (selectedOptIndex == 1) { + updateCurrentSelectionYesNo(DisclosureQuestionsOptionStatus.wrong); + } for (int i = 0; i < currentQuestion.questionOptions!.length; i++) { currentQuestion.questionOptions![i].optionStatus = DisclosureQuestionsOptionStatus.unSelected; } @@ -228,83 +126,20 @@ class DisclosureProvider extends ChangeNotifier { } void updateQuestionCardStatus(DisclosureQuestionCardStatus status) { - if (status == DisclosureQuestionCardStatus.wrongAnswer || status == DisclosureQuestionCardStatus.skippedAnswer) { - if (AppState().getIsDemoMarathon) { - updateIsUserOutOfGame = true; - } - } questionCardStatus = status; notifyListeners(); } - void getCorrectAnswerAndUpdateAnswerColor() { - log("correctOptionIndex"); - int correctOptionIndex = -1; - if (disclosureDetailsModel.displayCorrectAnswer ?? false) { - correctOptionIndex = currentQuestion.questionOptions!.indexWhere((QuestionOptions element) => element.isCorrectOption ?? false); - log("correctOptionIndex: $correctOptionIndex"); - } - - if (selectedOptionIndex != null) { - scheduleMicrotask(() async { - if (AppState().getIsDemoMarathon) { - if (currentQuestion.questionOptions![selectedOptionIndex!].isCorrectOption!) { - updateCurrentQuestionOptionStatus(status: DisclosureQuestionsOptionStatus.correct, selectedOptIndex: selectedOptionIndex!, correctOptionIndex: correctOptionIndex); - } else { - updateCurrentQuestionOptionStatus(status: DisclosureQuestionsOptionStatus.wrong, selectedOptIndex: selectedOptionIndex!, correctOptionIndex: correctOptionIndex); - } - } - }); - } else { - if (!AppState().getIsDemoMarathon) {} - } - } - - void updateCardStatusToAnswer() { - if (currentQuestionNumber == 0) { - return; - } - scheduleMicrotask(() async { - await callNextQuestionApi(); - }); - - if (selectedOptionIndex == null) { - updateQuestionCardStatus(DisclosureQuestionCardStatus.skippedAnswer); - updateAnswerStatusesList(DisclosureQuestionCardStatus.skippedAnswer); - return; - } - if (AppState().getIsDemoMarathon) { - if (currentQuestion.questionOptions![selectedOptionIndex!].isCorrectOption!) { - updateQuestionCardStatus(DisclosureQuestionCardStatus.correctAnswer); - updateAnswerStatusesList(DisclosureQuestionCardStatus.correctAnswer); - } else { - updateQuestionCardStatus(DisclosureQuestionCardStatus.wrongAnswer); - updateAnswerStatusesList(DisclosureQuestionCardStatus.wrongAnswer); - } - return; - } - if (!isUserOutOfGame) { - updateQuestionCardStatus(DisclosureQuestionCardStatus.correctAnswer); - updateAnswerStatusesList(DisclosureQuestionCardStatus.correctAnswer); - return; - } - updateQuestionCardStatus(DisclosureQuestionCardStatus.wrongAnswer); - updateAnswerStatusesList(DisclosureQuestionCardStatus.wrongAnswer); + void updateAnswerStatusesList(DisclosureQuestionCardStatus status) { + answerStatusesList[currentQuestionNumber - 1] = status; + notifyListeners(); } void resetValues() async { _currentQuestionNumber = 0; iAmWinner = false; cardContentList.clear(); - timerForSponsorVideo.cancel(); - _isMarathonCompleted = false; - isUserOutOfGame = false; isButtonEnabled = false; - isUserWaiting = false; - sponsorsSecondsCounter = 0; - totalSponsorVideoSeconds = 0; - totalSecondsToWaitForMarathon = 30; - AppState().setIsDemoMarathon = false; currentQuestion = DisclosureQuestionModel(); if (answerStatusesList.isNotEmpty) { for (int i = 0; i < answerStatusesList.length; i++) { @@ -315,29 +150,16 @@ class DisclosureProvider extends ChangeNotifier { notifyListeners(); } - bool checkIfPrivilegedForMarathon() { - for (PrivilegeListModel element in AppState().privilegeListModel!) { - if (element.serviceName == "Marathon") { - if (element.previlege != null) { - return element.previlege!; - } - } - } - return false; - } - Future getDisclosureDetails() async { isLoading = true; notifyListeners(); disclosureDetailsModel = await DisclosureRepo().getDisclosureDetails(); - log("here: ${disclosureDetailsModel.descEn}"); populateQuestionStatusesList(); isLoading = false; notifyListeners(); } - Future onJoinDemoMarathonPressed(BuildContext context) async { - AppState().setIsDemoMarathon = true; + Future onStartDisclosurePressed(BuildContext context) async { await callNextQuestionApi(); } } diff --git a/lib/ui/disclosure/disclosure_screen.dart b/lib/ui/disclosure/disclosure_screen.dart index 82095fc..e03256e 100644 --- a/lib/ui/disclosure/disclosure_screen.dart +++ b/lib/ui/disclosure/disclosure_screen.dart @@ -1,11 +1,8 @@ import 'dart:async'; -import 'dart:developer'; import 'package:easy_localization/easy_localization.dart'; import 'package:flutter/material.dart'; -import 'package:flutter_svg/svg.dart'; import 'package:lottie/lottie.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/consts.dart'; import 'package:mohem_flutter_app/classes/lottie_consts.dart'; @@ -14,6 +11,7 @@ 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/models/disclosure/disclosure_question_model.dart'; import 'package:mohem_flutter_app/models/marathon/question_model.dart'; import 'package:mohem_flutter_app/ui/disclosure/disclosure_provider.dart'; import 'package:mohem_flutter_app/ui/disclosure/widgets/custom_status_widget.dart'; @@ -44,91 +42,11 @@ class DisclosureScreen extends StatelessWidget { return Image.asset(MyLottieConsts.congratsGif, height: 200); } - Widget getDemoWinnerWidget(BuildContext context, {required DisclosureProvider provider}) { - return provider.isUserOutOfGame - ? Column( - children: [ - Lottie.asset(MyLottieConsts.noWinnerLottie), - Center( - child: LocaleKeys.noWinner.tr().toText18(color: MyColors.grey3AColor, isCentered: true), - ), - ], - ) - : Stack( - children: [ - Column( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - SizedBox( - height: 50, - child: Stack( - children: [ - Align( - alignment: Alignment.center, - child: SvgPicture.asset("assets/images/winner_ribbon.svg", height: 50), - ), - Align( - alignment: Alignment.center, - child: LocaleKeys.winner.tr().toText32(color: MyColors.white, isBold: true, isCentered: true).paddingOnly(top: 07), - ) - ], - ), - ), - 16.height, - Column( - children: [ - displayLocalizedContent( - isPhoneLangArabic: AppState().isArabic(context), - selectedLanguage: provider.disclosureDetailsModel.selectedLanguage!, - arabicContent: AppState().memberInformationList!.eMPLOYEEDISPLAYNAMEAr ?? "", - englishContent: AppState().memberInformationList!.eMPLOYEEDISPLAYNAMEEn ?? "", - ).toText22( - color: MyColors.grey3AColor, - isCentered: true, - ), - 8.height, - AppState().memberInformationList!.eMPLOYEENUMBER!.toText22(color: MyColors.grey57Color), - ], - ), - 60.height, - if (provider.disclosureDetailsModel.sponsors != null && provider.disclosureDetailsModel.sponsors!.isNotEmpty) ...[ - Row( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - "${LocaleKeys.sponsoredBy.tr()} ".toText14(color: MyColors.grey77Color), - displayLocalizedContent( - isPhoneLangArabic: AppState().isArabic(context), - selectedLanguage: provider.disclosureDetailsModel.selectedLanguage!, - englishContent: provider.disclosureDetailsModel.sponsors!.first.nameEn!, - arabicContent: provider.disclosureDetailsModel.sponsors!.first.nameAr!, - ).toText14( - color: MyColors.darkTextColor, - isBold: true, - ), - ], - ), - 5.height, - Image.network( - ApiConsts.marathonBaseUrlServices + provider.disclosureDetailsModel.sponsors!.first.logo!, - height: 50, - width: 150, - fit: BoxFit.contain, - errorBuilder: (BuildContext context, Object exception, StackTrace? stackTrace) { - return Image.asset("assets/images/logos/main_mohemm_logo.png", height: 50, width: 150); - }, - ) - ], - ], - ), - Lottie.asset(MyLottieConsts.celebrate1Lottie), - ], - ); - } - - @override Widget build(BuildContext context) { DisclosureProvider provider = context.watch(); + bool isButtonDisabled = provider.currentQuestionSelectionStatus == DisclosureQuestionsOptionStatus.correct || provider.currentQuestionSelectionStatus == DisclosureQuestionsOptionStatus.wrong; + bool isLastQuestion = provider.currentQuestionNumber == provider.disclosureDetailsModel.totalQuestions!; return WillPopScope( child: Scaffold( appBar: AppBarWidget( @@ -192,11 +110,7 @@ class DisclosureScreen extends StatelessWidget { title: LocaleKeys.congrats.tr().toText22(color: MyColors.greenColor), subTitle: LocaleKeys.allQuestionsCorrect.toText18(color: MyColors.darkTextColor, isCentered: true), ), - onCorrectAnswer: (BuildContext context) => DisclosureCustomStatusWidget( - asset: getSuccessWidget(gapType: provider.gapTimeType, gapImage: provider.gapTimeImage, gapText: provider.gapTimeText), - title: LocaleKeys.congrats.tr().toText22(color: MyColors.greenColor), - subTitle: LocaleKeys.yourAnswerCorrect.tr().toText18(color: MyColors.darkTextColor, isCentered: true), - ), + onCorrectAnswer: (BuildContext context) => const SizedBox(), onWinner: (BuildContext context) => const SizedBox(), onWrongAnswer: (BuildContext context) => DisclosureCustomStatusWidget( asset: Image.asset(MyLottieConsts.wrongAnswerGif, height: 200), @@ -219,8 +133,22 @@ class DisclosureScreen extends StatelessWidget { ], ).expanded, DefaultButton( - LocaleKeys.next.tr(), - () {}, + isLastQuestion ? LocaleKeys.submit.tr() : LocaleKeys.next.tr(), + isButtonDisabled + ? () async { + if (isLastQuestion) { + provider.resetValues(); + provider.getDisclosureDetails(); + Navigator.of(context).popUntil(ModalRoute.withName(AppRoutes.dashboard)); + return; + } + provider.updateCurrentSelectionYesNo(DisclosureQuestionsOptionStatus.unSelected); + provider.updateAnswerStatusesList(DisclosureQuestionCardStatus.correctAnswer); + await provider.callNextQuestionApi(); + } + : null, + textColor: isButtonDisabled ? MyColors.whiteColor : MyColors.greyACColor, + color: isLastQuestion ? MyColors.greenColor : null, ).insideContainer, ], ), diff --git a/lib/ui/disclosure/disclosure_waiting_screen.dart b/lib/ui/disclosure/disclosure_waiting_screen.dart deleted file mode 100644 index 859b5b0..0000000 --- a/lib/ui/disclosure/disclosure_waiting_screen.dart +++ /dev/null @@ -1,109 +0,0 @@ -import 'package:easy_localization/easy_localization.dart'; -import 'package:flutter/material.dart'; -import 'package:lottie/lottie.dart'; -import 'package:mohem_flutter_app/classes/colors.dart'; -import 'package:mohem_flutter_app/classes/decorations_helper.dart'; -import 'package:mohem_flutter_app/classes/lottie_consts.dart'; -import 'package:mohem_flutter_app/config/routes.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/ui/disclosure/disclosure_provider.dart'; -import 'package:mohem_flutter_app/widgets/app_bar_widget.dart'; -import 'package:mohem_flutter_app/widgets/dialogs/confirm_dialog.dart'; -import 'package:provider/provider.dart'; - -class DisclosureWaitingScreen extends StatelessWidget { - const DisclosureWaitingScreen({Key? key}) : super(key: key); - - @override - Widget build(BuildContext context) { - DisclosureProvider provider = context.watch(); - return WillPopScope( - onWillPop: () { - showDialog( - context: context, - builder: (BuildContext context) => ConfirmDialog( - message: LocaleKeys.youWantToLeaveMarathon.tr(), - onTap: () { - provider.resetValues(); - Navigator.of(context).popUntil(ModalRoute.withName(AppRoutes.dashboard)); - }, - ), - ); - return Future.value(false); - }, - child: Scaffold( - appBar: AppBarWidget( - context, - title: LocaleKeys.brainMarathon.tr(), - onHomeTapped: () { - showDialog( - context: context, - builder: (BuildContext context) => ConfirmDialog( - message: LocaleKeys.youWantToLeaveMarathon.tr(), - onTap: () { - provider.resetValues(); - Navigator.of(context).popUntil(ModalRoute.withName(AppRoutes.dashboard)); - }, - ), - ); - }, - onBackTapped: () { - showDialog( - context: context, - builder: (BuildContext context) => ConfirmDialog( - message: LocaleKeys.youWantToLeaveMarathon.tr(), - onTap: () { - provider.resetValues(); - Navigator.of(context).popUntil(ModalRoute.withName(AppRoutes.dashboard)); - }, - ), - ); - }, - ), - body: Column( - crossAxisAlignment: CrossAxisAlignment.center, - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Container( - width: double.infinity, - margin: const EdgeInsets.all(21), - decoration: MyDecorations.shadowDecoration, - child: Stack( - children: [ - Align( - child: Lottie.asset(MyLottieConsts.marathonWaiting, height: 200), - ), - Align( - child: Column( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - LocaleKeys.startingIn.tr().toText16(), - (provider.totalSecondsToWaitForMarathon < 10 ? "0${provider.totalSecondsToWaitForMarathon.toString()}" : provider.totalSecondsToWaitForMarathon.toString()).toText18(color: provider.totalSecondsToWaitForMarathon < 5 ? MyColors.redColor : MyColors.black), - ], - ), - ), - // Align( - // child: Column( - // mainAxisAlignment: MainAxisAlignment.end, - // children: [ - // InkWell( - // onTap: () { - // provider.callNextQuestionApi(); - // provider.timerToWaitForMarathon.cancel(); - // }, - // child: "Join Now".toText16(), - // ).paddingOnly(bottom: 20), - // ], - // ), - // ), - ], - ), - ).expanded, - ], - ), - ), - ); - } -} diff --git a/lib/ui/disclosure/widgets/disclosure_details_card.dart b/lib/ui/disclosure/widgets/disclosure_details_card.dart index 769ec0d..271c512 100644 --- a/lib/ui/disclosure/widgets/disclosure_details_card.dart +++ b/lib/ui/disclosure/widgets/disclosure_details_card.dart @@ -6,11 +6,8 @@ import 'package:mohem_flutter_app/classes/consts.dart'; import 'package:mohem_flutter_app/classes/decorations_helper.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/models/disclosure/disclosure_details_model.dart'; -import 'package:mohem_flutter_app/ui/disclosure/disclosure_provider.dart'; -import 'package:provider/provider.dart'; class DisclosureDetailsCard extends StatelessWidget { final DisclosureDetailsModel disclosureDetailsCard; @@ -26,17 +23,6 @@ class DisclosureDetailsCard extends StatelessWidget { child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ - Row( - mainAxisAlignment: MainAxisAlignment.end, - children: [ - Container( - decoration: BoxDecoration(color: MyColors.yellowColorII, borderRadius: BorderRadius.circular(100)), - child: LocaleKeys.demo.tr().toText10(color: MyColors.white).paddingAll(4), - ), - ], - ), - 7.height, - LocaleKeys.contestTopicAbout.tr().toText16(color: MyColors.grey77Color), displayLocalizedContent( isPhoneLangArabic: AppState().isArabic(context), selectedLanguage: disclosureDetailsCard.selectedLanguage ?? 0, @@ -58,36 +44,6 @@ class DisclosureDetailsCard extends StatelessWidget { ], ), if (disclosureDetailsCard.sponsors != null && disclosureDetailsCard.sponsors!.isNotEmpty) ...[ - 5.height, - disclosureDetailsCard.sponsors!.first.sponsorPrizes != null - ? Row( - children: [ - "${LocaleKeys.prize.tr()} ".toText16(color: MyColors.grey77Color), - Expanded( - child: SizedBox( - height: 30, - child: ListView.builder( - scrollDirection: Axis.horizontal, - shrinkWrap: true, - itemCount: disclosureDetailsCard.sponsors!.first.sponsorPrizes!.length, - itemBuilder: (BuildContext context, int index) { - SponsorPrizes prizes = disclosureDetailsCard.sponsors!.first.sponsorPrizes![index]; - return Container( - decoration: BoxDecoration(color: MyColors.backgroundColor, borderRadius: BorderRadius.circular(100), border: Border.all(color: MyColors.grey57Color.withOpacity(0.1))), - child: displayLocalizedContent( - isPhoneLangArabic: AppState().isArabic(context), - selectedLanguage: disclosureDetailsCard.selectedLanguage ?? 0, - englishContent: prizes.marathonPrizeEn ?? "", - arabicContent: prizes.marathonPrizeAr ?? "", - ).toText16(color: MyColors.greenColor, isBold: true).paddingOnly(left: 5, right: 5), - ).paddingOnly(left: 5); - }, - ), - ), - ) - ], - ) - : const SizedBox(), Row( children: [ "${LocaleKeys.sponsoredBy.tr()} ".toText16(color: MyColors.grey77Color), diff --git a/lib/ui/disclosure/widgets/disclosure_footer.dart b/lib/ui/disclosure/widgets/disclosure_footer.dart deleted file mode 100644 index b573bba..0000000 --- a/lib/ui/disclosure/widgets/disclosure_footer.dart +++ /dev/null @@ -1,51 +0,0 @@ -// ignore_for_file: always_specify_types - -import 'package:easy_localization/easy_localization.dart'; -import 'package:flutter/material.dart'; -import 'package:mohem_flutter_app/classes/colors.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/ui/disclosure/disclosure_provider.dart'; -import 'package:mohem_flutter_app/widgets/button/default_button.dart'; - -class DisclosureFooter extends StatelessWidget { - final DisclosureProvider provider; - - const DisclosureFooter({Key? key, required this.provider}) : super(key: key); - - Widget buildNoteForDemo() { - return RichText( - text: TextSpan( - children: [ - TextSpan( - text: LocaleKeys.note.tr(), - style: const TextStyle(color: MyColors.darkTextColor, fontSize: 17, letterSpacing: -0.64, fontWeight: FontWeight.bold), - ), - TextSpan( - text: " " + LocaleKeys.demoMarathonNoteP1.tr(), - style: const TextStyle(color: MyColors.grey77Color, fontSize: 17, letterSpacing: -0.64, fontWeight: FontWeight.w500), - ), - TextSpan( - text: " " + LocaleKeys.demoMarathonNoteP2.tr(), - style: const TextStyle(color: MyColors.darkTextColor, fontSize: 17, fontWeight: FontWeight.bold), - ), - TextSpan( - text: " " + LocaleKeys.demoMarathonNoteP3.tr(), - style: const TextStyle(color: MyColors.grey77Color, fontSize: 17, letterSpacing: -0.64, fontWeight: FontWeight.w500), - ) - ], - ), - ).paddingOnly(right: 21, left: 21, top: 11, bottom: 0); - } - - @override - Widget build(BuildContext context) { - { - return DefaultButton( - LocaleKeys.joinDemoMarathon.tr(), - () => provider.onJoinDemoMarathonPressed(context), - color: MyColors.yellowColorII, - ).insideContainer; - } - } -} diff --git a/lib/ui/disclosure/widgets/disclosure_progress_container.dart b/lib/ui/disclosure/widgets/disclosure_progress_container.dart index 7bbaddf..249d15e 100644 --- a/lib/ui/disclosure/widgets/disclosure_progress_container.dart +++ b/lib/ui/disclosure/widgets/disclosure_progress_container.dart @@ -39,14 +39,13 @@ class DisclosureProgressContainer extends StatelessWidget { provider.currentQuestionNumber, provider.answerStatusesList, provider.disclosureDetailsModel.totalQuestions!, - provider.isUserOutOfGame, ), 8.height, Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ - "${provider.currentQuestionNumber == 1 ? 0 : (((provider.currentQuestionNumber - 1) / (provider.disclosureDetailsModel.totalQuestions!)) * 100).toInt()}% ${LocaleKeys.completed.tr()}".toText14(), - provider.isUserOutOfGame ? LocaleKeys.youAreOutOfContest.tr().toText13(color: MyColors.redColor) : const SizedBox(), + "${provider.currentQuestionNumber == 1 ? 0 : (((provider.currentQuestionNumber - 1) / (provider.disclosureDetailsModel.totalQuestions!)) * 100).toInt()}% ${LocaleKeys.completed.tr()}" + .toText14(), ], ), ], @@ -54,14 +53,14 @@ class DisclosureProgressContainer extends StatelessWidget { ); } - Color getStepColor(DisclosureQuestionCardStatus status, bool isOutOfGame) { + Color getStepColor(DisclosureQuestionCardStatus status) { switch (status) { case DisclosureQuestionCardStatus.question: return MyColors.yellowColorII; case DisclosureQuestionCardStatus.wrongAnswer: return MyColors.lightGreyDeColor; case DisclosureQuestionCardStatus.correctAnswer: - return MyColors.lightGreyDeColor; + return MyColors.greenColor; case DisclosureQuestionCardStatus.skippedAnswer: return MyColors.lightGreyDeColor; case DisclosureQuestionCardStatus.completed: @@ -73,20 +72,14 @@ class DisclosureProgressContainer extends StatelessWidget { } } - Widget stepper(int value, List statusesList, int totalQuestions, bool isOutOfGame) { + Widget stepper(int value, List statusesList, int totalQuestions) { return SizedBox( width: double.infinity, child: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ for (int i = 0; i < totalQuestions; i++) - if (value <= i) - roundContainer(MyColors.lightGreyDeColor, i != 0) - else - roundContainer( - getStepColor(statusesList[i], isOutOfGame), - i != 0, - ) + if (value <= i) roundContainer(MyColors.lightGreyDeColor, i != 0) else roundContainer(getStepColor(statusesList[i]), i != 0) ], ), ); diff --git a/lib/ui/disclosure/widgets/disclosure_question_card.dart b/lib/ui/disclosure/widgets/disclosure_question_card.dart index e899173..2f03fc0 100644 --- a/lib/ui/disclosure/widgets/disclosure_question_card.dart +++ b/lib/ui/disclosure/widgets/disclosure_question_card.dart @@ -1,5 +1,4 @@ import 'package:appinio_swiper/appinio_swiper.dart'; -import 'package:easy_localization/easy_localization.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:lottie/lottie.dart'; @@ -7,10 +6,8 @@ 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/lottie_consts.dart'; -import 'package:mohem_flutter_app/classes/utils.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/models/disclosure/disclosure_question_model.dart'; import 'package:mohem_flutter_app/ui/disclosure/disclosure_provider.dart'; import 'package:provider/provider.dart'; @@ -106,27 +103,28 @@ class DisclosureAnswerContent extends StatelessWidget { Widget build(BuildContext context) { DisclosureProvider provider = context.watch(); return Container( - padding: const EdgeInsets.symmetric(vertical: 20, horizontal: 13), - decoration: const BoxDecoration( - color: MyColors.kWhiteColor, - borderRadius: BorderRadius.only( - bottomLeft: Radius.circular(10), - bottomRight: Radius.circular(10), - ), + padding: const EdgeInsets.symmetric(vertical: 20, horizontal: 13), + decoration: const BoxDecoration( + color: MyColors.kWhiteColor, + borderRadius: BorderRadius.only( + bottomLeft: Radius.circular(10), + bottomRight: Radius.circular(10), ), - child: provider.currentQuestion.questionOptions != null - ? Row( - children: List.generate( - provider.currentQuestion.questionOptions!.length, - (int index) => Expanded( - child: DisclosureAnswerTileForText( - index: index, - onAnswerTapped: () => provider.updateCurrentQuestionOptionStatus(status: DisclosureQuestionsOptionStatus.selected, selectedOptIndex: index, correctOptionIndex: -1), // - ).paddingAll(8), - ), + ), + child: provider.currentQuestion.questionOptions != null + ? Row( + children: List.generate( + provider.currentQuestion.questionOptions!.length, + (int index) => Expanded( + child: DisclosureAnswerTileForText( + index: index, + onAnswerTapped: () => provider.updateCurrentQuestionOptionStatus(status: DisclosureQuestionsOptionStatus.selected, selectedOptIndex: index, correctOptionIndex: -1), // + ).paddingAll(8), ), - ) - : const SizedBox()); + ), + ) + : const SizedBox(), + ); } } @@ -153,19 +151,21 @@ class DisclosureAnswerTileForText extends StatelessWidget { Widget build(BuildContext context) { DisclosureProvider provider = context.watch(); return InkWell( - onTap: () { - provider.isUserOutOfGame ? Utils.showToast(LocaleKeys.youAreOutOfContest.tr()) : onAnswerTapped(); - }, + onTap: () => onAnswerTapped(), child: Container( alignment: Alignment.centerLeft, - decoration: MyDecorations.getAnswersContainerColorForDisclosure(provider.currentQuestion.questionOptions![index].optionStatus!), + decoration: MyDecorations.getAnswersContainerColorForDisclosure( + provider.currentQuestion.questionOptions![index].optionStatus!, + isLastQuestion: provider.currentQuestionNumber == provider.disclosureDetailsModel.totalQuestions!, + isAgreeSelected: provider.selectedOptionIndex == 0, + ), child: Center( child: displayLocalizedContent( isPhoneLangArabic: AppState().isArabic(context), selectedLanguage: (provider.disclosureDetailsModel.selectedLanguage) ?? 0, englishContent: provider.currentQuestion.questionOptions![index].titleEn ?? "", arabicContent: provider.currentQuestion.questionOptions![index].titleAr ?? "", - ).toText16(color: provider.isUserOutOfGame ? MyColors.darkTextColor : getAnswerTextColor(provider.currentQuestion.questionOptions![index].optionStatus!)).paddingOnly(top: 13, bottom: 13), + ).toText16(color: getAnswerTextColor(provider.currentQuestion.questionOptions![index].optionStatus!)).paddingOnly(top: 13, bottom: 13), ), ), ); diff --git a/lib/widgets/button/default_button.dart b/lib/widgets/button/default_button.dart index 338a13d..cb5e985 100644 --- a/lib/widgets/button/default_button.dart +++ b/lib/widgets/button/default_button.dart @@ -60,16 +60,23 @@ class DefaultButton extends StatelessWidget { MyColors.yellowColorII, ], ) - : LinearGradient( - transform: const GradientRotation(.83), - begin: Alignment.topRight, - end: Alignment.bottomLeft, - colors: colors ?? - [ - MyColors.gradiantEndColor, - MyColors.gradiantStartColor, + : color == MyColors.greenColor + ? const LinearGradient( + colors: [ + MyColors.greenColor, + MyColors.greenColor, ], - ), + ) + : LinearGradient( + transform: const GradientRotation(.83), + begin: Alignment.topRight, + end: Alignment.bottomLeft, + colors: colors ?? + [ + MyColors.gradiantEndColor, + MyColors.gradiantStartColor, + ], + ), ), child: Row( mainAxisAlignment: MainAxisAlignment.center,