From 05427e38871ca0291330978582da7fb89dc33892 Mon Sep 17 00:00:00 2001 From: PGAN-MIS Date: Thu, 13 Apr 2023 16:45:19 +0800 Subject: [PATCH] Implemented SOS feature --- assets/pngs/emergency.png | Bin 0 -> 163354 bytes ios/Podfile.lock | 22 +- ios/Runner/Info.plist | 9 + lib/bloc/sos/sos_bloc.dart | 96 +++++++- lib/bloc/sos/sos_event.dart | 30 +++ lib/bloc/sos/sos_state.dart | 25 +- lib/bloc/user/user_bloc.dart | 41 ++-- lib/bloc/user/user_event.dart | 6 +- lib/bloc/user/user_state.dart | 4 +- lib/main.dart | 2 +- lib/model/sos/session.dart | 69 ++++++ lib/screens/sos/add_mobile.dart | 4 +- lib/screens/sos/components/acknnowledge.dart | 123 ++++++++++ lib/screens/sos/components/add_mobile.dart | 60 +++-- lib/screens/sos/components/edit_mobile.dart | 86 +++++++ lib/screens/sos/components/request_sos.dart | 215 +++++++++++------- lib/screens/sos/components/sos_received.dart | 204 ++++++++--------- lib/screens/sos/index.dart | 104 +++++++-- lib/screens/sos/request_sos.dart | 109 --------- lib/screens/sos/sos_received.dart | 133 ----------- lib/screens/unit2/basic-info/basic-info.dart | 5 + .../homepage.dart/components/menu-screen.dart | 2 +- .../unit2/homepage.dart/components/menu.dart | 2 + lib/screens/unit2/login/login.dart | 14 +- lib/sevices/sos/sos_service.dart | 96 +++++++- lib/utils/app_router.dart | 2 +- lib/utils/global.dart | 2 +- lib/utils/urls.dart | 11 +- linux/flutter/generated_plugin_registrant.cc | 4 + linux/flutter/generated_plugins.cmake | 1 + macos/Flutter/GeneratedPluginRegistrant.swift | 6 + macos/Podfile.lock | 22 +- pubspec.lock | 64 ++++++ pubspec.yaml | 2 + .../flutter/generated_plugin_registrant.cc | 3 + windows/flutter/generated_plugins.cmake | 1 + 36 files changed, 1067 insertions(+), 512 deletions(-) create mode 100644 assets/pngs/emergency.png create mode 100644 lib/model/sos/session.dart create mode 100644 lib/screens/sos/components/acknnowledge.dart create mode 100644 lib/screens/sos/components/edit_mobile.dart delete mode 100644 lib/screens/sos/request_sos.dart delete mode 100644 lib/screens/sos/sos_received.dart diff --git a/assets/pngs/emergency.png b/assets/pngs/emergency.png new file mode 100644 index 0000000000000000000000000000000000000000..5a1201577c01d70058cf91a2bd8fa4742cf50c66 GIT binary patch literal 163354 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�V%6lst{EdZE2SkF03j&5vUj-sgica&6I1TWkq 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�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 z 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 OA1N_8(JEns!2bseL#4L> literal 0 HcmV?d00001 diff --git a/ios/Podfile.lock b/ios/Podfile.lock index e6a0ac0..0f8d01a 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -3,6 +3,8 @@ PODS: - Flutter - MTBBarcodeScanner - SwiftProtobuf + - device_info (0.0.1): + - Flutter - easy_app_installer (0.0.1): - Flutter - Flutter (1.0.0) @@ -12,6 +14,8 @@ PODS: - FMDB (2.7.5): - FMDB/standard (= 2.7.5) - FMDB/standard (2.7.5) + - location (0.0.1): + - Flutter - modal_progress_hud_nsn (0.0.1): - Flutter - MTBBarcodeScanner (5.0.11) @@ -22,6 +26,8 @@ PODS: - FlutterMacOS - permission_handler_apple (9.0.4): - Flutter + - platform_device_id (0.0.1): + - Flutter - shared_preferences_foundation (0.0.1): - Flutter - FlutterMacOS @@ -33,13 +39,16 @@ PODS: DEPENDENCIES: - barcode_scan2 (from `.symlinks/plugins/barcode_scan2/ios`) + - device_info (from `.symlinks/plugins/device_info/ios`) - easy_app_installer (from `.symlinks/plugins/easy_app_installer/ios`) - Flutter (from `Flutter`) - fluttertoast (from `.symlinks/plugins/fluttertoast/ios`) + - location (from `.symlinks/plugins/location/ios`) - modal_progress_hud_nsn (from `.symlinks/plugins/modal_progress_hud_nsn/ios`) - package_info_plus (from `.symlinks/plugins/package_info_plus/ios`) - path_provider_foundation (from `.symlinks/plugins/path_provider_foundation/ios`) - permission_handler_apple (from `.symlinks/plugins/permission_handler_apple/ios`) + - platform_device_id (from `.symlinks/plugins/platform_device_id/ios`) - shared_preferences_foundation (from `.symlinks/plugins/shared_preferences_foundation/ios`) - sqflite (from `.symlinks/plugins/sqflite/ios`) @@ -53,12 +62,16 @@ SPEC REPOS: EXTERNAL SOURCES: barcode_scan2: :path: ".symlinks/plugins/barcode_scan2/ios" + device_info: + :path: ".symlinks/plugins/device_info/ios" easy_app_installer: :path: ".symlinks/plugins/easy_app_installer/ios" Flutter: :path: Flutter fluttertoast: :path: ".symlinks/plugins/fluttertoast/ios" + location: + :path: ".symlinks/plugins/location/ios" modal_progress_hud_nsn: :path: ".symlinks/plugins/modal_progress_hud_nsn/ios" package_info_plus: @@ -67,6 +80,8 @@ EXTERNAL SOURCES: :path: ".symlinks/plugins/path_provider_foundation/ios" permission_handler_apple: :path: ".symlinks/plugins/permission_handler_apple/ios" + platform_device_id: + :path: ".symlinks/plugins/platform_device_id/ios" shared_preferences_foundation: :path: ".symlinks/plugins/shared_preferences_foundation/ios" sqflite: @@ -74,16 +89,19 @@ EXTERNAL SOURCES: SPEC CHECKSUMS: barcode_scan2: 0af2bb63c81b4565aab6cd78278e4c0fa136dbb0 + device_info: d7d233b645a32c40dfdc212de5cf646ca482f175 easy_app_installer: 29abe397da7d86721fee853281202f414373f45c Flutter: f04841e97a9d0b0a8025694d0796dd46242b2854 fluttertoast: eb263d302cc92e04176c053d2385237e9f43fad0 FMDB: 2ce00b547f966261cd18927a3ddb07cb6f3db82a + location: 3a2eed4dd2fab25e7b7baf2a9efefe82b512d740 modal_progress_hud_nsn: f6fb744cd060653d66ed8f325360ef3650eb2fde MTBBarcodeScanner: f453b33c4b7dfe545d8c6484ed744d55671788cb package_info_plus: 6c92f08e1f853dc01228d6f553146438dafcd14e - path_provider_foundation: 37748e03f12783f9de2cb2c4eadfaa25fe6d4852 + path_provider_foundation: c68054786f1b4f3343858c1e1d0caaded73f0be9 permission_handler_apple: 44366e37eaf29454a1e7b1b7d736c2cceaeb17ce - shared_preferences_foundation: 297b3ebca31b34ec92be11acd7fb0ba932c822ca + platform_device_id: 81b3e2993881f87d0c82ef151dc274df4869aef5 + shared_preferences_foundation: 986fc17f3d3251412d18b0265f9c64113a8c2472 sqflite: 6d358c025f5b867b29ed92fc697fd34924e11904 SwiftProtobuf: b02b5075dcf60c9f5f403000b3b0c202a11b6ae1 Toast: 91b396c56ee72a5790816f40d3a94dd357abc196 diff --git a/ios/Runner/Info.plist b/ios/Runner/Info.plist index 097b297..3559a67 100644 --- a/ios/Runner/Info.plist +++ b/ios/Runner/Info.plist @@ -47,5 +47,14 @@ UIViewControllerBasedStatusBarAppearance + + NSLocationWhenInUseUsageDescription + Need location when in use + NSLocationAlwaysAndWhenInUseUsageDescription + Always and when in use! + NSLocationUsageDescription + Older devices need location. + NSLocationAlwaysUsageDescription + Can I have location always? diff --git a/lib/bloc/sos/sos_bloc.dart b/lib/bloc/sos/sos_bloc.dart index 03e5341..beb2c0f 100644 --- a/lib/bloc/sos/sos_bloc.dart +++ b/lib/bloc/sos/sos_bloc.dart @@ -1,22 +1,106 @@ import 'package:bloc/bloc.dart'; import 'package:equatable/equatable.dart'; +import 'package:flutter/foundation.dart'; import 'package:location/location.dart'; +import 'package:unit2/model/sos/session.dart'; import 'package:unit2/sevices/sos/sos_service.dart'; +import '../../utils/global.dart'; + part 'sos_event.dart'; part 'sos_state.dart'; class SosBloc extends Bloc { SosBloc() : super(SosInitial()) { LocationData? locationData; - on((event, emit)async { - emit(LoadingState()); + String? mobile1; + String? mobile2; + String? sessionToken; + ////get user location + on((event, emit) async { + emit(const LoadingState(message: "Getting Location")); + mobile1 = await SOS!.get('mobile1'); + mobile2 = await SOS!.get('mobile2'); + sessionToken = await SOS!.get('session_token'); + if (mobile1 != null) { + if (sessionToken != null) { + add(CheckAcknowledgement(sessionToken: sessionToken!)); + } else { + try { + LocationData? newLocationData = + await SosService.instance.getUserLocation(); + locationData = newLocationData; + emit(RequestSosState( + locationData: locationData!, + mobile1: mobile1!, + mobile2: mobile2)); + } catch (e) { + emit(ErrorState(message: e.toString())); + } + } + } else { + try { LocationData? newLocationData = - await SosService.instance.getUserLocation(); - locationData = newLocationData; - // User location Loaded and there is no mobile numbers in cache - emit(UserLocationLoaded(locationData: locationData!)); + await SosService.instance.getUserLocation(); + locationData = newLocationData; + + emit(UserLocationLoaded(locationData: locationData!)); + } catch (e) { + emit(ErrorState(message: e.toString())); + } + } + }); + ////submit mobile + on((event, emit) async { + emit(const LoadingState(message: "")); + mobile1 = event.mobile1; + mobile2 = event.mobile2; + await SOS!.put('mobile1', event.mobile1); + await SOS!.put('mobile2', event.mobile2); + emit(RequestSosState( + locationData: locationData!, + mobile1: event.mobile1, + mobile2: event.mobile2)); + }); + + //// send SOS + on((event, emit) async { + SessionData sessionData; + emit(const LoadingState(message: "Sending emergency response request")); + try { + sessionData = await SosService.instance.requestSos( + location: locationData!, + mobile1: mobile1!, + mobile2: mobile2, + msg: event.msg, + requestedDate: event.requestDate); + await SOS!.put('session_token', sessionData.sessionToken); + emit(SOSReceivedState(sessionToken: sessionData.sessionToken!)); + } catch (e) { + emit(ErrorState(message: e.toString())); + } + }); + //// check acknowledgement + on((event, emit) async { + SessionData sessionData; + try { + SessionData? newSessionData = + await SosService.instance.checkAcknowledgement(event.sessionToken); + if (newSessionData.acknowledgeDate == null) { + debugPrint(newSessionData.sessionToken); + emit(SOSReceivedState(sessionToken: newSessionData.sessionToken!)); + } else { + sessionData = newSessionData; + emit(SoSAcknowledgementConfirm(sessionData: sessionData)); + } + } catch (e) { + emit(ErrorState(message: e.toString())); + } + }); + on((event, emit) async { + await SOS!.delete('session_token'); + add(LoadUserLocation()); }); } } diff --git a/lib/bloc/sos/sos_event.dart b/lib/bloc/sos/sos_event.dart index 0880459..db341cd 100644 --- a/lib/bloc/sos/sos_event.dart +++ b/lib/bloc/sos/sos_event.dart @@ -11,3 +11,33 @@ class LoadUserLocation extends SosEvent { @override List get props => []; } + +class SubmitMobile extends SosEvent { + final String mobile1; + final String? mobile2; + const + SubmitMobile({required this.mobile1,required this.mobile2}); + @override + List get props => []; + +} + +class SendSOS extends SosEvent { + final String msg; + final String requestDate; + const SendSOS({required this.msg, required this.requestDate}); + @override + List get props => [msg, requestDate]; +} + +class CheckAcknowledgement extends SosEvent { + final String sessionToken; + const CheckAcknowledgement({required this.sessionToken}); + @override + List get props => [sessionToken]; +} + +class OnDoneRequest extends SosEvent { + @override + List get props => []; +} \ No newline at end of file diff --git a/lib/bloc/sos/sos_state.dart b/lib/bloc/sos/sos_state.dart index ee325b9..44ca7a8 100644 --- a/lib/bloc/sos/sos_state.dart +++ b/lib/bloc/sos/sos_state.dart @@ -21,7 +21,30 @@ class ErrorState extends SosState{ @override List get props => [message]; } +class RequestSosState extends SosState{ + final LocationData locationData; + final String mobile1; + final String? mobile2; + + const RequestSosState({required this.locationData, required this.mobile1, required this.mobile2}); + @override + List get props => [locationData,mobile1]; +} class LoadingState extends SosState{ - + final String message; + const LoadingState({required this.message}); +} +class SOSReceivedState extends SosState { + final String sessionToken; + const SOSReceivedState({required this.sessionToken}); + @override + List get props => [sessionToken]; +} + +class SoSAcknowledgementConfirm extends SosState{ + final SessionData sessionData; + const SoSAcknowledgementConfirm({required this.sessionData}); + @override + List get props => [sessionData]; } diff --git a/lib/bloc/user/user_bloc.dart b/lib/bloc/user/user_bloc.dart index 5c9c705..3bec84b 100644 --- a/lib/bloc/user/user_bloc.dart +++ b/lib/bloc/user/user_bloc.dart @@ -22,26 +22,31 @@ class UserBloc extends Bloc { String? _apkVersion; bool save = false; UserBloc() : super(UserInitial()) { - // this event is called when opening the app to check if - // there is new app version + //// this event is called when opening the app to check if + //// there is new app version on((event, emit) async { try { emit(SplashScreen()); - VersionInfo versionInfo = await AuthService.instance.getVersionInfo(); - _versionInfo = versionInfo; + if (_versionInfo == null) { + VersionInfo versionInfo = await AuthService.instance.getVersionInfo(); + _versionInfo = versionInfo; + } String apkVersion = await getAppVersion(); _apkVersion = apkVersion; final String? saved = CREDENTIALS?.get('saved'); final String? username = CREDENTIALS?.get('username'); final String? password = CREDENTIALS?.get('password'); debugPrint(username); - debugPrint(password); + debugPrint(password); if (saved != null) { save = true; add(UserLogin(username: username, password: password)); } else { emit(VersionLoaded( - versionInfo: _versionInfo, apkVersion: _apkVersion)); + versionInfo: _versionInfo, + apkVersion: _apkVersion, + username: null, + password: null)); } } catch (e) { emit(UserError( @@ -49,11 +54,15 @@ class UserBloc extends Bloc { )); } }); -//Loading the current version of the app +////Loading the current version of the app on((event, emit) { - emit(VersionLoaded(versionInfo: _versionInfo, apkVersion: _apkVersion)); + emit(VersionLoaded( + versionInfo: _versionInfo, + apkVersion: _apkVersion, + username: event.username, + password: event.password)); }); - +////userlogin on((event, emit) async { try { Map response = await AuthService.instance @@ -61,10 +70,16 @@ class UserBloc extends Bloc { if (response['status'] == true) { UserData userData = UserData.fromJson(response['data']); emit(UserLoggedIn( - userData: userData, success: true, message: response['message'],savedCredentials: save)); + userData: userData, + success: true, + message: response['message'], + savedCredentials: save)); } else { emit(UserLoggedIn( - userData: null, success: false, message: response['message'],savedCredentials: save)); + userData: null, + success: false, + message: response['message'], + savedCredentials: save)); } } on TimeoutException catch (_) { emit(InternetTimeout(message: timeoutError)); @@ -77,7 +92,7 @@ class UserBloc extends Bloc { UserData? userData = await AuthService.instance .qrLogin(uuid: event.uuid, password: event.password); _userData = userData; - emit(UserLoggedIn(userData: _userData,savedCredentials: save)); + emit(UserLoggedIn(userData: _userData, savedCredentials: save)); } on TimeoutException catch (_) { emit(InternetTimeout(message: timeoutError)); } on SocketException catch (_) { @@ -87,7 +102,7 @@ class UserBloc extends Bloc { } }); on((event, emit) { - emit(UserLoggedIn(userData: _userData,savedCredentials: save)); + emit(UserLoggedIn(userData: _userData, savedCredentials: save)); }); on((event, emit) async { ScanResult result = await QRCodeBarCodeScanner.instance.scanner(); diff --git a/lib/bloc/user/user_event.dart b/lib/bloc/user/user_event.dart index cf529fb..a0cbd10 100644 --- a/lib/bloc/user/user_event.dart +++ b/lib/bloc/user/user_event.dart @@ -28,7 +28,11 @@ class GetUuid extends UserEvent { } -class LoadVersion extends UserEvent {} +class LoadVersion extends UserEvent { + final String? username; + final String? password; + LoadVersion({this.password,this.username}); +} class UuidLogin extends UserEvent { final String? uuid; diff --git a/lib/bloc/user/user_state.dart b/lib/bloc/user/user_state.dart index de6688f..ab21f7f 100644 --- a/lib/bloc/user/user_state.dart +++ b/lib/bloc/user/user_state.dart @@ -42,7 +42,9 @@ class UserLoggedIn extends UserState{ class VersionLoaded extends UserState { final VersionInfo? versionInfo; final String? apkVersion; - VersionLoaded({this.versionInfo,this.apkVersion}); + final String? username; + final String? password; + VersionLoaded({this.versionInfo,this.apkVersion, this.password,this.username}); @override List get props => [versionInfo!]; } diff --git a/lib/main.dart b/lib/main.dart index da7df5a..20b079b 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -20,7 +20,7 @@ Future main() async { var appDirectory = await path_provider.getApplicationDocumentsDirectory(); await Hive.initFlutter(appDirectory.path); CREDENTIALS = await Hive.openBox('credentials'); - SOSCONTACTS = await Hive.openBox('soscontacts'); + SOS = await Hive.openBox('soscontacts'); SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]) .then((_) { runApp(MyApp()); diff --git a/lib/model/sos/session.dart b/lib/model/sos/session.dart new file mode 100644 index 0000000..2fa398a --- /dev/null +++ b/lib/model/sos/session.dart @@ -0,0 +1,69 @@ +// To parse this JSON data, do +// +// final sessionData = sessionDataFromJson(jsonString); + +import 'dart:convert'; + +SessionData sessionDataFromJson(String str) => SessionData.fromJson(json.decode(str)); + +String sessionDataToJson(SessionData data) => json.encode(data.toJson()); + +class SessionData { + SessionData({ + this.id, + this.receivedDate, + this.responseDate, + this.statusid, + this.acknowledgeDate, + this.acknowledgedBy, + this.remarks, + this.respondentid, + this.respondentMessage, + this.pushedbuttonDate, + this.sosLevel, + this.sessionToken, + }); + + final int? id; + final String? receivedDate; + final String? responseDate; + final int? statusid; + final String? acknowledgeDate; + final String? acknowledgedBy; + final String? remarks; + final int? respondentid; + final String? respondentMessage; + final String? pushedbuttonDate; + final String? sosLevel; + final String? sessionToken; + + factory SessionData.fromJson(Map json) => SessionData( + id: json["id"] = json["id"], + receivedDate: json["received_date"], + responseDate: json["response_date"], + statusid: json["statusid"], + acknowledgeDate: json["acknowledge_date"], + acknowledgedBy: json["acknowledged_by"], + remarks: json["remarks"], + respondentid: json["respondentid"], + respondentMessage: json["respondent_message"], + pushedbuttonDate: json["pushedbutton_date"], + sosLevel: json["sos_level"], + sessionToken: json["session_token"], + ); + + Map toJson() => { + "id": id, + "received_date": receivedDate, + "response_date": responseDate, + "statusid": statusid, + "acknowledge_date": acknowledgeDate, + "acknowledged_by": acknowledgedBy, + "remarks": remarks, + "respondentid": respondentid, + "respondent_message": respondentMessage, + "pushedbutton_date": pushedbuttonDate , + "sos_level": sosLevel, + "session_token": sessionToken, + }; +} diff --git a/lib/screens/sos/add_mobile.dart b/lib/screens/sos/add_mobile.dart index 8abe496..51aa7e9 100644 --- a/lib/screens/sos/add_mobile.dart +++ b/lib/screens/sos/add_mobile.dart @@ -82,7 +82,7 @@ class AddMobile extends StatelessWidget { validator: mobileNumberValidator, maxLength: 11, decoration: - normalTextFieldStyle(mobile1, "+63")), + normalTextFieldStyle(mobile1, "09000000000")), const SizedBox( height: 12, ), @@ -90,7 +90,7 @@ class AddMobile extends StatelessWidget { name: 'mobile2', maxLength: 11, decoration: - normalTextFieldStyle(mobile2, "+63")), + normalTextFieldStyle(mobile2, "0900000000000")), SizedBox( height: isMobile() diff --git a/lib/screens/sos/components/acknnowledge.dart b/lib/screens/sos/components/acknnowledge.dart new file mode 100644 index 0000000..8a771ba --- /dev/null +++ b/lib/screens/sos/components/acknnowledge.dart @@ -0,0 +1,123 @@ +import 'package:animate_do/animate_do.dart'; +import 'package:auto_size_text/auto_size_text.dart'; +import 'package:flutter/material.dart'; +import 'package:fluttericon/iconic_icons.dart'; +import 'package:unit2/theme-data.dart/btn-style.dart'; + +import '../../../model/sos/session.dart'; +import '../../../theme-data.dart/colors.dart'; +import '../../../utils/global.dart'; + +class SosAcknowledged extends StatelessWidget { + final Function() onpressed; + final SessionData sessionData; + const SosAcknowledged({super.key, required this.onpressed, required this.sessionData}); + + @override + Widget build(BuildContext context) { + + return Container( + padding: const EdgeInsets.symmetric(vertical: 40, horizontal: 35), + height: screenHeight, + child: Stack( + children: [ + Positioned( + bottom: 0, + child: SizedBox( + width: screenWidth, + height: screenHeight / 2, + child: Opacity( + opacity: .2, + child: Image.asset( + "assets/pngs/emergency.png", + fit: BoxFit.cover, + ), + ), + )), + Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + const SizedBox( + height: 18, + ), + SlideInDown( + child: AutoSizeText( + "SOS Acknowledged!", + maxLines: 2, + textAlign: TextAlign.center, + style: Theme.of(context).textTheme.displayMedium!.copyWith( + fontSize: 40, + color: success2, + fontWeight: FontWeight.w600), + ), + ), + const SizedBox( + height: 5, + ), + SlideInDown( + child: const Icon( + Iconic.ok_circle, + color: success2, + size: 120, + ), + ), + const SizedBox( + height: 22, + ), + SlideInUp( + child: Container( + decoration: const BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.all(Radius.circular(15))), + child: Column( + children: [ + + + ListTile( + title: AutoSizeText( + sessionData.acknowledgedBy!.toUpperCase(), + maxLines: 2, + style: Theme.of(context).textTheme.headline4!.copyWith( + fontSize: 22, + fontWeight: FontWeight.bold, + color: third), + ), + subtitle: Text( + "Acknowledge by", + style: Theme.of(context).textTheme.labelLarge, + ), + ), + Container( + padding: const EdgeInsets.all(15), + child: Text( + "NOTE: Please ensure that the mobile numbers you provided are still active, and look for an area with stable network. The response team will contact your mobile number.", + textAlign: TextAlign.justify, + style: Theme.of(context).textTheme.caption!.copyWith( + fontSize: 14, + color: Colors.black87, + ), + ), + ), + ], + ), + ), + ), + Expanded(child: Container()), + SlideInUp( + child: SizedBox( + height: 50, + width: double.infinity, + child: ElevatedButton( + style: + mainBtnStyle(second, Colors.transparent, Colors.white54), + onPressed: onpressed, + child: const Text("DONE!")), + ), + ) + ], + ), + ], + ), + ); + } +} \ No newline at end of file diff --git a/lib/screens/sos/components/add_mobile.dart b/lib/screens/sos/components/add_mobile.dart index 80b16b4..3025e92 100644 --- a/lib/screens/sos/components/add_mobile.dart +++ b/lib/screens/sos/components/add_mobile.dart @@ -1,6 +1,8 @@ import 'package:flutter/material.dart'; +import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_form_builder/flutter_form_builder.dart'; import 'package:flutter_svg/svg.dart'; +import 'package:unit2/bloc/sos/sos_bloc.dart'; import 'package:unit2/screens/sos/components/request_sos.dart'; import 'package:unit2/theme-data.dart/text-styles.dart'; import 'package:unit2/utils/screen_info.dart'; @@ -17,25 +19,16 @@ class AddMobile extends StatelessWidget { final _formKey = GlobalKey(); @override Widget build(BuildContext context) { - return WillPopScope( - onWillPop: () async { - return true; - }, - child: SafeArea( - child: Scaffold( - appBar: AppBar( - title: const Text("Add contact info"), - centerTitle: true, - backgroundColor: primary, - elevation: 0, - ), - resizeToAvoidBottomInset: true, - body: SingleChildScrollView( + + return BlocBuilder( + builder: (context, state) { + if(state is UserLocationLoaded){ + return SingleChildScrollView( child: SizedBox( - height: screenHeight * .90, + height: screenHeight * .95, child: Stack( children: [ - Wave(height: blockSizeVertical * 8), + Positioned( bottom: 0, right: 0, @@ -77,22 +70,25 @@ class AddMobile extends StatelessWidget { key: _formKey, child: Column( children: [ - // Mobile number 1 + //// Mobile number 1 FormBuilderTextField( + autovalidateMode: AutovalidateMode.onUserInteraction, name: 'mobile1', validator: mobileNumberValidator, maxLength: 11, decoration: - normalTextFieldStyle(mobile1, "+63")), + normalTextFieldStyle(mobile1, "09")), const SizedBox( height: 12, ), + //// Mobile number 2 FormBuilderTextField( + autovalidateMode: AutovalidateMode.onUserInteraction, name: 'mobile2', - maxLength: 11, + decoration: - normalTextFieldStyle(mobile2, "+63")), - + normalTextFieldStyle(mobile2, "09")), + SizedBox( height: isMobile() ? blockSizeVertical * 3 @@ -101,22 +97,20 @@ class AddMobile extends StatelessWidget { width: double.infinity, height: screenHeight * .06, child: ElevatedButton( - style: secondaryBtnStyle(second, + style: secondaryBtnStyle(primary, Colors.transparent, Colors.white54), child: const Text( submit, style: TextStyle(color: Colors.white), - ), + ),//// on pressed onPressed: () { if (_formKey.currentState! .saveAndValidate()) { - - Navigator.push(context, MaterialPageRoute(builder: (BuildContext context){ - return RequestSOS(); - })); - + String mobile1 = _formKey.currentState!.value['mobile1']; + String? mobile2 = _formKey.currentState!.value['mobile2']; + context.read().add(SubmitMobile(mobile1: mobile1, mobile2: mobile2)); } - + // } }, ), @@ -128,9 +122,11 @@ class AddMobile extends StatelessWidget { ], ), ), - ), - ), - ), + ); + } + return Container(); + + }, ); } } diff --git a/lib/screens/sos/components/edit_mobile.dart b/lib/screens/sos/components/edit_mobile.dart new file mode 100644 index 0000000..8270841 --- /dev/null +++ b/lib/screens/sos/components/edit_mobile.dart @@ -0,0 +1,86 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_form_builder/flutter_form_builder.dart'; +import 'package:unit2/main.dart'; +import 'package:unit2/theme-data.dart/btn-style.dart'; +import 'package:unit2/utils/validators.dart'; + +import '../../../theme-data.dart/colors.dart'; +import '../../../theme-data.dart/form-style.dart'; + +class EditMobile extends StatelessWidget { + final String initialValue; + final String title; + final String label; + final Function() onpressed; + final Function(String?) onchanged; + const EditMobile( + {super.key, + required this.initialValue, + required this.label, + required this.title, + required this.onpressed, + required this.onchanged}); + + + @override + + Widget build(BuildContext context) { + final formKey = GlobalKey(); + return Container( + height: 300, + padding: const EdgeInsets.all(26), + child: Stack( + children: [ + Positioned( + top: -16, + right: -10, + child: IconButton( + onPressed: () { + Navigator.of(context, rootNavigator: true).pop(); + }, + icon: const Icon( + Icons.close, + size: 18, + )), + ), + FormBuilder( + key: formKey, + child: Column( + children: [ + Text(title), + const SizedBox( + height: 25, + ), + FormBuilderTextField( + autovalidateMode: AutovalidateMode.onUserInteraction, + name: "mobile", + onChanged: onchanged, + validator: mobileNumberValidator, + keyboardType: TextInputType.number, + initialValue: initialValue, + decoration: normalTextFieldStyle(label, label), + maxLength: 11, + ), + const SizedBox( + height: 25, + ), + SizedBox( + height: 50, + width: 200, + child: ElevatedButton( + onPressed: (){ + if(formKey.currentState!.saveAndValidate()){ + onpressed(); + } + }, + style: mainBtnStyle(success2, Colors.transparent, success), + child: const Text("Submit")), + ) + ], + ), + ), + ], + ), + ); + } +} diff --git a/lib/screens/sos/components/request_sos.dart b/lib/screens/sos/components/request_sos.dart index f6e6f6d..990de3e 100644 --- a/lib/screens/sos/components/request_sos.dart +++ b/lib/screens/sos/components/request_sos.dart @@ -1,18 +1,23 @@ import 'package:flutter/material.dart'; import 'package:flutter/src/widgets/container.dart'; import 'package:flutter/src/widgets/framework.dart'; +import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_form_builder/flutter_form_builder.dart'; import 'package:flutter_svg/svg.dart'; import 'package:fluttericon/font_awesome5_icons.dart'; import 'package:fluttericon/typicons_icons.dart'; import 'package:form_builder_validators/form_builder_validators.dart'; +import 'package:intl/intl.dart'; +import 'package:unit2/bloc/sos/sos_bloc.dart'; import 'package:unit2/screens/sos/components/mobile.dart'; import 'package:unit2/theme-data.dart/colors.dart'; import 'package:unit2/utils/text_container.dart'; +import '../../../sevices/sos/sos_service.dart'; import '../../../theme-data.dart/btn-style.dart'; import '../../../theme-data.dart/form-style.dart'; import '../../../utils/global.dart'; +import 'edit_mobile.dart'; class RequestSOS extends StatefulWidget { const RequestSOS({super.key}); @@ -22,88 +27,142 @@ class RequestSOS extends StatefulWidget { } class _RequestSOSState extends State { + final formKey = GlobalKey(); + DateFormat dteFormat = DateFormat("y-M-d H:m:s"); + + String? mobileNumber1; + String? mobileNumber2; @override Widget build(BuildContext context) { - return SafeArea( - child: Scaffold( - appBar: AppBar( - centerTitle: true, - title: const Text(sOSTitle), - backgroundColor: second, - ), - body: SingleChildScrollView( - child: Container( - height: screenHeight * .84, - padding: const EdgeInsets.symmetric(horizontal: 24, vertical: 10), - child: Column( - children: [ - SizedBox( - height: blockSizeVertical * 2, - ), - SvgPicture.asset( - 'assets/svgs/request_sos.svg', - height: blockSizeVertical * 22, - allowDrawingOutsideViewBox: true, - ), - Mobile( - title: "09661548775", - subtitle: mobile1, - onPressed: () {}), - const Divider(), - Mobile( - title: "09661548775", - subtitle: mobile2, - onPressed: () {}), - const Divider(), - ListTile( - leading: const Icon( - Typicons.location, - color: second, - ), - title: Text("Latitude/Longitude"), - subtitle: Text( - currentLocation, - style: Theme.of(context).textTheme.caption, - ), - ), - FormBuilderTextField( - name: "message", - validator: FormBuilderValidators.compose([ - FormBuilderValidators.required( - errorText: messageRequired) - ]), - autovalidateMode: AutovalidateMode.onUserInteraction, - maxLines: 5, - decoration: normalTextFieldStyle("", sosMessage), - ), - const Expanded( - child: SizedBox(), - ), - SizedBox( - width: double.infinity, - height: screenHeight * .06, - child: ElevatedButton( - style: secondaryBtnStyle( - second, Colors.transparent, Colors.white54), - child: const Text( - submit, - style: TextStyle(color: Colors.white), + return BlocBuilder( + builder: (context, state) { + if(state is RequestSosState){ + return SingleChildScrollView( + child: Container( + height: screenHeight * .82, + padding: const EdgeInsets.symmetric(horizontal: 24, vertical: 10), + child: FormBuilder( + key: formKey, + child: Column( + children: [ + SizedBox( + height: blockSizeVertical * 2, ), - onPressed: () { - // if (_formKey.currentState.validate()) { - // _formKey.currentState.save(); - // BlocProvider.of(context) - // .add(UserWebLogin( - // password: password, - // username: username)); - // } - }, - ), + SvgPicture.asset( + 'assets/svgs/request_sos.svg', + height: blockSizeVertical * 22, + allowDrawingOutsideViewBox: true, + ), + Mobile( + title: state.mobile1, + subtitle: mobile1, + //// edit modal + onPressed: () { + showBottomSheet( + context: context, + builder: (context) { + return EditMobile( + title: "Edit Mobile 1", + label: "Mobile number 1", + initialValue: state.mobile1, + onchanged: (value) { + mobileNumber1 = value; + }, + onpressed: () { + Navigator.of(context, + rootNavigator: true) + .pop(); + BlocProvider.of(context) + .add(SubmitMobile( + mobile1: mobileNumber1!, + mobile2: state.mobile2)); + }, + ); + }); + },), + const Divider(), + ////edit mobile 2 + Mobile( + title: state.mobile2??"N/A", + subtitle: mobile2, + onPressed: () { + showBottomSheet( + context: context, + builder: (context) { + return EditMobile( + title: "Edit Mobile 2", + label: "Mobile number 2", + initialValue: state.mobile2??'', + onchanged: (value) { + mobileNumber2 = value; + }, + onpressed: () { + Navigator.of(context, + rootNavigator: true) + .pop(); + BlocProvider.of(context) + .add(SubmitMobile( + mobile1: state.mobile1, + mobile2: mobileNumber2)); + }, + ); + }); + }), + const Divider(), + ListTile( + leading: const Icon( + Typicons.location, + color: second, + ), + title: Text("${state.locationData.latitude}/${state.locationData.longitude}"), + subtitle: Text( + currentLocation, + style: Theme.of(context).textTheme.bodySmall, + ), + ), + FormBuilderTextField( + name: "message", + validator: FormBuilderValidators.compose([ + FormBuilderValidators.required(errorText: messageRequired) + ]), + autovalidateMode: AutovalidateMode.onUserInteraction, + maxLines: 5, + decoration: normalTextFieldStyle("", sosMessage), + ), + const Expanded( + child: SizedBox(), + ), + SizedBox( + width: double.infinity, + height: screenHeight * .06, + child: ElevatedButton( + style: secondaryBtnStyle( + primary, Colors.transparent, Colors.white54), + child: const Text( + submit, + style: TextStyle(color: Colors.white), + ), + //// on pressed + onPressed: () async{ + if( formKey.currentState!.saveAndValidate()){ + String message = formKey.currentState!.value['message']; + DateTime today = DateTime.now(); + String requestedDate = + dteFormat.format(today); + BlocProvider.of(context).add(SendSOS(msg: message, requestDate: requestedDate)); + + } + + }, + ), + ), + ], ), - ], - )), - ), - ), + )), + ); + } + return Container(); + }, ); } } diff --git a/lib/screens/sos/components/sos_received.dart b/lib/screens/sos/components/sos_received.dart index 3d9192d..a8bad17 100644 --- a/lib/screens/sos/components/sos_received.dart +++ b/lib/screens/sos/components/sos_received.dart @@ -9,125 +9,125 @@ import '../../../theme-data.dart/colors.dart'; import '../../../utils/global.dart'; class SOSreceived extends StatelessWidget { - final Function onpressed; - const SOSreceived({required Key key, required this.onpressed}) - : super(key: key); + final Function() onpressed; + const SOSreceived({super.key, required this.onpressed}); @override Widget build(BuildContext context) { - return Container( - padding: const EdgeInsets.symmetric(vertical: 40, horizontal: 35), - height: screenHeight, - child: Stack( - children: [ - Positioned( - bottom: 0, - child: SizedBox( - width: screenWidth, - height: screenHeight / 2, - child: Opacity( - opacity: .2, - child: Image.asset( - "assets/emergency.png", - fit: BoxFit.cover, + + return Container( + padding: const EdgeInsets.symmetric(vertical: 40, horizontal: 35), + height: screenHeight, + child: Stack( + children: [ + Positioned( + bottom: 0, + child: SizedBox( + width: screenWidth, + height: screenHeight / 2, + child: Opacity( + opacity: .2, + child: Image.asset( + "assets/pngs/emergency.png", + fit: BoxFit.cover, + ), ), + )), + Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + SizedBox( + height: blockSizeVertical * 6, ), - )), - Column( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - SizedBox( - height: blockSizeVertical * 6, - ), - Bounce( - from: 20, - infinite: true, - delay: const Duration(milliseconds: 800), - child: Stack( - alignment: AlignmentDirectional.topCenter, - children: [ - Container( - margin: const EdgeInsets.only(top: 20), - child: CircleAvatar( - radius: blockSizeVertical * 8, - backgroundColor: second, - child: Container( - margin: const EdgeInsets.only(top: 25), - child: SvgPicture.asset( - 'assets/sos.svg', - height: blockSizeHorizontal * 17, - color: Colors.white, - allowDrawingOutsideViewBox: true, - alignment: Alignment.bottomCenter, + Bounce( + from: 20, + infinite: true, + delay: const Duration(milliseconds: 800), + child: Stack( + alignment: AlignmentDirectional.topCenter, + children: [ + Container( + margin: const EdgeInsets.only(top: 20), + child: CircleAvatar( + radius: blockSizeVertical * 8, + backgroundColor: second, + child: Container( + margin: const EdgeInsets.only(top: 25), + child: SvgPicture.asset( + 'assets/svgs/sos.svg', + height: blockSizeHorizontal * 17, + color: Colors.white, + allowDrawingOutsideViewBox: true, + alignment: Alignment.bottomCenter, + ), ), ), ), - ), - Positioned( - top: blockSizeVertical * 3, - child: const SpinKitPulse( - color: primary, - size: 120, + Positioned( + top: blockSizeVertical * 3, + child: const SpinKitPulse( + color: primary, + size: 120, + ), ), - ), - ], + ], + ), ), - ), - const SizedBox(height: 16), - SlideInUp( - from: 50, - child: AutoSizeText( - sosReceived, - textAlign: TextAlign.center, - style: Theme.of(context).textTheme.displayMedium!.copyWith( - fontSize: 40, - color: third, - fontWeight: FontWeight.w500, - ), - ), - ), - const SizedBox( - height: 8, - ), - SlideInUp( - from: 50, - child: Container( - padding: const EdgeInsets.all(15), - decoration: const BoxDecoration( - color: Colors.white, - borderRadius: BorderRadius.all(Radius.circular(15))), + const SizedBox(height: 16), + SlideInUp( + from: 50, child: AutoSizeText( - sOSReceivedMessage, + sosReceived, textAlign: TextAlign.center, - style: Theme.of(context).textTheme.caption!.copyWith( - fontSize: 16, - color: Colors.black87, + style: Theme.of(context).textTheme.displayMedium!.copyWith( + fontSize: 40, + color: third, + fontWeight: FontWeight.w500, ), ), ), - ), - const SizedBox( - height: 40, - ), - Expanded(child: Container()), - SlideInUp( - child: SizedBox( - height: 50, - width: 200, - child: TextButton( - style: mainBtnStyle(second, Colors.transparent, second), - onPressed: () {}, - child: const Text(cancelRequest, - style: TextStyle( - color: Colors.white, - )), + const SizedBox( + height: 8, + ), + SlideInUp( + from: 50, + child: Container( + padding: const EdgeInsets.all(15), + decoration: const BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.all(Radius.circular(15))), + child: AutoSizeText( + sOSReceivedMessage, + textAlign: TextAlign.center, + style: Theme.of(context).textTheme.caption!.copyWith( + fontSize: 16, + color: Colors.black87, + ), + ), ), ), - ) - ], - ), - ], - ), + const SizedBox( + height: 40, + ), + Expanded(child: Container()), + SlideInUp( + child: SizedBox( + height: 50, + width: 200, + child: TextButton( + style: mainBtnStyle(second, Colors.transparent, second), + onPressed: onpressed, + child: const Text(cancelRequest, + style: TextStyle( + color: Colors.white, + )), + ), + ), + ) + ], + ), + ], + ), ); } } diff --git a/lib/screens/sos/index.dart b/lib/screens/sos/index.dart index 6fe5db8..f3bdb90 100644 --- a/lib/screens/sos/index.dart +++ b/lib/screens/sos/index.dart @@ -1,12 +1,25 @@ +import 'dart:async'; + +import 'package:animate_do/animate_do.dart'; import 'package:flutter/material.dart'; import 'package:flutter/src/widgets/framework.dart'; import 'package:flutter/src/widgets/placeholder.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_progress_hud/flutter_progress_hud.dart'; import 'package:flutter_spinkit/flutter_spinkit.dart'; +import 'package:flutter_svg/svg.dart'; import 'package:unit2/bloc/sos/sos_bloc.dart'; +import 'package:unit2/screens/sos/components/acknnowledge.dart'; import 'package:unit2/screens/sos/components/add_mobile.dart'; +import 'package:unit2/screens/sos/components/request_sos.dart'; import 'package:unit2/theme-data.dart/colors.dart'; +import 'package:unit2/utils/text_container.dart'; +import 'package:unit2/widgets/error_state.dart'; + +import '../../utils/global.dart'; +import '../../widgets/wave.dart'; +import 'components/request_sos.dart'; +import 'components/sos_received.dart'; class SosScreen extends StatefulWidget { const SosScreen({super.key}); @@ -16,38 +29,97 @@ class SosScreen extends StatefulWidget { } class _SosScreenState extends State { + Timer? timer; + + @override + void dispose() { + timer != null ? timer!.cancel() : timer = null; + super.dispose(); + } + + @override + void initState() { + timer = Timer(Duration.zero, () {}); + super.initState(); + } + @override Widget build(BuildContext context) { return SafeArea( child: Scaffold( + appBar: AppBar(backgroundColor: primary), resizeToAvoidBottomInset: true, - appBar: AppBar( - title: const Text("SOS"), - centerTitle: true, - backgroundColor: primary, - ), body: ProgressHUD( - padding: const EdgeInsets.all(24), + padding: const EdgeInsets.all(32), backgroundColor: Colors.black87, indicatorWidget: const SpinKitFadingCircle(color: Colors.white), - child: BlocConsumer( + child: BlocConsumer( listener: (context, state) { - //// user location loaded - if (state is UserLocationLoaded) { - Navigator.push(context, - MaterialPageRoute(builder: (BuildContext context) { - return AddMobile(); - })); + if (state is ErrorState) { + final progress = ProgressHUD.of(context); + progress!.dismiss(); } ////loading state if (state is LoadingState) { final progress = ProgressHUD.of(context); - progress!.showWithText("Please wait..."); + progress!.showWithText(state.message); + } + //// dismiss progress + if (state is ErrorState || state is SOSReceivedState || state is RequestSosState || state is UserLocationLoaded || state is SoSAcknowledgementConfirm) { + final progress = ProgressHUD.of(context); + progress!.dismiss(); } }, builder: (context, state) { - if (state is ErrorState) {} - return Container(); + //// error state + if (state is ErrorState) { + timer!.cancel(); + return SomethingWentWrong( + message: state.message, + onpressed: () { + context.read().add(LoadUserLocation()); + }); + } //// user location loaded + if (state is UserLocationLoaded) { + return AddMobile(); + + //// request sos state + } + if (state is RequestSosState) { + return const RequestSOS(); + } + //// received sos state + if (state is SOSReceivedState) { + timer = Timer.periodic(const Duration(seconds: 10), (timer) { + context.read().add( + CheckAcknowledgement(sessionToken: state.sessionToken)); + }); + return SOSreceived(onpressed: () async { + timer!.cancel(); + await SOS!.delete('session_token'); + Navigator.pop(context); + }); + } + ///// sos acknowledge and confirm + if (state is SoSAcknowledgementConfirm) { + return SosAcknowledged( + onpressed: () async { + timer!.cancel(); + await SOS!.delete('session_token'); + Navigator.pop(context); + }, + sessionData: state.sessionData); + } + return SizedBox( + height: screenHeight, + child: Stack(children: [ + + Positioned( + bottom: 0, + right: 0, + child: WaveReverse(height: blockSizeVertical * 8)) + ]), + ); }, ), ), diff --git a/lib/screens/sos/request_sos.dart b/lib/screens/sos/request_sos.dart deleted file mode 100644 index a98b654..0000000 --- a/lib/screens/sos/request_sos.dart +++ /dev/null @@ -1,109 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:flutter/src/widgets/container.dart'; -import 'package:flutter/src/widgets/framework.dart'; -import 'package:flutter_form_builder/flutter_form_builder.dart'; -import 'package:flutter_svg/svg.dart'; -import 'package:fluttericon/font_awesome5_icons.dart'; -import 'package:fluttericon/typicons_icons.dart'; -import 'package:form_builder_validators/form_builder_validators.dart'; -import 'package:unit2/screens/sos/components/mobile.dart'; -import 'package:unit2/theme-data.dart/colors.dart'; -import 'package:unit2/utils/text_container.dart'; - -import '../../theme-data.dart/btn-style.dart'; -import '../../theme-data.dart/form-style.dart'; -import '../../utils/global.dart'; - -class RequestSOS extends StatefulWidget { - const RequestSOS({super.key}); - - @override - State createState() => _RequestSOSState(); -} - -class _RequestSOSState extends State { - @override - Widget build(BuildContext context) { - return SafeArea( - child: Scaffold( - appBar: AppBar( - centerTitle: true, - title: const Text(sOSTitle), - backgroundColor: second, - ), - body: SingleChildScrollView( - child: Container( - height: screenHeight * .89, - padding: const EdgeInsets.symmetric(horizontal: 24, vertical: 10), - child: Column( - children: [ - SizedBox( - height: blockSizeVertical * 2, - ), - SvgPicture.asset( - 'assets/svgs/request_sos.svg', - height: blockSizeVertical * 22, - allowDrawingOutsideViewBox: true, - ), - Mobile( - title: "09661548775", - subtitle: mobile1, - onPressed: () {}), - const Divider(), - Mobile( - title: "09661548775", - subtitle: mobile2, - onPressed: () {}), - const Divider(), - ListTile( - leading: const Icon( - Typicons.location, - color: second, - ), - title: Text("Latitude/Longitude"), - subtitle: Text( - currentLocation, - style: Theme.of(context).textTheme.caption, - ), - ), - FormBuilderTextField( - name: "message", - validator: FormBuilderValidators.compose([ - FormBuilderValidators.required( - errorText: messageRequired) - ]), - autovalidateMode: AutovalidateMode.onUserInteraction, - maxLines: 5, - decoration: normalTextFieldStyle("", sosMessage), - ), - const Expanded( - child: SizedBox(), - ), - SizedBox( - width: double.infinity, - height: screenHeight * .06, - child: ElevatedButton( - style: secondaryBtnStyle( - second, Colors.transparent, Colors.white54), - child: const Text( - submit, - style: TextStyle(color: Colors.white), - ), - onPressed: () { - // if (_formKey.currentState.validate()) { - // _formKey.currentState.save(); - // BlocProvider.of(context) - // .add(UserWebLogin( - // password: password, - // username: username)); - // } - }, - ), - ), - ], - )), - ), - ), - ); - } -} diff --git a/lib/screens/sos/sos_received.dart b/lib/screens/sos/sos_received.dart deleted file mode 100644 index c89b81c..0000000 --- a/lib/screens/sos/sos_received.dart +++ /dev/null @@ -1,133 +0,0 @@ -import 'package:animate_do/animate_do.dart'; -import 'package:auto_size_text/auto_size_text.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter_spinkit/flutter_spinkit.dart'; -import 'package:flutter_svg/svg.dart'; -import 'package:unit2/theme-data.dart/btn-style.dart'; -import 'package:unit2/utils/text_container.dart'; -import '../../theme-data.dart/colors.dart'; -import '../../utils/global.dart'; - -class SOSreceived extends StatelessWidget { - final Function onpressed; - const SOSreceived({required Key key, required this.onpressed}) - : super(key: key); - - @override - Widget build(BuildContext context) { - return Container( - padding: const EdgeInsets.symmetric(vertical: 40, horizontal: 35), - height: screenHeight, - child: Stack( - children: [ - Positioned( - bottom: 0, - child: SizedBox( - width: screenWidth, - height: screenHeight / 2, - child: Opacity( - opacity: .2, - child: Image.asset( - "assets/emergency.png", - fit: BoxFit.cover, - ), - ), - )), - Column( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - SizedBox( - height: blockSizeVertical * 6, - ), - Bounce( - from: 20, - infinite: true, - delay: const Duration(milliseconds: 800), - child: Stack( - alignment: AlignmentDirectional.topCenter, - children: [ - Container( - margin: const EdgeInsets.only(top: 20), - child: CircleAvatar( - radius: blockSizeVertical * 8, - backgroundColor: second, - child: Container( - margin: const EdgeInsets.only(top: 25), - child: SvgPicture.asset( - 'assets/sos.svg', - height: blockSizeHorizontal * 17, - color: Colors.white, - allowDrawingOutsideViewBox: true, - alignment: Alignment.bottomCenter, - ), - ), - ), - ), - Positioned( - top: blockSizeVertical * 3, - child: const SpinKitPulse( - color: primary, - size: 120, - ), - ), - ], - ), - ), - const SizedBox(height: 16), - SlideInUp( - from: 50, - child: AutoSizeText( - sosReceived, - textAlign: TextAlign.center, - style: Theme.of(context).textTheme.displayMedium!.copyWith( - fontSize: 40, - color: third, - fontWeight: FontWeight.w500, - ), - ), - ), - const SizedBox( - height: 8, - ), - SlideInUp( - from: 50, - child: Container( - padding: const EdgeInsets.all(15), - decoration: const BoxDecoration( - color: Colors.white, - borderRadius: BorderRadius.all(Radius.circular(15))), - child: AutoSizeText( - sOSReceivedMessage, - textAlign: TextAlign.center, - style: Theme.of(context).textTheme.caption!.copyWith( - fontSize: 16, - color: Colors.black87, - ), - ), - ), - ), - const SizedBox( - height: 40, - ), - Expanded(child: Container()), - SlideInUp( - child: SizedBox( - height: 50, - width: 200, - child: TextButton( - style: mainBtnStyle(second, Colors.transparent, second), - onPressed: () {}, - child: const Text(cancelRequest, - style: TextStyle( - color: Colors.white, - )), - ), - ), - ) - ], - ), - ], - ), - ); - } -} diff --git a/lib/screens/unit2/basic-info/basic-info.dart b/lib/screens/unit2/basic-info/basic-info.dart index 6459508..c16824a 100644 --- a/lib/screens/unit2/basic-info/basic-info.dart +++ b/lib/screens/unit2/basic-info/basic-info.dart @@ -5,6 +5,7 @@ import 'package:flutter_svg/svg.dart'; import 'package:fluttericon/font_awesome5_icons.dart'; import 'package:intl/intl.dart'; import 'package:qr_flutter/qr_flutter.dart'; +import 'package:signature/signature.dart'; import 'package:unit2/model/login_data/user_info/user_data.dart'; import 'package:unit2/theme-data.dart/btn-style.dart'; import 'package:unit2/utils/global.dart'; @@ -12,6 +13,7 @@ import 'package:unit2/utils/text_container.dart'; import '../../../bloc/user/user_bloc.dart'; import '../../../theme-data.dart/colors.dart'; import '../../../widgets/splash_screen.dart'; +import '../signature/signature_pad.dart'; import './components/cover-image.dart'; class BasicInfo extends StatelessWidget { @@ -159,6 +161,9 @@ class BuildInformation extends StatelessWidget { style: mainBtnStyle(third, Colors.transparent, Colors.white54), onPressed: () { + Navigator.push(context, MaterialPageRoute(builder: (BuildContext context){ + return SignaturePad(); + })); }, icon: const Icon( FontAwesome5.signature, diff --git a/lib/screens/unit2/homepage.dart/components/menu-screen.dart b/lib/screens/unit2/homepage.dart/components/menu-screen.dart index 312d2d0..65b3621 100644 --- a/lib/screens/unit2/homepage.dart/components/menu-screen.dart +++ b/lib/screens/unit2/homepage.dart/components/menu-screen.dart @@ -56,7 +56,7 @@ class _MenuScreenState extends State { getTile(FontAwesome5.user_circle, "Profile", '/profile', context, widget.userData!), const Divider(), - getTile(FontAwesome5.life_ring, "Request SOS", '/request-sos', + getTile(FontAwesome5.life_ring, "Request SOS", '/sos', context, widget.userData!), const Divider(), Expanded( diff --git a/lib/screens/unit2/homepage.dart/components/menu.dart b/lib/screens/unit2/homepage.dart/components/menu.dart index 5ddc5cf..10103f7 100644 --- a/lib/screens/unit2/homepage.dart/components/menu.dart +++ b/lib/screens/unit2/homepage.dart/components/menu.dart @@ -30,6 +30,8 @@ Widget getTile( Navigator.pushNamed(context, route,arguments: profileArguments); }if(title.toLowerCase() == 'basic info'){ Navigator.pushNamed(context, '/basic-info'); + }if(title.toLowerCase() == 'request sos'){ + Navigator.pushNamed(context, '/sos'); } }, diff --git a/lib/screens/unit2/login/login.dart b/lib/screens/unit2/login/login.dart index 4c4ef35..bba33c3 100644 --- a/lib/screens/unit2/login/login.dart +++ b/lib/screens/unit2/login/login.dart @@ -78,7 +78,7 @@ class _UniT2LoginState extends State { final progress = ProgressHUD.of(context); progress!.dismiss(); errorAlert(context, "Error Login", state.message, () { - context.read().add(LoadVersion()); + context.read().add(LoadVersion(username: username,password: password)); Navigator.of(context).pop(); }); } @@ -138,9 +138,10 @@ class _UniT2LoginState extends State { SizedBox( height: blockSizeVertical * 3, ), - // USERNAME + //// USERNAME FormBuilderTextField( name: 'username', + initialValue: state.username, validator: FormBuilderValidators.required( errorText: usernameRequired), @@ -153,9 +154,10 @@ class _UniT2LoginState extends State { SizedBox( height: blockSizeVertical * 1.5, ), - // PASSWORD + //// PASSWORD FormBuilderTextField( name: 'password', + initialValue: state.password, validator: FormBuilderValidators.required( errorText: passwordRequired), onChanged: (value) { @@ -222,7 +224,7 @@ class _UniT2LoginState extends State { ), SizedBox( height: blockSizeVertical * 7, - // Login Button + //// Login Button child: SizedBox( width: MediaQuery.of(context).size.width, @@ -296,12 +298,12 @@ class _UniT2LoginState extends State { ), )), SizedBox( - height: blockSizeVertical * 1, + height: blockSizeVertical * 2, ), const LoginViaQr( text: emergencyReponseLabel), SizedBox( - height: blockSizeVertical * 1, + height: blockSizeVertical * 2, ), // REQUEST SOS SizedBox( diff --git a/lib/sevices/sos/sos_service.dart b/lib/sevices/sos/sos_service.dart index 40eb9c8..0cb0697 100644 --- a/lib/sevices/sos/sos_service.dart +++ b/lib/sevices/sos/sos_service.dart @@ -1,5 +1,14 @@ +import 'dart:convert'; +import 'dart:io'; + +import 'package:flutter/services.dart'; import 'package:intl/intl.dart'; import 'package:location/location.dart'; +import 'package:platform_device_id/platform_device_id.dart'; +import 'package:http/http.dart' as http; +import 'package:unit2/utils/request.dart'; +import '../../model/sos/session.dart'; +import '../../utils/urls.dart'; class SosService{ static final SosService _instance = SosService(); @@ -10,7 +19,8 @@ class SosService{ LocationData? locationData; bool serviceEnabled = false; PermissionStatus permissionGranted; - serviceEnabled = await location.serviceEnabled(); + + serviceEnabled = await location.serviceEnabled(); if (!serviceEnabled) { serviceEnabled = await location.requestService(); if (!serviceEnabled) { @@ -24,8 +34,92 @@ class SosService{ return null; } } + try{ LocationData newLocationData = await location.getLocation(); locationData = newLocationData; return locationData; + }catch(e){ + throw e.toString(); + } + } + Future initPlatformState() async { + String? deviceId; + try { + deviceId = await PlatformDeviceId.getDeviceId; + } on PlatformException { + deviceId = 'Failed to get deviceId.'; + } + return deviceId!; + } + + +Future requestSos({required LocationData location, required String mobile1, + String? mobile2, required String msg, required String requestedDate}) async { + var body; + String deviceId = await initPlatformState(); + String sessionToken = + deviceId.toString() + todayFormat.format(DateTime.now()); + String path = Url.instance.sosRequest(); + SessionData? sessionData; + + if(mobile2 != null){ + body = { + "mobile_id": deviceId.toString(), + "mobile_gps": + "${location.latitude.toString()},${location.longitude.toString()}", + "mobile1": mobile1, + "mobile2": mobile2, + "respondent_message": msg, + "session_token": sessionToken, + "pushedbutton_date": requestedDate + }; + }else{ + body = { + "mobile_id": deviceId.toString(), + "mobile_gps": + "${location.latitude.toString()},${location.longitude.toString()}", + "mobile1": mobile1, + "respondent_message": msg, + "session_token": sessionToken, + "pushedbutton_date": requestedDate + }; + } + + Map headers = { + 'Content-Type': 'application/json; charset=UTF-8', + }; + + try { + http.Response response = await Request.instance.postRequest(path: path,body: body,headers: headers); + if (response.statusCode == 201) { + var body = jsonDecode(response.body); + SessionData newSessionData = SessionData.fromJson(body['data']); + sessionData = newSessionData; + } + + }on Error catch (e) { + throw (e.toString()); + } + return sessionData!; + } + + + Future checkAcknowledgement(String sessionToken) async { + String path = Url.instance.sosRequest(); + SessionData? sessionData; + try { + http.Response response = await Request.instance.getRequest(path: path,param:{"session_token":sessionToken} ); + if (response.statusCode == 200) { + var body = jsonDecode(response.body); + SessionData newSessionData = SessionData.fromJson(body['data'][0]); + + sessionData = newSessionData; + + } + } on Error + catch (e) { + throw (e.toString()); + } + return sessionData!; } } \ No newline at end of file diff --git a/lib/utils/app_router.dart b/lib/utils/app_router.dart index 3bd227a..9db2326 100644 --- a/lib/utils/app_router.dart +++ b/lib/utils/app_router.dart @@ -47,7 +47,7 @@ class AppRouter { case '/sos': return MaterialPageRoute(builder: (BuildContext context) { return BlocProvider( - create: (context) => SosBloc()..add(LoadUserLocation()), + create: (_) => SosBloc()..add(LoadUserLocation()), child: const SosScreen(), ); }); diff --git a/lib/utils/global.dart b/lib/utils/global.dart index de816db..65b6eaf 100644 --- a/lib/utils/global.dart +++ b/lib/utils/global.dart @@ -12,4 +12,4 @@ double safeBlockVertical = 0; //// hive boxes Box? CREDENTIALS; -Box? SOSCONTACTS; \ No newline at end of file +Box? SOS; \ No newline at end of file diff --git a/lib/utils/urls.dart b/lib/utils/urls.dart index 8849535..0d165e9 100644 --- a/lib/utils/urls.dart +++ b/lib/utils/urls.dart @@ -3,10 +3,10 @@ class Url { static Url get instance => _instance; String host() { - // return '192.168.10.221:3003'; - return 'agusandelnorte.gov.ph'; + // return '192.168.10.183:3000'; + // return 'agusandelnorte.gov.ph'; // return "192.168.10.219:3000"; - // return "devweb.agusandelnorte.gov.ph"; + return "devweb.agusandelnorte.gov.ph"; // return 'devapi.agusandelnorte.gov.ph:3004'; } @@ -22,6 +22,11 @@ class Url { return "/api/system_app/apk_version/latest"; } + ////SOS paths + String sosRequest(){ + return "/api/sos_app/sos_request/"; + } + ////ELIGIBILITIES PATHS String eligibilities(){ return "/api/jobnet_app/eligibilities/"; diff --git a/linux/flutter/generated_plugin_registrant.cc b/linux/flutter/generated_plugin_registrant.cc index a124bbe..4b37fe9 100644 --- a/linux/flutter/generated_plugin_registrant.cc +++ b/linux/flutter/generated_plugin_registrant.cc @@ -7,9 +7,13 @@ #include "generated_plugin_registrant.h" #include +#include void fl_register_plugins(FlPluginRegistry* registry) { g_autoptr(FlPluginRegistrar) modal_progress_hud_nsn_registrar = fl_plugin_registry_get_registrar_for_plugin(registry, "ModalProgressHudNsnPlugin"); modal_progress_hud_nsn_plugin_register_with_registrar(modal_progress_hud_nsn_registrar); + g_autoptr(FlPluginRegistrar) platform_device_id_linux_registrar = + fl_plugin_registry_get_registrar_for_plugin(registry, "PlatformDeviceIdLinuxPlugin"); + platform_device_id_linux_plugin_register_with_registrar(platform_device_id_linux_registrar); } diff --git a/linux/flutter/generated_plugins.cmake b/linux/flutter/generated_plugins.cmake index f6f1987..f64d1cc 100644 --- a/linux/flutter/generated_plugins.cmake +++ b/linux/flutter/generated_plugins.cmake @@ -4,6 +4,7 @@ list(APPEND FLUTTER_PLUGIN_LIST modal_progress_hud_nsn + platform_device_id_linux ) list(APPEND FLUTTER_FFI_PLUGIN_LIST diff --git a/macos/Flutter/GeneratedPluginRegistrant.swift b/macos/Flutter/GeneratedPluginRegistrant.swift index 4567379..7a1cdf6 100644 --- a/macos/Flutter/GeneratedPluginRegistrant.swift +++ b/macos/Flutter/GeneratedPluginRegistrant.swift @@ -5,16 +5,22 @@ import FlutterMacOS import Foundation +import location import modal_progress_hud_nsn import package_info_plus import path_provider_foundation +import platform_device_id +import platform_device_id_macos import shared_preferences_foundation import sqflite func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { + LocationPlugin.register(with: registry.registrar(forPlugin: "LocationPlugin")) ModalProgressHudNsnPlugin.register(with: registry.registrar(forPlugin: "ModalProgressHudNsnPlugin")) FLTPackageInfoPlusPlugin.register(with: registry.registrar(forPlugin: "FLTPackageInfoPlusPlugin")) PathProviderPlugin.register(with: registry.registrar(forPlugin: "PathProviderPlugin")) + PlatformDeviceIdMacosPlugin.register(with: registry.registrar(forPlugin: "PlatformDeviceIdMacosPlugin")) + PlatformDeviceIdMacosPlugin.register(with: registry.registrar(forPlugin: "PlatformDeviceIdMacosPlugin")) SharedPreferencesPlugin.register(with: registry.registrar(forPlugin: "SharedPreferencesPlugin")) SqflitePlugin.register(with: registry.registrar(forPlugin: "SqflitePlugin")) } diff --git a/macos/Podfile.lock b/macos/Podfile.lock index 42d76d9..d473e2f 100644 --- a/macos/Podfile.lock +++ b/macos/Podfile.lock @@ -3,6 +3,8 @@ PODS: - FMDB (2.7.5): - FMDB/standard (= 2.7.5) - FMDB/standard (2.7.5) + - location (0.0.1): + - FlutterMacOS - modal_progress_hud_nsn (0.0.1): - FlutterMacOS - package_info_plus (0.0.1): @@ -10,6 +12,10 @@ PODS: - path_provider_foundation (0.0.1): - Flutter - FlutterMacOS + - platform_device_id (0.0.1): + - FlutterMacOS + - platform_device_id_macos (0.0.1): + - FlutterMacOS - shared_preferences_foundation (0.0.1): - Flutter - FlutterMacOS @@ -19,9 +25,12 @@ PODS: DEPENDENCIES: - FlutterMacOS (from `Flutter/ephemeral`) + - location (from `Flutter/ephemeral/.symlinks/plugins/location/macos`) - modal_progress_hud_nsn (from `Flutter/ephemeral/.symlinks/plugins/modal_progress_hud_nsn/macos`) - package_info_plus (from `Flutter/ephemeral/.symlinks/plugins/package_info_plus/macos`) - path_provider_foundation (from `Flutter/ephemeral/.symlinks/plugins/path_provider_foundation/macos`) + - platform_device_id (from `Flutter/ephemeral/.symlinks/plugins/platform_device_id/macos`) + - platform_device_id_macos (from `Flutter/ephemeral/.symlinks/plugins/platform_device_id_macos/macos`) - shared_preferences_foundation (from `Flutter/ephemeral/.symlinks/plugins/shared_preferences_foundation/macos`) - sqflite (from `Flutter/ephemeral/.symlinks/plugins/sqflite/macos`) @@ -32,12 +41,18 @@ SPEC REPOS: EXTERNAL SOURCES: FlutterMacOS: :path: Flutter/ephemeral + location: + :path: Flutter/ephemeral/.symlinks/plugins/location/macos modal_progress_hud_nsn: :path: Flutter/ephemeral/.symlinks/plugins/modal_progress_hud_nsn/macos package_info_plus: :path: Flutter/ephemeral/.symlinks/plugins/package_info_plus/macos path_provider_foundation: :path: Flutter/ephemeral/.symlinks/plugins/path_provider_foundation/macos + platform_device_id: + :path: Flutter/ephemeral/.symlinks/plugins/platform_device_id/macos + platform_device_id_macos: + :path: Flutter/ephemeral/.symlinks/plugins/platform_device_id_macos/macos shared_preferences_foundation: :path: Flutter/ephemeral/.symlinks/plugins/shared_preferences_foundation/macos sqflite: @@ -46,10 +61,13 @@ EXTERNAL SOURCES: SPEC CHECKSUMS: FlutterMacOS: 8f6f14fa908a6fb3fba0cd85dbd81ec4b251fb24 FMDB: 2ce00b547f966261cd18927a3ddb07cb6f3db82a + location: 7cdb0665bd6577d382b0a343acdadbcb7f964775 modal_progress_hud_nsn: 8099d46c2cf9de7af8fe0a3f8f5d2aa32cf956c3 package_info_plus: 02d7a575e80f194102bef286361c6c326e4c29ce - path_provider_foundation: 37748e03f12783f9de2cb2c4eadfaa25fe6d4852 - shared_preferences_foundation: 297b3ebca31b34ec92be11acd7fb0ba932c822ca + path_provider_foundation: c68054786f1b4f3343858c1e1d0caaded73f0be9 + platform_device_id: 3e414428f45df149bbbfb623e2c0ca27c545b763 + platform_device_id_macos: f763bb55f088be804d61b96eb4710b8ab6598e94 + shared_preferences_foundation: 986fc17f3d3251412d18b0265f9c64113a8c2472 sqflite: a5789cceda41d54d23f31d6de539d65bb14100ea PODFILE CHECKSUM: 353c8bcc5d5b0994e508d035b5431cfe18c1dea7 diff --git a/pubspec.lock b/pubspec.lock index 3bb1c30..3e337c3 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -297,6 +297,22 @@ packages: url: "https://pub.dev" source: hosted version: "1.1.0" + device_info: + dependency: transitive + description: + name: device_info + sha256: f4a8156cb7b7480d969cb734907d18b333c8f0bc0b1ad0b342cdcecf30d62c48 + url: "https://pub.dev" + source: hosted + version: "2.0.3" + device_info_platform_interface: + dependency: transitive + description: + name: device_info_platform_interface + sha256: b148e0bf9640145d09a4f8dea96614076f889e7f7f8b5ecab1c7e5c2dbc73c1b + url: "https://pub.dev" + source: hosted + version: "2.0.1" device_preview: dependency: "direct main" description: @@ -925,6 +941,54 @@ packages: url: "https://pub.dev" source: hosted version: "3.1.0" + platform_device_id: + dependency: "direct main" + description: + name: platform_device_id + sha256: "7a12ec84de4a823bb10eba2f0e1ad29e2365abba17790489a0d78029904f562e" + url: "https://pub.dev" + source: hosted + version: "1.0.1" + platform_device_id_linux: + dependency: transitive + description: + name: platform_device_id_linux + sha256: "994b1608593e527a629af2d5aeb241c60d308d3434bc78b0f6fcb3c1a02dff43" + url: "https://pub.dev" + source: hosted + version: "1.0.0" + platform_device_id_macos: + dependency: transitive + description: + name: platform_device_id_macos + sha256: "968db2a504c611294b12a031b3734432d6df10553a0d3ae3b33ed21abfdbaba0" + url: "https://pub.dev" + source: hosted + version: "1.0.0" + platform_device_id_platform_interface: + dependency: transitive + description: + name: platform_device_id_platform_interface + sha256: c61607594252aaddacf3e4c4371ab08f2ef85ff427817fa6e48a169429610c46 + url: "https://pub.dev" + source: hosted + version: "1.0.0" + platform_device_id_web: + dependency: transitive + description: + name: platform_device_id_web + sha256: "58e124594e1165db7f108395a780b1d1e1cd403021978e5228cf4289fbe736d5" + url: "https://pub.dev" + source: hosted + version: "1.0.0" + platform_device_id_windows: + dependency: transitive + description: + name: platform_device_id_windows + sha256: dbf8dcf03ad8555320ebae2403a3081b79f137f37661874e161fe2de0a84eeeb + url: "https://pub.dev" + source: hosted + version: "1.0.0" plugin_platform_interface: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index 5cd2be5..ab0bffe 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -76,6 +76,8 @@ dependencies: hive: ^2.0.5 hive_flutter: ^1.1.0 mask_text_input_formatter: ^2.4.0 + location: ^4.3.0 + platform_device_id: ^1.0.1 dev_dependencies: flutter_test: diff --git a/windows/flutter/generated_plugin_registrant.cc b/windows/flutter/generated_plugin_registrant.cc index c1aa7e0..458cc68 100644 --- a/windows/flutter/generated_plugin_registrant.cc +++ b/windows/flutter/generated_plugin_registrant.cc @@ -8,10 +8,13 @@ #include #include +#include void RegisterPlugins(flutter::PluginRegistry* registry) { ModalProgressHudNsnPluginRegisterWithRegistrar( registry->GetRegistrarForPlugin("ModalProgressHudNsnPlugin")); PermissionHandlerWindowsPluginRegisterWithRegistrar( registry->GetRegistrarForPlugin("PermissionHandlerWindowsPlugin")); + PlatformDeviceIdWindowsPluginRegisterWithRegistrar( + registry->GetRegistrarForPlugin("PlatformDeviceIdWindowsPlugin")); } diff --git a/windows/flutter/generated_plugins.cmake b/windows/flutter/generated_plugins.cmake index 2446653..4c970ab 100644 --- a/windows/flutter/generated_plugins.cmake +++ b/windows/flutter/generated_plugins.cmake @@ -5,6 +5,7 @@ list(APPEND FLUTTER_PLUGIN_LIST modal_progress_hud_nsn permission_handler_windows + platform_device_id_windows ) list(APPEND FLUTTER_FFI_PLUGIN_LIST