multiple survey added.

development_sikander
Sikander Saleem 2 years ago
parent d1e2d0f59b
commit 449c93649a

@ -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/string_extensions.dart';
import 'package:mohem_flutter_app/extensions/widget_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/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/offers_and_discounts/get_offers_list.dart';
import 'package:mohem_flutter_app/models/privilege_list_model.dart'; import 'package:mohem_flutter_app/models/privilege_list_model.dart';
import 'package:mohem_flutter_app/provider/chat_provider_model.dart'; import 'package:mohem_flutter_app/provider/chat_provider_model.dart';
@ -158,39 +160,72 @@ class _DashboardScreenState extends State<DashboardScreen> with WidgetsBindingOb
_refreshController.refreshCompleted(); _refreshController.refreshCompleted();
} }
int ermIndex = 0;
void handleErmChannel(List<ItgResponseData> 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() { void checkERMChannel() {
data.getITGNotification().then((val) { data.getITGNotification().then((val) async {
if (val!.result!.data != null) { if (val!.result!.data != null) {
print("-------------------- Survey ----------------------------"); ermIndex = 0;
if (val.result!.data!.first.notificationType == "Survey") { val.result?.data?.removeWhere((element) => element.notificationType == "Announcement");
DashboardApiClient().getAdvertisementDetail(val.result!.data!.first.notificationMasterId ?? "").then( handleErmChannel(val.result?.data ?? []);
(value) { {
if (value!.mohemmItgResponseItem!.statusCode == 200) { // if (ERMvalue.notificationType == "Survey") {
if (value.mohemmItgResponseItem!.result!.data != null) { // await DashboardApiClient().getAdvertisementDetail(val.result!.data!.first.notificationMasterId ?? "").then(
// Navigator.pushNamed(context, AppRoutes.survey, arguments: val.result!.data); // (value) async {
Navigator.pushNamed(context, AppRoutes.survey, arguments: value.mohemmItgResponseItem!.result!.data!.first); // if (value!.mohemmItgResponseItem!.statusCode == 200) {
// Navigator.pushNamed(context, AppRoutes.advertisement, arguments: { // if (value.mohemmItgResponseItem!.result!.data != null) {
// "masterId": val.result!.data!.notificationMasterId, // // Navigator.pushNamed(context, AppRoutes.survey, arguments: val.result!.data);
// "advertisement": value.mohemmItgResponseItem!.result!.data!.advertisement, // 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 --------------------"); // },
DashboardApiClient().getAdvertisementDetail(val.result!.data!.first.notificationMasterId ?? "").then( // );
(value) { // } else {
if (value!.mohemmItgResponseItem!.statusCode == 200) { // print("------------------------------------------- Ads --------------------");
if (value.mohemmItgResponseItem!.result!.data != null) { // await DashboardApiClient().getAdvertisementDetail(ERMvalue.notificationMasterId ?? "").then(
Navigator.pushNamed(context, AppRoutes.advertisement, arguments: { // (value) async {
"masterId": val.result!.data!.first.notificationMasterId, // if (value!.mohemmItgResponseItem!.statusCode == 200) {
"advertisement": value.mohemmItgResponseItem!.result!.data!.first.advertisement, // 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<DashboardScreen> with WidgetsBindingOb
], ],
), ),
).onPress(() { ).onPress(() {
Navigator.pushNamed(context, AppRoutes.marathonTutorialScreen); checkERMChannel();
// Navigator.pushNamed(context, AppRoutes.marathonTutorialScreen);
}), }),
], ],
), ),

@ -35,7 +35,9 @@ class _ITGAdsScreenState extends State<ITGAdsScreen> {
bool isImage = false; bool isImage = false;
bool isAudio = false; bool isAudio = false;
String ext = ''; String ext = '';
late File imageFile;
// late File imageFile;
late String imageUrl;
ads.Advertisement? advertisementData; ads.Advertisement? advertisementData;
dynamic data; dynamic data;
String? masterID; String? masterID;
@ -47,12 +49,13 @@ class _ITGAdsScreenState extends State<ITGAdsScreen> {
late CountdownTimerController timerController; late CountdownTimerController timerController;
void checkFileType() async { void checkFileType() {
String? rFile = advertisementData!.viewAttachFileColl!.first.base64String; String? rFile = advertisementData!.viewAttachFileColl!.first.base64String;
String? rFileExt = advertisementData!.viewAttachFileColl!.first.fileName; String? rFileExt = advertisementData!.viewAttachFileColl!.first.fileName;
ext = "." + rFileExt!.split(".").last.toLowerCase(); ext = "." + rFileExt!.split(".").last.toLowerCase();
if (ext == ".png" || ext == ".jpg" || ext == ".jpeg" || ext == ".gif") { if (ext == ".png" || ext == ".jpg" || ext == ".jpeg" || ext == ".gif") {
await processImage(rFile!); // await processImage();
imageUrl = rFile!;
isImage = true; isImage = true;
} else { } else {
if (ext == ".aac") { if (ext == ".aac") {
@ -62,11 +65,11 @@ class _ITGAdsScreenState extends State<ITGAdsScreen> {
_futureController = createVideoPlayer(rFile!); _futureController = createVideoPlayer(rFile!);
} }
advertisementData?.actionButtonsColl!.forEach((element) { // advertisementData?.actionButtonsColl!.forEach((element) {
advertisementData?.actionButtonsColl!.removeWhere((element1) => element1.actionButtonId == advertisementData?.skipButtonId); advertisementData?.actionButtonsColl!.removeWhere((element1) => element1.actionButtonId == advertisementData?.skipButtonId);
}); //});
setState(() {}); // setState(() {});
} }
void changeTimer(bool isTimerEnd) { void changeTimer(bool isTimerEnd) {
@ -80,16 +83,17 @@ class _ITGAdsScreenState extends State<ITGAdsScreen> {
timerController.dispose(); timerController.dispose();
} }
Future processImage(String encodedBytes) async { //
try { // Future processImage(String encodedBytes) async {
Uint8List decodedBytes = base64Decode(encodedBytes.split("base64,").last); // try {
Directory appDocumentsDirectory = await getApplicationDocumentsDirectory(); // 1 // Uint8List decodedBytes = base64Decode(encodedBytes.split("base64,").last);
imageFile = Io.File("${appDocumentsDirectory.path}/addImage$ext"); // Directory appDocumentsDirectory = await getApplicationDocumentsDirectory(); // 1
imageFile.writeAsBytesSync(decodedBytes); // imageFile = Io.File("${appDocumentsDirectory.path}/addImage$ext");
} catch (e) { // imageFile.writeAsBytesSync(decodedBytes);
logger.d(e); // } catch (e) {
} // logger.d(e);
} // }
// }
Future<VideoPlayerController> createVideoPlayer(String encodedBytes) async { Future<VideoPlayerController> createVideoPlayer(String encodedBytes) async {
try { try {
@ -176,13 +180,11 @@ class _ITGAdsScreenState extends State<ITGAdsScreen> {
itemBuilder: (context, index) { itemBuilder: (context, index) {
String? btnText = AppState().isArabic(context) ? advertisementData?.actionButtonsColl![index].btnTextAr : advertisementData?.actionButtonsColl![index].btnTextEn; String? btnText = AppState().isArabic(context) ? advertisementData?.actionButtonsColl![index].btnTextAr : advertisementData?.actionButtonsColl![index].btnTextEn;
return DefaultButton(btnText!, () async { return DefaultButton(btnText!, () async {
Navigator.pop(context); Navigator.pop(context);
DashboardApiClient() DashboardApiClient().setAdvertisementViewed(masterID!, advertisementData!.advertisementId!, advertisementData?.actionButtonsColl![index].actionValue).then((value) {
.setAdvertisementViewed(masterID!, advertisementData!.advertisementId!, advertisementData?.actionButtonsColl![index].actionValue) logger.d(value);
.then((value) { });
logger.d(value); }).paddingOnly(left: 60.0, right: 60.0, top: 8, bottom: 8);
});
}).paddingOnly(left: 60.0, right: 60.0, top: 8, bottom: 8);
}, },
gridDelegate: const SliverGridDelegateWithFixedCrossAxisCount( gridDelegate: const SliverGridDelegateWithFixedCrossAxisCount(
crossAxisCount: 1, crossAxisCount: 1,
@ -266,7 +268,7 @@ class _ITGAdsScreenState extends State<ITGAdsScreen> {
crossAxisAlignment: CrossAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center,
children: [ children: [
Image.file(imageFile), Image.network(imageUrl),
50.height, 50.height,
Container(padding: const EdgeInsets.all(16), decoration: Utils.containerRadius(MyColors.white, 10), child: const Icon(Icons.thumb_up, color: MyColors.gradiantEndColor)).onPress( Container(padding: const EdgeInsets.all(16), decoration: Utils.containerRadius(MyColors.white, 10), child: const Icon(Icons.thumb_up, color: MyColors.gradiantEndColor)).onPress(
() { () {

@ -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/models/itg/survey_model.dart';
import 'package:mohem_flutter_app/widgets/button/default_button.dart'; import 'package:mohem_flutter_app/widgets/button/default_button.dart';
import 'package:flutter/widgets.dart' as fw;
class SurveyScreen extends StatefulWidget { class SurveyScreen extends StatefulWidget {
const SurveyScreen({Key? key}) : super(key: key); const SurveyScreen({Key? key}) : super(key: key);
@ -47,29 +49,32 @@ class _SurveyScreenState extends State<SurveyScreen> {
body: Column( body: Column(
children: [ children: [
Expanded( Expanded(
child: ListView( child: Directionality(
children: [ textDirection: AppState().isArabic(context) ? fw.TextDirection.rtl : fw.TextDirection.ltr,
Padding( child: ListView(
padding: const EdgeInsets.all(16.0), children: [
child: Column( Padding(
children: [ padding: const EdgeInsets.all(16.0),
32.height, child: Column(
(AppState().isArabic(context) ? itgResponseData?.survey?.titleAr : itgResponseData?.survey?.title)?.toText24() ?? const Text(""), children: [
8.height, 32.height,
(AppState().isArabic(context) ? itgResponseData?.survey?.descriptionAr : itgResponseData?.survey?.description)?.toText16() ?? const Text(""), (AppState().isArabic(context) ? itgResponseData?.survey?.titleAr : itgResponseData?.survey?.title)?.toText24() ?? const Text(""),
ListView.builder( 8.height,
padding: EdgeInsets.zero, (AppState().isArabic(context) ? itgResponseData?.survey?.descriptionAr : itgResponseData?.survey?.description)?.toText16() ?? const Text(""),
shrinkWrap: true, ListView.builder(
physics: const NeverScrollableScrollPhysics(), padding: EdgeInsets.zero,
itemCount: itgResponseData?.survey?.questions?.length, shrinkWrap: true,
itemBuilder: (cxt, index) { physics: const NeverScrollableScrollPhysics(),
return answeredQuestions.isNotEmpty ? getSurveyWidget(itgResponseData?.survey?.questions![index], index) : Container(); itemCount: itgResponseData?.survey?.questions?.length,
}, itemBuilder: (cxt, index) {
), return answeredQuestions.isNotEmpty ? getSurveyWidget(itgResponseData?.survey?.questions![index], index) : Container();
], },
).paddingOnly(left: 21, right: 21), ),
), ],
], ).paddingOnly(left: 21, right: 21),
),
],
),
)), )),
DefaultButton( DefaultButton(
LocaleKeys.submitSurvey.tr(), LocaleKeys.submitSurvey.tr(),

Loading…
Cancel
Save