From 449c93649a96b31bf16a5dfd27d62211f51560af Mon Sep 17 00:00:00 2001 From: Sikander Saleem Date: Mon, 1 Jan 2024 14:29:41 +0300 Subject: [PATCH] multiple survey added. --- lib/ui/landing/dashboard_screen.dart | 100 ++++++++++++------ .../itg/its_add_screen_video_image.dart | 50 ++++----- lib/ui/landing/itg/survey_screen.dart | 51 +++++---- 3 files changed, 122 insertions(+), 79 deletions(-) diff --git a/lib/ui/landing/dashboard_screen.dart b/lib/ui/landing/dashboard_screen.dart index 8b03af9..5de9052 100644 --- a/lib/ui/landing/dashboard_screen.dart +++ b/lib/ui/landing/dashboard_screen.dart @@ -16,6 +16,8 @@ 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/itg/itg_main_response.dart'; +import 'package:mohem_flutter_app/models/itg/itg_response_model.dart'; import 'package:mohem_flutter_app/models/offers_and_discounts/get_offers_list.dart'; import 'package:mohem_flutter_app/models/privilege_list_model.dart'; import 'package:mohem_flutter_app/provider/chat_provider_model.dart'; @@ -158,39 +160,72 @@ class _DashboardScreenState extends State with WidgetsBindingOb _refreshController.refreshCompleted(); } + int ermIndex = 0; + + void handleErmChannel(List list) async { + try { + if (ermIndex == list.length) { + return; + } + Utils.showLoading(context); + ItgMainRes? response = await DashboardApiClient().getAdvertisementDetail(list[ermIndex].notificationMasterId ?? ""); + Utils.hideLoading(context); + if (response!.mohemmItgResponseItem!.result!.data != null) { + if (list[ermIndex].notificationType == "Survey") { + await Navigator.pushNamed(context, AppRoutes.survey, arguments: response.mohemmItgResponseItem!.result!.data!.first); + } else { + await Navigator.pushNamed(context, AppRoutes.advertisement, arguments: { + "masterId": list[ermIndex].notificationMasterId, + "advertisement": response.mohemmItgResponseItem!.result!.data!.first.advertisement, + }); + } + } + ermIndex++; + handleErmChannel(list); + } catch (ex) { + Utils.hideLoading(context); + Utils.handleException(ex, context, null); + return; + } + } + void checkERMChannel() { - data.getITGNotification().then((val) { + data.getITGNotification().then((val) async { if (val!.result!.data != null) { - print("-------------------- Survey ----------------------------"); - if (val.result!.data!.first.notificationType == "Survey") { - DashboardApiClient().getAdvertisementDetail(val.result!.data!.first.notificationMasterId ?? "").then( - (value) { - if (value!.mohemmItgResponseItem!.statusCode == 200) { - if (value.mohemmItgResponseItem!.result!.data != null) { - // Navigator.pushNamed(context, AppRoutes.survey, arguments: val.result!.data); - Navigator.pushNamed(context, AppRoutes.survey, arguments: value.mohemmItgResponseItem!.result!.data!.first); - // Navigator.pushNamed(context, AppRoutes.advertisement, arguments: { - // "masterId": val.result!.data!.notificationMasterId, - // "advertisement": value.mohemmItgResponseItem!.result!.data!.advertisement, - // }); - } - } - }, - ); - } else { - print("------------------------------------------- Ads --------------------"); - DashboardApiClient().getAdvertisementDetail(val.result!.data!.first.notificationMasterId ?? "").then( - (value) { - if (value!.mohemmItgResponseItem!.statusCode == 200) { - if (value.mohemmItgResponseItem!.result!.data != null) { - Navigator.pushNamed(context, AppRoutes.advertisement, arguments: { - "masterId": val.result!.data!.first.notificationMasterId, - "advertisement": value.mohemmItgResponseItem!.result!.data!.first.advertisement, - }); - } - } - }, - ); + ermIndex = 0; + val.result?.data?.removeWhere((element) => element.notificationType == "Announcement"); + handleErmChannel(val.result?.data ?? []); + { + // if (ERMvalue.notificationType == "Survey") { + // await DashboardApiClient().getAdvertisementDetail(val.result!.data!.first.notificationMasterId ?? "").then( + // (value) async { + // if (value!.mohemmItgResponseItem!.statusCode == 200) { + // if (value.mohemmItgResponseItem!.result!.data != null) { + // // Navigator.pushNamed(context, AppRoutes.survey, arguments: val.result!.data); + // await Navigator.pushNamed(context, AppRoutes.survey, arguments: value.mohemmItgResponseItem!.result!.data!.first); + // // Navigator.pushNamed(context, AppRoutes.advertisement, arguments: { + // // "masterId": val.result!.data!.notificationMasterId, + // // "advertisement": value.mohemmItgResponseItem!.result!.data!.advertisement, + // // }); + // } + // } + // }, + // ); + // } else { + // print("------------------------------------------- Ads --------------------"); + // await DashboardApiClient().getAdvertisementDetail(ERMvalue.notificationMasterId ?? "").then( + // (value) async { + // if (value!.mohemmItgResponseItem!.statusCode == 200) { + // if (value.mohemmItgResponseItem!.result!.data != null) { + // await Navigator.pushNamed(context, AppRoutes.advertisement, arguments: { + // "masterId": val.result!.data!.first.notificationMasterId, + // "advertisement": value.mohemmItgResponseItem!.result!.data!.first.advertisement, + // }); + // } + // } + // }, + // ); + // } } } }); @@ -535,7 +570,8 @@ class _DashboardScreenState extends State with WidgetsBindingOb ], ), ).onPress(() { - Navigator.pushNamed(context, AppRoutes.marathonTutorialScreen); + checkERMChannel(); + // Navigator.pushNamed(context, AppRoutes.marathonTutorialScreen); }), ], ), diff --git a/lib/ui/landing/itg/its_add_screen_video_image.dart b/lib/ui/landing/itg/its_add_screen_video_image.dart index 8ce89d0..60bd4ba 100644 --- a/lib/ui/landing/itg/its_add_screen_video_image.dart +++ b/lib/ui/landing/itg/its_add_screen_video_image.dart @@ -35,7 +35,9 @@ class _ITGAdsScreenState extends State { bool isImage = false; bool isAudio = false; String ext = ''; - late File imageFile; + + // late File imageFile; + late String imageUrl; ads.Advertisement? advertisementData; dynamic data; String? masterID; @@ -47,12 +49,13 @@ class _ITGAdsScreenState extends State { late CountdownTimerController timerController; - void checkFileType() async { + void checkFileType() { String? rFile = advertisementData!.viewAttachFileColl!.first.base64String; String? rFileExt = advertisementData!.viewAttachFileColl!.first.fileName; ext = "." + rFileExt!.split(".").last.toLowerCase(); if (ext == ".png" || ext == ".jpg" || ext == ".jpeg" || ext == ".gif") { - await processImage(rFile!); + // await processImage(); + imageUrl = rFile!; isImage = true; } else { if (ext == ".aac") { @@ -62,11 +65,11 @@ class _ITGAdsScreenState extends State { _futureController = createVideoPlayer(rFile!); } - advertisementData?.actionButtonsColl!.forEach((element) { + // advertisementData?.actionButtonsColl!.forEach((element) { advertisementData?.actionButtonsColl!.removeWhere((element1) => element1.actionButtonId == advertisementData?.skipButtonId); - }); + //}); - setState(() {}); + // setState(() {}); } void changeTimer(bool isTimerEnd) { @@ -80,16 +83,17 @@ class _ITGAdsScreenState extends State { timerController.dispose(); } - Future processImage(String encodedBytes) async { - try { - Uint8List decodedBytes = base64Decode(encodedBytes.split("base64,").last); - Directory appDocumentsDirectory = await getApplicationDocumentsDirectory(); // 1 - imageFile = Io.File("${appDocumentsDirectory.path}/addImage$ext"); - imageFile.writeAsBytesSync(decodedBytes); - } catch (e) { - logger.d(e); - } - } + // + // Future processImage(String encodedBytes) async { + // try { + // Uint8List decodedBytes = base64Decode(encodedBytes.split("base64,").last); + // Directory appDocumentsDirectory = await getApplicationDocumentsDirectory(); // 1 + // imageFile = Io.File("${appDocumentsDirectory.path}/addImage$ext"); + // imageFile.writeAsBytesSync(decodedBytes); + // } catch (e) { + // logger.d(e); + // } + // } Future createVideoPlayer(String encodedBytes) async { try { @@ -176,13 +180,11 @@ class _ITGAdsScreenState extends State { itemBuilder: (context, index) { String? btnText = AppState().isArabic(context) ? advertisementData?.actionButtonsColl![index].btnTextAr : advertisementData?.actionButtonsColl![index].btnTextEn; return DefaultButton(btnText!, () async { - Navigator.pop(context); - DashboardApiClient() - .setAdvertisementViewed(masterID!, advertisementData!.advertisementId!, advertisementData?.actionButtonsColl![index].actionValue) - .then((value) { - logger.d(value); - }); - }).paddingOnly(left: 60.0, right: 60.0, top: 8, bottom: 8); + Navigator.pop(context); + DashboardApiClient().setAdvertisementViewed(masterID!, advertisementData!.advertisementId!, advertisementData?.actionButtonsColl![index].actionValue).then((value) { + logger.d(value); + }); + }).paddingOnly(left: 60.0, right: 60.0, top: 8, bottom: 8); }, gridDelegate: const SliverGridDelegateWithFixedCrossAxisCount( crossAxisCount: 1, @@ -266,7 +268,7 @@ class _ITGAdsScreenState extends State { crossAxisAlignment: CrossAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center, children: [ - Image.file(imageFile), + Image.network(imageUrl), 50.height, Container(padding: const EdgeInsets.all(16), decoration: Utils.containerRadius(MyColors.white, 10), child: const Icon(Icons.thumb_up, color: MyColors.gradiantEndColor)).onPress( () { diff --git a/lib/ui/landing/itg/survey_screen.dart b/lib/ui/landing/itg/survey_screen.dart index 600be6a..3bbb27f 100644 --- a/lib/ui/landing/itg/survey_screen.dart +++ b/lib/ui/landing/itg/survey_screen.dart @@ -15,6 +15,8 @@ import 'package:mohem_flutter_app/models/itg/itg_response_model.dart'; import 'package:mohem_flutter_app/models/itg/survey_model.dart'; import 'package:mohem_flutter_app/widgets/button/default_button.dart'; +import 'package:flutter/widgets.dart' as fw; + class SurveyScreen extends StatefulWidget { const SurveyScreen({Key? key}) : super(key: key); @@ -47,29 +49,32 @@ class _SurveyScreenState extends State { body: Column( children: [ Expanded( - child: ListView( - children: [ - Padding( - padding: const EdgeInsets.all(16.0), - child: Column( - children: [ - 32.height, - (AppState().isArabic(context) ? itgResponseData?.survey?.titleAr : itgResponseData?.survey?.title)?.toText24() ?? const Text(""), - 8.height, - (AppState().isArabic(context) ? itgResponseData?.survey?.descriptionAr : itgResponseData?.survey?.description)?.toText16() ?? const Text(""), - ListView.builder( - padding: EdgeInsets.zero, - shrinkWrap: true, - physics: const NeverScrollableScrollPhysics(), - itemCount: itgResponseData?.survey?.questions?.length, - itemBuilder: (cxt, index) { - return answeredQuestions.isNotEmpty ? getSurveyWidget(itgResponseData?.survey?.questions![index], index) : Container(); - }, - ), - ], - ).paddingOnly(left: 21, right: 21), - ), - ], + child: Directionality( + textDirection: AppState().isArabic(context) ? fw.TextDirection.rtl : fw.TextDirection.ltr, + child: ListView( + children: [ + Padding( + padding: const EdgeInsets.all(16.0), + child: Column( + children: [ + 32.height, + (AppState().isArabic(context) ? itgResponseData?.survey?.titleAr : itgResponseData?.survey?.title)?.toText24() ?? const Text(""), + 8.height, + (AppState().isArabic(context) ? itgResponseData?.survey?.descriptionAr : itgResponseData?.survey?.description)?.toText16() ?? const Text(""), + ListView.builder( + padding: EdgeInsets.zero, + shrinkWrap: true, + physics: const NeverScrollableScrollPhysics(), + itemCount: itgResponseData?.survey?.questions?.length, + itemBuilder: (cxt, index) { + return answeredQuestions.isNotEmpty ? getSurveyWidget(itgResponseData?.survey?.questions![index], index) : Container(); + }, + ), + ], + ).paddingOnly(left: 21, right: 21), + ), + ], + ), )), DefaultButton( LocaleKeys.submitSurvey.tr(),