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/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<DashboardScreen> with WidgetsBindingOb
_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() {
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<DashboardScreen> with WidgetsBindingOb
],
),
).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 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<ITGAdsScreen> {
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<ITGAdsScreen> {
_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<ITGAdsScreen> {
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<VideoPlayerController> createVideoPlayer(String encodedBytes) async {
try {
@ -176,13 +180,11 @@ class _ITGAdsScreenState extends State<ITGAdsScreen> {
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<ITGAdsScreen> {
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(
() {

@ -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<SurveyScreen> {
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(),

Loading…
Cancel
Save