hmg wifi implementation

development_mirza
mirza.shafique 3 years ago
parent d458e8ac45
commit 2455e27595

@ -424,7 +424,7 @@
"typeCurrentPasswordBelow": "اكتب كلمة المرور الحاليه",
"currentPassword": "كلمة المرور الحاليه",
"concurrentReports": "التقارير المتزامنه",
"EnterNewAddressMoved" : "أدخل عنوان جديد إذا كنت قد انتقلت",
"EnterNewAddressMoved": "أدخل عنوان جديد إذا كنت قد انتقلت",
"CorrectAddress": "تصحيح أو تعديل هذا العنوان",
"SelectChangeWantToMake": " حدد نوع التغيير الذي تريد القيام به.",
"profile": {
@ -480,7 +480,7 @@
"gameTime": "وقت اللعب:",
"joinMarathon": "انضم إلى ماراثون",
"joinDemoMarathon": "انضم إلى الماراثون التجريبي",
"demo":"تجريبي",
"demo": "تجريبي",
"minutes": "الدقائق",
"seconds": "ثواني",
"note": "ملحوظة:",
@ -517,12 +517,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"
}

@ -524,5 +524,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"
}

@ -46,6 +46,8 @@ class AppState {
String? get getForgetPasswordTokenID => forgetPasswordTokenID;
bool isConnectedToHMG = false;
//Wifi info
String? _mohemmWifiSSID;
@ -180,5 +182,4 @@ class AppState {
}
bool cancelRequestTrancsection = true;
}

@ -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';
}

@ -12,6 +12,7 @@ import 'package:mohem_flutter_app/models/post_params_model.dart';
import 'package:mohem_flutter_app/provider/chat_provider_model.dart';
import 'package:mohem_flutter_app/provider/dashboard_provider_model.dart';
import 'package:mohem_flutter_app/provider/eit_provider_model.dart';
import 'package:mohem_flutter_app/provider/hmg_connection_provider.dart';
import 'package:mohem_flutter_app/theme/app_theme.dart';
import 'package:mohem_flutter_app/ui/marathon/marathon_provider.dart';
import 'package:month_year_picker/month_year_picker.dart';
@ -69,6 +70,9 @@ Future<void> main() async {
),
ChangeNotifierProvider<MarathonProvider>(
create: (_) => MarathonProvider(),
),
ChangeNotifierProvider<HmgConnectionProvider>(
create: (_) => HmgConnectionProvider(),
)
],
child: const MyApp(),

@ -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<bool> 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<bool> closeWifiRequest() async {
if (Platform.isAndroid) {
await WiFiForIoTPlugin.forceWifiUsage(false);
}
isConnectedToHMG = false;
AppState().isConnectedToHMG = isConnectedToHMG;
return await WiFiForIoTPlugin.disconnect();
}
}

@ -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:permission_handler/permission_handler.dart';
import 'package:safe_device/safe_device.dart';
@ -165,7 +166,6 @@ class _LoginScreenState extends State<LoginScreen> {
}
}
@override
Widget build(BuildContext context) {
if (isAppOpenBySystem == null) {
@ -198,7 +198,9 @@ class _LoginScreenState extends State<LoginScreen> {
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(() {

@ -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<HmgConnectionProvider>(context, listen: false).checkHmgNetworkConnectivity();
return Consumer<HmgConnectionProvider>(
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: <Color>[
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),
],
),
),
);
},
);
}
}
Loading…
Cancel
Save