Analytics for login registration

merge-requests/602/head
Zohaib Iqbal Kambrani 4 years ago
parent f50bfda330
commit 1523fd5ade

@ -3,6 +3,8 @@ import 'package:flutter/cupertino.dart';
import '../google-analytics.dart'; import '../google-analytics.dart';
class LoginRegistration{ class LoginRegistration{
static int loginMethod;
static int verificationMethod;
final GALogger logger; final GALogger logger;
LoginRegistration(this.logger); LoginRegistration(this.logger);
@ -66,20 +68,29 @@ class LoginRegistration{
} }
// R011:login_verify_otp | R009:registration_verification_option // R011:login_verify_otp | R009:registration_verification_option
verify_otp_method({@required int method, bool forRegistration = false}){ verify_otp_method({bool forRegistration = false}){
var verification_method = '';
if(method == 1) verification_method = 'sms';
if(method == 2) verification_method = 'fingerprint';
if(method == 3) verification_method = 'face id';
if(method == 4) verification_method = 'whatsapp';
if(forRegistration == false) if(forRegistration == false)
logger("login_verify_otp", parameters: { logger("login_verify_otp", parameters: {
'login_method' : verification_method 'login_method' : _getLoginMethod(),
'verification_method' : _getVerificationMethod(),
}); });
else else
logger("registration_verification_option", parameters: { logger("registration_verification_option", parameters: {
'verification_method' : verification_method 'verification_method' : _getVerificationMethod()
});
}
// R011:login_verify_otp | R009:registration_verification_option
login_verfication({bool forRegistration = false}){
if(forRegistration == false)
logger("login_verfication", parameters: {
'login_method' : _getLoginMethod(),
'verification_method' : _getVerificationMethod(),
});
else
logger("login_varification_register", parameters: {
'login_method' : _getLoginMethod(),
'verification_method' : _getVerificationMethod(),
}); });
} }
@ -94,14 +105,9 @@ class LoginRegistration{
} }
// R012.1, R014.1 // R012.1, R014.1
login_successful({@required int method}){ login_successful(){
var verification_method = '';
if(method == 1) verification_method = 'sms';
if(method == 2) verification_method = 'fingerprint';
if(method == 3) verification_method = 'face id';
if(method == 4) verification_method = 'whatsapp';
logger('login_successful', parameters: { logger('login_successful', parameters: {
'login_method' : verification_method 'login_method' : _getVerificationMethod()
}); });
} }
@ -112,9 +118,9 @@ class LoginRegistration{
}); });
} }
login_fail({@required String method, error}){ login_fail({error}){
logger('login_unsuccessful', parameters: { logger('login_unsuccessful', parameters: {
'login_method' : method, 'login_method' : loginMethod,
'error': error 'error': error
}); });
} }
@ -128,4 +134,19 @@ class LoginRegistration{
login_with_other_account(){ login_with_other_account(){
logger('login_with_other_account'); logger('login_with_other_account');
} }
_getLoginMethod(){
if(loginMethod == 1) return 'national id';
if(loginMethod == 2) return 'file number';
return 'otp';
}
String _getVerificationMethod(){
if(verificationMethod == 1) return 'sms';
if(verificationMethod == 2) return 'fingerprint';
if(verificationMethod == 3) return 'face id';
if(verificationMethod == 4) return 'whatsapp';
return "unknown";
}
} }

