diff --git a/lib/analytics/google-analytics.dart b/lib/analytics/google-analytics.dart index 614a339c..2a70d4e4 100644 --- a/lib/analytics/google-analytics.dart +++ b/lib/analytics/google-analytics.dart @@ -16,6 +16,8 @@ import 'package:firebase_analytics/firebase_analytics.dart'; import 'package:firebase_analytics/observer.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; +import 'package:geocoding/geocoding.dart'; +import 'package:geolocator/geolocator.dart'; import 'flows/app_nav.dart'; import 'flows/hmg_services.dart'; @@ -59,14 +61,19 @@ class GAnalytics { static String APPOINTMENT_DETAIL_FLOW_TYPE; static String PAYMENT_TYPE; - setUser(AuthenticatedUser user){ - if(user != null){ - _analytics.setUserProperty(name: 'user_country', value: user.iSOCountryID); + setUser(AuthenticatedUser user) async{ + try{ _analytics.setUserProperty(name: 'user_language', value: user.preferredLanguage == '1' ? 'arabic' : 'english'); _analytics.setUserProperty(name: 'userid', value: Utils.generateMd5Hash(user.emailAddress)); - _analytics.setUserProperty(name: 'login_status', value: 'loggedin'); - }else{ - _analytics.setUserProperty(name: 'login_status', value: 'guest'); + _analytics.setUserProperty(name: 'login_status', value: user == null ? 'guest' : 'loggedin'); + final location = await Geolocator.getCurrentPosition(); + if(location != null && !location.isMocked){ + final places = await placemarkFromCoordinates(location.latitude, location.longitude, localeIdentifier: 'en_US'); + final countryCode = places.first.isoCountryCode; + _analytics.setUserProperty(name: 'user_country', value: countryCode); + } + }catch(e){ + } }