Merge branch 'development_haroon' into 'master'

Development haroon

See merge request Cloud_Solution/mohemm-flutter-app!172
merge-requests/173/head
haroon amjad 3 years ago
commit 46ff239f53

@ -5,6 +5,7 @@ import 'package:mohem_flutter_app/api/api_client.dart';
import 'package:mohem_flutter_app/app_state/app_state.dart'; import 'package:mohem_flutter_app/app_state/app_state.dart';
import 'package:mohem_flutter_app/classes/consts.dart'; import 'package:mohem_flutter_app/classes/consts.dart';
import 'package:mohem_flutter_app/classes/date_uitl.dart'; import 'package:mohem_flutter_app/classes/date_uitl.dart';
import 'package:mohem_flutter_app/classes/utils.dart';
import 'package:mohem_flutter_app/models/dashboard/get_accrual_balances_list_model.dart'; import 'package:mohem_flutter_app/models/dashboard/get_accrual_balances_list_model.dart';
import 'package:mohem_flutter_app/models/dashboard/get_attendance_tracking_list_model.dart'; import 'package:mohem_flutter_app/models/dashboard/get_attendance_tracking_list_model.dart';
import 'package:mohem_flutter_app/models/dashboard/itg_forms_model.dart'; import 'package:mohem_flutter_app/models/dashboard/itg_forms_model.dart';
@ -12,6 +13,7 @@ import 'package:mohem_flutter_app/models/dashboard/list_menu.dart';
import 'package:mohem_flutter_app/models/generic_response_model.dart'; import 'package:mohem_flutter_app/models/generic_response_model.dart';
import 'package:mohem_flutter_app/models/itg/itg_main_response.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/itg/itg_response_model.dart';
import 'package:platform_device_id/platform_device_id.dart';
import 'package:uuid/uuid.dart'; import 'package:uuid/uuid.dart';
class DashboardApiClient { class DashboardApiClient {
@ -107,11 +109,11 @@ class DashboardApiClient {
//Mark Attendance //Mark Attendance
Future<GenericResponseModel?> markAttendance({String lat = "0", String? long = "0", required int pointType, String nfcValue = "", bool isGpsRequired = false, String QRValue = ""}) async { Future<GenericResponseModel?> markAttendance({String lat = "0", String? long = "0", required int pointType, String nfcValue = "", bool isGpsRequired = false, String QRValue = ""}) async {
String url = "${ApiConsts.swpRest}AuthenticateAndSwipeUserSupportNFC"; String url = "${ApiConsts.swpRest}AuthenticateAndSwipeUserSupportNFC";
var uuid = Uuid(); // var uuid = Uuid();
// Generate a v4 (random) id // Generate a v4 (random) id
Map<String, dynamic> postParams = { Map<String, dynamic> postParams = {
"UID": uuid.v4(), //Mobile Id "UID": await PlatformDeviceId.getDeviceId, //uuid.v4(), //Mobile Id
"Latitude": lat, "Latitude": lat,
"Longitude": long, "Longitude": long,
"QRValue": QRValue, "QRValue": QRValue,
@ -204,6 +206,7 @@ Future setAdvertisementViewed(String masterID, int advertisementId) async {
Map<String, dynamic> postParams = { Map<String, dynamic> postParams = {
"ItgNotificationMasterId": masterID, "ItgNotificationMasterId": masterID,
"EmployeeNumber": AppState().memberInformationList!.eMPLOYEENUMBER.toString(),
"ItgAdvertisement": {"advertisementId": advertisementId, "acknowledgment": true} //Mobile Id "ItgAdvertisement": {"advertisementId": advertisementId, "acknowledgment": true} //Mobile Id
}; };
postParams.addAll(AppState().postParamsJson); postParams.addAll(AppState().postParamsJson);

@ -7,6 +7,7 @@ import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart'; import 'package:flutter_svg/flutter_svg.dart';
import 'package:fluttertoast/fluttertoast.dart'; import 'package:fluttertoast/fluttertoast.dart';
import 'package:google_api_availability/google_api_availability.dart';
import 'package:mohem_flutter_app/app_state/app_state.dart'; import 'package:mohem_flutter_app/app_state/app_state.dart';
import 'package:mohem_flutter_app/classes/colors.dart'; import 'package:mohem_flutter_app/classes/colors.dart';
import 'package:mohem_flutter_app/config/routes.dart'; import 'package:mohem_flutter_app/config/routes.dart';
@ -393,7 +394,6 @@ class Utils {
} }
//HUAWEI DECISION MAKING //HUAWEI DECISION MAKING
static Future<bool> isAppInstalledFromHuawei() async { static Future<bool> isAppInstalledFromHuawei() async {
Source installationSource = await StoreChecker.getSource; Source installationSource = await StoreChecker.getSource;
@ -408,12 +408,12 @@ class Utils {
return installationSource.toString().split(".")[1]; return installationSource.toString().split(".")[1];
} }
// static Future<bool> isGoogleServicesAvailable() async { static Future<bool> isGoogleServicesAvailable() async {
// GooglePlayServicesAvailability availability = await GoogleApiAvailability.instance.checkGooglePlayServicesAvailability(); GooglePlayServicesAvailability availability = await GoogleApiAvailability.instance.checkGooglePlayServicesAvailability();
// String status = availability.toString().split('.').last; String status = availability.toString().split('.').last;
// if (status == "success") { if (status == "success") {
// return true; return true;
// } }
// return false; return false;
// } }
} }

@ -103,10 +103,13 @@ class _LoginScreenState extends State<LoginScreen> {
if (Platform.isAndroid) { if (Platform.isAndroid) {
try { try {
// await hmsApiAvailability.isHMSAvailable().then((value) async { // await hmsApiAvailability.isHMSAvailable().then((value) async {
if (await Utils.isAppInstalledFromHuawei() ) { // if (await Utils.isAppInstalledFromHuawei() && !(await Utils.isGoogleServicesAvailable())) {
if (!(await Utils.isGoogleServicesAvailable())) {
print("HUAWEI APPPP GALLERYYYY!!!!");
AppState().setIsHuawei = true; AppState().setIsHuawei = true;
AppNotifications().initHuaweiPush(checkLoginInfo); AppNotifications().initHuaweiPush(checkLoginInfo);
} else { } else {
print("GOOGLE PLAY STOREEEE!!!!");
await Firebase.initializeApp(); await Firebase.initializeApp();
_firebaseMessaging = FirebaseMessaging.instance; _firebaseMessaging = FirebaseMessaging.instance;
firebaseToken = await _firebaseMessaging.getToken(); firebaseToken = await _firebaseMessaging.getToken();

@ -192,42 +192,53 @@ class _MarkAttendanceWidgetState extends State<MarkAttendanceWidget> {
} }
void getHuaweiCurrentLocation(String attendanceType) { void getHuaweiCurrentLocation(String attendanceType) {
FusedLocationProviderClient locationService = FusedLocationProviderClient(); try {
LocationRequest locationRequest = LocationRequest(); FusedLocationProviderClient locationService = FusedLocationProviderClient();
locationRequest.priority = LocationRequest.PRIORITY_BALANCED_POWER_ACCURACY; LocationRequest locationRequest = LocationRequest();
locationRequest.interval = 1000; locationRequest.priority = LocationRequest.PRIORITY_BALANCED_POWER_ACCURACY;
List<LocationRequest> locationRequestList = <LocationRequest>[locationRequest]; locationRequest.interval = 1000;
LocationSettingsRequest locationSettingsRequest = LocationSettingsRequest(requests: locationRequestList); List<LocationRequest> locationRequestList = <LocationRequest>[locationRequest];
LocationSettingsRequest locationSettingsRequest = LocationSettingsRequest(requests: locationRequestList);
locationService.checkLocationSettings(locationSettingsRequest).then((settings) async { locationService.checkLocationSettings(locationSettingsRequest).then((settings) async {
await locationService.getLastLocation().then((value) { await locationService.getLastLocation().then((value) {
if (value.latitude == null || value.longitude == null) { if (value.latitude == null || value.longitude == null) {
showDialog( showDialog(
context: context, context: context,
builder: (BuildContext cxt) => ConfirmDialog( builder: (BuildContext cxt) => ConfirmDialog(
message: "Unable to get your location, Please check your location settings & try again.", message: "Unable to get your location, Please check your location settings & try again.",
onTap: () { onTap: () {
Navigator.pop(context); Navigator.pop(context);
}, },
), ),
); );
} else { } else {
if (attendanceType == "QR") { if (attendanceType == "QR") {
performQrCodeAttendance(widget.model, lat: value.latitude.toString() ?? "", lng: value.longitude.toString() ?? ""); performQrCodeAttendance(widget.model, lat: value.latitude.toString() ?? "", lng: value.longitude.toString() ?? "");
} }
if (attendanceType == "WIFI") { if (attendanceType == "WIFI") {
performWifiAttendance(widget.model, lat: value.latitude.toString() ?? "", lng: value.longitude.toString() ?? ""); performWifiAttendance(widget.model, lat: value.latitude.toString() ?? "", lng: value.longitude.toString() ?? "");
} }
if (attendanceType == "NFC") { if (attendanceType == "NFC") {
performNfcAttendance(widget.model, lat: value.latitude.toString() ?? "", lng: value.longitude.toString() ?? ""); performNfcAttendance(widget.model, lat: value.latitude.toString() ?? "", lng: value.longitude.toString() ?? "");
}
} }
}).catchError((error) {
print("HUAWEI LOCATION getLastLocation ERROR!!!!!");
print(error);
});
}).catchError((error) {
print("HUAWEI LOCATION checkLocationSettings ERROR!!!!!");
print(error);
if (error.code == "LOCATION_SETTINGS_NOT_AVAILABLE") {
// Location service not enabled.
} }
}); });
}).catchError((error) { } catch(error) {
if (error.code == "LOCATION_SETTINGS_NOT_AVAILABLE") { print("HUAWEI LOCATION ERROR!!!!!");
// Location service not enabled. print(error);
} }
});
} }
Future<void> performNfcAttendance(DashboardProviderModel model, {String lat = "0", String lng = "0"}) async { Future<void> performNfcAttendance(DashboardProviderModel model, {String lat = "0", String lng = "0"}) async {

@ -16,7 +16,7 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev
# In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion. # In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion.
# Read more about iOS versioning at # Read more about iOS versioning at
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
version: 3.2.8+300028 version: 3.2.91+300030
environment: environment:
sdk: ">=2.16.0 <3.0.0" sdk: ">=2.16.0 <3.0.0"
@ -54,7 +54,10 @@ dependencies:
logger: ^1.1.0 logger: ^1.1.0
flutter_countdown_timer: ^4.1.0 flutter_countdown_timer: ^4.1.0
nfc_manager: ^3.2.0 nfc_manager: ^3.2.0
uuid: ^3.0.6 # uuid: ^3.0.6
# device_info_plus: ^4.0.0
# android_id: ^0.1.3+1
platform_device_id: ^1.0.1
image_picker: ^0.8.5+3 image_picker: ^0.8.5+3
file_picker: ^4.6.1 file_picker: ^4.6.1
geolocator: ^9.0.2 geolocator: ^9.0.2
@ -112,7 +115,7 @@ dependencies:
#Huawei Specified #Huawei Specified
store_checker: ^1.1.0 store_checker: ^1.1.0
# google_api_availability: ^3.0.1 google_api_availability: ^3.0.1
dependency_overrides: dependency_overrides:

Loading…
Cancel
Save