diff --git a/assets/langs/ar-SA.json b/assets/langs/ar-SA.json index 4178d17..6b4dca7 100644 --- a/assets/langs/ar-SA.json +++ b/assets/langs/ar-SA.json @@ -404,7 +404,8 @@ "stamp": "ختم", "addFavoriteList": "هل تريد اضافة {name} لقائمة المفضله", "feedbackUserExperience": "هذا للحصول على تعليقات حول تجربة المستخدم", - "rateUI": ".1 كيف تريد تقييم التطبيق", + "rateUI": "كيف تريد أن تقيم", + "rateUI2": "ما مدى رضائك عن هذا التطبيق", "submitSurvey": "ارسال الاستبيان", "typeHere": "اكتب هنا", "infoDetail": "تفاصيل المعلومات", @@ -424,7 +425,7 @@ "typeCurrentPasswordBelow": "اكتب كلمة المرور الحاليه", "currentPassword": "كلمة المرور الحاليه", "concurrentReports": "التقارير المتزامنه", - "EnterNewAddressMoved" : "أدخل عنوان جديد إذا كنت قد انتقلت", + "EnterNewAddressMoved": "أدخل عنوان جديد إذا كنت قد انتقلت", "CorrectAddress": "تصحيح أو تعديل هذا العنوان", "SelectChangeWantToMake": " حدد نوع التغيير الذي تريد القيام به.", "profile": { @@ -480,7 +481,7 @@ "gameTime": "وقت اللعب:", "joinMarathon": "انضم إلى ماراثون", "joinDemoMarathon": "انضم إلى الماراثون التجريبي", - "demo":"تجريبي", + "demo": "تجريبي", "minutes": "الدقائق", "seconds": "ثواني", "note": "ملحوظة:", @@ -517,12 +518,14 @@ "startingIn": "يبدأ في", "youAreOutOfContest": "أنت خارج المسابقة.", "winners": "الفائزين!!!", - "expireAfter":"تنتهي بعد", - "oneWeek":"أسبوع 1", - "twoWeek":"2 أسبوع", + "expireAfter": "تنتهي بعد", + "oneWeek": "أسبوع 1", + "twoWeek": "2 أسبوع", "noUpcoming": "لا يوجد قادم", "fakeLocation": ".لقد تتبعنا أنك تحاول استخدام موقع مزيف! يعتبر هذا مخالفة وقد تم إخطار الموارد البشرية", "noWinner": "حزين! لم يفز أحد اليوم.", - "myTeam" : "فريقي", - "youCanPlayDemo": "لكن يمكنك لعب العرض" + "myTeam": "فريقي", + "youCanPlayDemo": "لكن يمكنك لعب العرض", + "connectHmgWifi": "قم بتوصيل HMG WIFI", + "connectedHmgWifi": "اتصال HMG WIFI" } \ No newline at end of file diff --git a/assets/langs/en-US.json b/assets/langs/en-US.json index e4a4266..3aa2705 100644 --- a/assets/langs/en-US.json +++ b/assets/langs/en-US.json @@ -404,7 +404,8 @@ "stamp": "Stamp", "addFavoriteList": "Do you want to add {name} in your favorite list", "feedbackUserExperience": "This is to get the feedback about the user experience", - "rateUI": "1. How would you rate this UI?", + "rateUI": "How would you like to rate", + "rateUI2": "How do you satisfied with this application", "submitSurvey": "Submit Survey", "typeHere": "Type here", "infoDetail": "Info Detail", @@ -524,5 +525,7 @@ "fakeLocation": "We traced out that you try to use a fake location! This is considered a violation, and HR has been notified.", "noWinner": "Sad! No one won today.", "myTeam" : "My Team", - "youCanPlayDemo": "But you can play demo" + "youCanPlayDemo": "But you can play demo", + "connectHmgWifi": "Connect HMG WIFI", + "connectedHmgWifi": "Connected HMG WIFI" } \ No newline at end of file diff --git a/lib/app_state/app_state.dart b/lib/app_state/app_state.dart index cbdcdd9..23be328 100644 --- a/lib/app_state/app_state.dart +++ b/lib/app_state/app_state.dart @@ -45,6 +45,8 @@ class AppState { String? get getForgetPasswordTokenID => forgetPasswordTokenID; + bool isConnectedToHMG = false; + //Wifi info String? _mohemmWifiSSID; diff --git a/lib/generated/locale_keys.g.dart b/lib/generated/locale_keys.g.dart index 4eb91c9..d320588 100644 --- a/lib/generated/locale_keys.g.dart +++ b/lib/generated/locale_keys.g.dart @@ -511,5 +511,7 @@ abstract class LocaleKeys { static const noWinner = 'noWinner'; static const myTeam = 'myTeam'; static const youCanPlayDemo = 'youCanPlayDemo'; + static const connectHmgWifi = 'connectHmgWifi'; + static const connectedHmgWifi = 'connectedHmgWifi'; } diff --git a/lib/provider/hmg_connection_provider.dart b/lib/provider/hmg_connection_provider.dart new file mode 100644 index 0000000..b19c1cc --- /dev/null +++ b/lib/provider/hmg_connection_provider.dart @@ -0,0 +1,46 @@ +import 'dart:io'; + +import 'package:flutter/cupertino.dart'; +import 'package:mohem_flutter_app/app_state/app_state.dart'; +import 'package:wifi_iot/wifi_iot.dart'; + +class HmgConnectionProvider extends ChangeNotifier { + bool isConnectedToHMG = false; + + Future checkHmgNetworkConnectivity() async { + if (await WiFiForIoTPlugin.getSSID() == AppState().getMohemmWifiSSID) { + isConnectedToHMG = true; + } else { + isConnectedToHMG = false; + } + AppState().isConnectedToHMG = isConnectedToHMG; + return isConnectedToHMG; + } + + void connectWithHmgNetwork() async { + try { + bool isConnected = await WiFiForIoTPlugin.connect("MOHEMM-CONNECT", password: "0987654321", joinOnce: Platform.isIOS ? false : true, security: NetworkSecurity.WPA, withInternet: false); + + if (isConnected) { + await WiFiForIoTPlugin.forceWifiUsage(true); + await Future.delayed(const Duration(seconds: 2)); + isConnectedToHMG=true; + + } + } catch (e) { + isConnectedToHMG = false; + AppState().isConnectedToHMG = isConnectedToHMG; + print("----------------o----"); + print(e); + } + } + + Future closeWifiRequest() async { + if (Platform.isAndroid) { + await WiFiForIoTPlugin.forceWifiUsage(false); + } + isConnectedToHMG = false; + AppState().isConnectedToHMG = isConnectedToHMG; + return await WiFiForIoTPlugin.disconnect(); + } +} 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 be16a89..61b2766 100644 --- a/lib/ui/landing/itg/its_add_screen_video_image.dart +++ b/lib/ui/landing/itg/its_add_screen_video_image.dart @@ -93,7 +93,7 @@ class _ITGAdsScreenState extends State { @override void dispose() { - _controller.dispose(); + if (_controller != null) _controller.dispose(); // player.stop(); // player.dispose(); super.dispose(); @@ -172,7 +172,28 @@ class _ITGAdsScreenState extends State { } }, ), - if (isImage) Image.file(imageFile), + if (isImage) + Column( + crossAxisAlignment: CrossAxisAlignment.center, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Image.file(imageFile), + 50.height, + Container(padding: const EdgeInsets.all(16), decoration: Utils.containerRadius(MyColors.white, 10), child: const Icon(Icons.thumb_up, color: MyColors.gradiantEndColor)).onPress( + () { + try { + DashboardApiClient().setAdvertisementViewed(masterID!, advertisementData!.advertisementId!).then((value) { + logger.d(value); + Navigator.pop(context); + }); + } catch (ex) { + logger.wtf(ex); + Utils.handleException(ex, context, null); + } + }, + ), + ], + ), ], ), ); diff --git a/lib/ui/landing/itg/survey_screen.dart b/lib/ui/landing/itg/survey_screen.dart index ec79d0f..6240934 100644 --- a/lib/ui/landing/itg/survey_screen.dart +++ b/lib/ui/landing/itg/survey_screen.dart @@ -72,7 +72,7 @@ class _SurveyScreenState extends State { ], ).paddingOnly(left: 22, right: 22, top: 12, bottom: 12).objectContainerView(disablePadding: true), 39.height, - LocaleKeys.rateUI.tr().toText16(), + LocaleKeys.rateUI2.tr().toText16(), 10.height, GridView( gridDelegate: const SliverGridDelegateWithFixedCrossAxisCount(crossAxisCount: 5, crossAxisSpacing: 7, mainAxisSpacing: 7), @@ -134,7 +134,7 @@ class _SurveyScreenState extends State { void performAPI() async { Utils.showLoading(context); try { - ItgMainRes? res= await DashboardApiClient().submitItgForm( + ItgMainRes? res = await DashboardApiClient().submitItgForm( comment: reviewText, masterId: itgResponseData!.notificationMasterId ?? "", itgList: [ @@ -144,15 +144,12 @@ class _SurveyScreenState extends State { serviceId: itgResponseData!.serviceId ?? 0); Utils.hideLoading(context); - - - if(res!.mohemmItgResponseItem!.statusCode==200){ + if (res!.mohemmItgResponseItem!.statusCode == 200) { Utils.showToast("Survey has been submitted successfully"); Navigator.pop(context); - }else{ + } else { Utils.showToast(res.mohemmItgResponseItem!.message.toString()); } - } catch (ex) { Utils.hideLoading(context); Utils.handleException(ex, context, (msg) { diff --git a/lib/ui/login/login_screen.dart b/lib/ui/login/login_screen.dart index 37d883e..219d235 100644 --- a/lib/ui/login/login_screen.dart +++ b/lib/ui/login/login_screen.dart @@ -26,6 +26,7 @@ import 'package:mohem_flutter_app/models/member_information_list_model.dart'; import 'package:mohem_flutter_app/models/member_login_list_model.dart'; import 'package:mohem_flutter_app/models/privilege_list_model.dart'; import 'package:mohem_flutter_app/widgets/button/default_button.dart'; +import 'package:mohem_flutter_app/widgets/button/hmg_connectivity_button.dart'; import 'package:mohem_flutter_app/widgets/input_widget.dart'; // import 'package:safe_device/safe_device.dart'; @@ -222,7 +223,9 @@ class _LoginScreenState extends State { children: [ Row( children: [ - Expanded(child: SizedBox()), + Expanded( + child:SizedBox(child: HmgConnectivityButton(),), + ), Row( children: [ LocaleKeys.english.tr().toText14(color: AppState().isArabic(context) ? null : MyColors.textMixColor).onPress(() { diff --git a/lib/widgets/button/hmg_connectivity_button.dart b/lib/widgets/button/hmg_connectivity_button.dart new file mode 100644 index 0000000..bc2b9df --- /dev/null +++ b/lib/widgets/button/hmg_connectivity_button.dart @@ -0,0 +1,50 @@ +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/int_extensions.dart'; +import 'package:mohem_flutter_app/extensions/string_extensions.dart'; +import 'package:mohem_flutter_app/generated/locale_keys.g.dart'; +import 'package:mohem_flutter_app/provider/hmg_connection_provider.dart'; +import 'package:provider/provider.dart'; + +class HmgConnectivityButton extends StatelessWidget { + @override + Widget build(BuildContext context) { + Provider.of(context, listen: false).checkHmgNetworkConnectivity(); + return Consumer( + builder: (_, HmgConnectionProvider foo, __) { + return Container( + height: 45, + padding: const EdgeInsets.only(left: 12, right: 12), + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(200.0), + gradient: const LinearGradient( + transform: GradientRotation(.83), + begin: Alignment.topRight, + end: Alignment.bottomLeft, + colors: [ + MyColors.gradiantEndColor, + MyColors.gradiantStartColor, + ], + ), + ), + child: InkWell( + onTap: (){ + + }, + child: Row( + children: [ + const Icon( + Icons.wifi, + color: Colors.white, + ), + 12.width, + LocaleKeys.connectHmgWifi.tr().toText18(color: Colors.white), + ], + ), + ), + ); + }, + ); + } +}