protected override async void ViewIsAppearing(object sender, EventArgs e) { base.ViewIsAppearing(sender, e); try { #if DEBUG var lastTimeCheck = Xamarin.Essentials.Preferences.Get("LastVersionCheck", DateTime.MinValue); if (lastTimeCheck == DateTime.MinValue || DateTime.Now >= lastTimeCheck.AddMinutes(10)) { Xamarin.Essentials.Preferences.Set("LastVersionCheck", DateTime.Now); MGDataAccessLibrary.DevicePlatform plaform = Xamarin.Forms.Device.RuntimePlatform == Xamarin.Forms.Device.iOS ? MGDataAccessLibrary.DevicePlatform.iOS : MGDataAccessLibrary.DevicePlatform.Android; var currentVer = int.Parse(Xamarin.Essentials.VersionTracking.CurrentVersion.Replace(".", "")); var needsUpdate = await MGDataAccessLibrary.BussinessLogic.AppVersionProcessor.AppNeedsUpdate(currentVer, plaform); if (needsUpdate) { await CoreMethods.PushPageModel <UpdatePageModel>(data : null, modal : true); var updatedPage = FreshPageModelResolver.ResolvePageModel <UpdatePageModel>(); } } #else var lastTimeCheck = Xamarin.Essentials.Preferences.Get("LastVersionCheck", DateTime.MinValue); if (lastTimeCheck == DateTime.MinValue || DateTime.Now >= lastTimeCheck.AddMinutes(10)) { Xamarin.Essentials.Preferences.Set("LastVersionCheck", DateTime.Now); MGDataAccessLibrary.DevicePlatform plaform = Xamarin.Forms.Device.RuntimePlatform == Xamarin.Forms.Device.iOS ? MGDataAccessLibrary.DevicePlatform.iOS : MGDataAccessLibrary.DevicePlatform.Android; var currentVer = int.Parse(Xamarin.Essentials.VersionTracking.CurrentVersion.Replace(".", "")); var needsUpdate = await MGDataAccessLibrary.BussinessLogic.AppVersionProcessor.AppNeedsUpdate(currentVer, plaform); if (needsUpdate) { await CoreMethods.PushPageModel <UpdatePageModel>(data : null, modal : true); var updatedPage = FreshPageModelResolver.ResolvePageModel <UpdatePageModel>(); } } #endif } catch (Exception ex) { Crashes.TrackError(ex); } }
protected override async void ViewIsAppearing(object sender, EventArgs e) { base.ViewIsAppearing(sender, e); var userName = await SecureStorage.GetAsync("UserName") ?? "****"; userName = userName.Substring(0, Math.Min(userName.Length - 1, 4)) + "****"; LocalAuthType authType = DependencyService.Get <ILocalAuthHelper>().GetLocalAuthType(); var isBioLoginEnabled = Preferences.Get("IsBiometricAuthEnabled", false); if (!isBioLoginEnabled) { switch (authType) { case LocalAuthType.None: case LocalAuthType.Passcode: IsBiometricsLabelVisible = false; break; case LocalAuthType.FaceId: IsBiometricsLabelVisible = true; AuthString = "Turn on Face ID login"; break; case LocalAuthType.NewAndroidBiometric: case LocalAuthType.TouchId: IsBiometricsLabelVisible = true; AuthString = Device.RuntimePlatform == Device.iOS ? "Turn on Touch ID login" : "Turn on fingerprint login"; break; } } else if (authType == LocalAuthType.FaceId || authType == LocalAuthType.TouchId || authType == LocalAuthType.NewAndroidBiometric) { if (authType == LocalAuthType.FaceId) { BioLoginButtonText = "Log in with Face ID"; IsBioLoginVisible = true; } else { // we dont need to show this with the new iOS API BioLoginButtonText = Device.RuntimePlatform == Device.iOS ? "Log in with Touch ID" : authType == LocalAuthType.NewAndroidBiometric ? "Log in with fingerprint" : $"Touch fingerprint sensor to log in as {userName}"; IsBioLoginVisible = true; } void onFailure() { //do nothing // we dont need to show this with the new Android API 28 if (Device.RuntimePlatform == Device.Android && authType != LocalAuthType.NewAndroidBiometric) { async void action() { await CoreMethods.DisplayAlert("ManageGo", "Fingerpring authentication failed", "DISMISS"); } Device.BeginInvokeOnMainThread(action); } } if (!UserLoggedOut) { DependencyService.Get <ILocalAuthHelper>().Authenticate(userName, OnBiometricAuthSuccess, onFailure); } } try { #if DEBUG var lastTimeCheck = Xamarin.Essentials.Preferences.Get("LastVersionCheck", DateTime.MinValue); if (true) { Xamarin.Essentials.Preferences.Set("LastVersionCheck", DateTime.Now); MGDataAccessLibrary.DevicePlatform plaform = Xamarin.Forms.Device.RuntimePlatform == Xamarin.Forms.Device.iOS ? MGDataAccessLibrary.DevicePlatform.iOS : MGDataAccessLibrary.DevicePlatform.Android; var currentVer = int.Parse(Xamarin.Essentials.VersionTracking.CurrentVersion.Replace(".", "")); var needsUpdate = await MGDataAccessLibrary.BussinessLogic.AppVersionProcessor.AppNeedsUpdate(currentVer, plaform); if (needsUpdate && !ShowedUpdateAlert) { ShowedUpdateAlert = true; await CoreMethods.PushPageModel <UpdatePageModel>(data : null, modal : true); var updatedPage = FreshPageModelResolver.ResolvePageModel <UpdatePageModel>(); } } #else var lastTimeCheck = Xamarin.Essentials.Preferences.Get("LastVersionCheck", DateTime.MinValue); if (lastTimeCheck == DateTime.MinValue || DateTime.Now >= lastTimeCheck.AddMinutes(10)) { Xamarin.Essentials.Preferences.Set("LastVersionCheck", DateTime.Now); MGDataAccessLibrary.DevicePlatform plaform = Xamarin.Forms.Device.RuntimePlatform == Xamarin.Forms.Device.iOS ? MGDataAccessLibrary.DevicePlatform.iOS : MGDataAccessLibrary.DevicePlatform.Android; var currentVer = int.Parse(Xamarin.Essentials.VersionTracking.CurrentVersion.Replace(".", "")); var needsUpdate = await MGDataAccessLibrary.BussinessLogic.AppVersionProcessor.AppNeedsUpdate(currentVer, plaform); if (needsUpdate && !ShowedUpdateAlert) { ShowedUpdateAlert = true; await CoreMethods.PushPageModel <UpdatePageModel>(data : null, modal : true); var updatedPage = FreshPageModelResolver.ResolvePageModel <UpdatePageModel>(); } } #endif } catch (Exception ex) { Crashes.TrackError(ex); } }