@ -1,3 +1,4 @@
import 'package:diplomaticquarterapp/analytics/flows/login_registration.dart';
import 'package:diplomaticquarterapp/config/config.dart'; import 'package:diplomaticquarterapp/config/config.dart';
import 'package:diplomaticquarterapp/config/shared_pref_kay.dart'; import 'package:diplomaticquarterapp/config/shared_pref_kay.dart';
import 'package:diplomaticquarterapp/config/size_config.dart'; import 'package:diplomaticquarterapp/config/size_config.dart';
@ -308,6 +309,9 @@ class _ConfirmLogin extends State<ConfirmLogin> {
this.selectedOption = fingrePrintBefore != null ? fingrePrintBefore : type; this.selectedOption = fingrePrintBefore != null ? fingrePrintBefore : type;
login_method = type; login_method = type;
LoginRegistration.verificationMethod = type;
projectViewModel.analytics.loginRegistration.login_verfication(forRegistration: widget.fromRegistration);
switch (type) { switch (type) {
case 1: case 1:
this.loginWithSMS(type); this.loginWithSMS(type);
@ -579,11 +583,12 @@ class _ConfirmLogin extends State<ConfirmLogin> {
else else
{ {
// Navigator.of(context).pop(), // Navigator.of(context).pop(),
projectViewModel.analytics.errorTracking.log('otp_verification_at_confirm_login', error: result),
GifLoaderDialogUtils.hideDialog(context), GifLoaderDialogUtils.hideDialog(context),
Future.delayed(Duration(seconds: 1), () { Future.delayed(Duration(seconds: 1), () {
AppToast.showErrorToast(message: result); AppToast.showErrorToast(message: result);
}), }),
projectViewModel.analytics.loginRegistration.login_fail(error: result),
projectViewModel.analytics.errorTracking.log('otp_verification_at_confirm_login', error: result),
} }
}) })
.catchError((err) { .catchError((err) {
@ -609,7 +614,7 @@ class _ConfirmLogin extends State<ConfirmLogin> {
} }
else else
{ {
projectViewModel.analytics.loginRegistration.login_successful(method: login_method), projectViewModel.analytics.loginRegistration.login_successful(),
sharedPref.remove(FAMILY_FILE), sharedPref.remove(FAMILY_FILE),
result.list.isFamily = false, result.list.isFamily = false,
userData = result.list, userData = result.list,
@ -629,10 +634,12 @@ class _ConfirmLogin extends State<ConfirmLogin> {
// Navigator.of(context).pop(), // Navigator.of(context).pop(),
GifLoaderDialogUtils.hideDialog(context), GifLoaderDialogUtils.hideDialog(context),
Future.delayed(Duration(seconds: 1), () { Future.delayed(Duration(seconds: 1), () {
projectViewModel.analytics.errorTracking.log('otp_verification_at_confirm_login', error: result);
AppToast.showErrorToast(message: result); AppToast.showErrorToast(message: result);
startSMSService(tempType); startSMSService(tempType);
}), }),
projectViewModel.analytics.loginRegistration.login_fail(error: result),
projectViewModel.analytics.errorTracking.log('otp_verification_at_confirm_login', error: result)
} }
}) })
.catchError((err) { .catchError((err) {
@ -728,8 +735,8 @@ class _ConfirmLogin extends State<ConfirmLogin> {
isMoreOption = true; isMoreOption = true;
}); });
} else { } else {
projectViewModel.analytics.loginRegistration.verify_otp_method(method: _flag, forRegistration: widget.fromRegistration);
authenticateUser(_flag, isActive: _loginIndex); authenticateUser(_flag, isActive: _loginIndex);
projectViewModel.analytics.loginRegistration.verify_otp_method(forRegistration: widget.fromRegistration);
} }
}, },
child: Container( child: Container(

@ -1,3 +1,4 @@
import 'package:diplomaticquarterapp/analytics/flows/login_registration.dart';
import 'package:diplomaticquarterapp/analytics/google-analytics.dart'; import 'package:diplomaticquarterapp/analytics/google-analytics.dart';
import 'package:diplomaticquarterapp/config/size_config.dart'; import 'package:diplomaticquarterapp/config/size_config.dart';
import 'package:diplomaticquarterapp/locator.dart'; import 'package:diplomaticquarterapp/locator.dart';
@ -241,6 +242,7 @@ class LoginType extends StatelessWidget {
onTap: () { onTap: () {
LoginType.loginType = _flag; LoginType.loginType = _flag;
locator<GAnalytics>().loginRegistration.login_start(method: type); locator<GAnalytics>().loginRegistration.login_start(method: type);
LoginRegistration.loginMethod = _flag;
Navigator.of(_context).push(FadePage(page: Login())); Navigator.of(_context).push(FadePage(page: Login()));
}, },
child: Container( child: Container(

@ -30,6 +30,7 @@ import 'package:flutter/rendering.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
class Login extends StatefulWidget { class Login extends StatefulWidget {
@override @override
_Login createState() => _Login(); _Login createState() => _Login();
} }
@ -282,7 +283,7 @@ class _Login extends State<Login> {
}, },
cancelFunction: () => {}); cancelFunction: () => {});
dialog.showAlertDialog(context); dialog.showAlertDialog(context);
projectViewModel.analytics.loginRegistration.login_fail(method: this.loginType == 1 ? "national id" : "file number", error: err.toString()); projectViewModel.analytics.loginRegistration.login_fail(error: err.toString());
}); });
} }

@ -1,6 +1,8 @@
import 'package:diplomaticquarterapp/analytics/flows/login_registration.dart';
import 'package:diplomaticquarterapp/analytics/google-analytics.dart'; import 'package:diplomaticquarterapp/analytics/google-analytics.dart';
import 'package:diplomaticquarterapp/config/shared_pref_kay.dart'; import 'package:diplomaticquarterapp/config/shared_pref_kay.dart';
import 'package:diplomaticquarterapp/config/size_config.dart'; import 'package:diplomaticquarterapp/config/size_config.dart';
import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
import 'package:diplomaticquarterapp/locator.dart'; import 'package:diplomaticquarterapp/locator.dart';
import 'package:diplomaticquarterapp/models/Authentication/check_user_status_reponse.dart'; import 'package:diplomaticquarterapp/models/Authentication/check_user_status_reponse.dart';
import 'package:diplomaticquarterapp/models/Authentication/check_user_status_req.dart'; import 'package:diplomaticquarterapp/models/Authentication/check_user_status_req.dart';
@ -341,6 +343,7 @@ class _Register extends State<Register> {
okFunction: () { okFunction: () {
AlertDialogBox.closeAlertDialog(context); AlertDialogBox.closeAlertDialog(context);
sharedPref.setObject(REGISTER_DATA_FOR_LOGIIN, nRequest); sharedPref.setObject(REGISTER_DATA_FOR_LOGIIN, nRequest);
LoginRegistration.loginMethod = 1; // 1=NationalID, by default from Registration
Navigator.of(context).push(FadePage(page: Login())); Navigator.of(context).push(FadePage(page: Login()));
}, },
cancelFunction: () {}) cancelFunction: () {})

@ -404,7 +404,7 @@ class Signaling {
'to': session.remote_user?.id, 'to': session.remote_user?.id,
'from': session.local_user.id, 'from': session.local_user.id,
'candidate': { 'candidate': {
'sdpMLineIndex': candidate.sdpMLineIndex, 'sdpMLineIndex': candidate.sdpMlineIndex,
'sdpMid': candidate.sdpMid, 'sdpMid': candidate.sdpMid,
'candidate': candidate.candidate, 'candidate': candidate.candidate,
}, },

Loading…
Cancel
Save