private static async Task RemoveData(string type) { try { if (type == "Logout") { if (Methods.CheckConnectivity()) { await RequestsAsync.Global.Get_Delete_Token(); } } else if (type == "Delete") { Methods.Path.DeleteAll_FolderUser(); if (Methods.CheckConnectivity()) { await RequestsAsync.Global.Delete_User(UserDetails.Password); } } if (AppSettings.ShowGoogleLogin && LoginActivity.MGoogleApiClient != null) { if (Auth.GoogleSignInApi != null) { Auth.GoogleSignInApi.SignOut(LoginActivity.MGoogleApiClient); LoginActivity.MGoogleApiClient = null !; } } if (AppSettings.ShowFacebookLogin) { var accessToken = AccessToken.CurrentAccessToken; var isLoggedIn = accessToken != null && !accessToken.IsExpired; if (isLoggedIn && Profile.CurrentProfile != null) { LoginManager.Instance.LogOut(); } } OneSignalNotification.Un_RegisterNotificationDevice(); ListUtils.ClearAllList(); Reset(); UserDetails.ClearAllValueUserDetails(); Methods.DeleteNoteOnSD(); GC.Collect(); } catch (Exception exception) { Methods.DisplayReportResultTrack(exception); } }
public static async void Logout(Activity context) { try { if (RunLogout == false) { RunLogout = true; await RemoveData("Logout"); context.RunOnUiThread(() => { Methods.Path.DeleteAll_MyFolderDisk(); SqLiteDatabase dbDatabase = new SqLiteDatabase(); Runtime.GetRuntime().RunFinalization(); Runtime.GetRuntime().Gc(); TrimCache(context); dbDatabase.ClearAll(); dbDatabase.DropAll(); ListUtils.ClearAllList(); UserDetails.ClearAllValueUserDetails(); dbDatabase.CheckTablesStatus(); dbDatabase.Dispose(); var intentService = new Intent(context, typeof(ScheduledApiService)); context.StopService(intentService); HomeActivity.GetInstance()?.NewsFeedFragment?.MainHandler?.RemoveCallbacks(HomeActivity.GetInstance().NewsFeedFragment.Runnable); HomeActivity.GetInstance().NewsFeedFragment.MainHandler = null; MainSettings.SharedData.Edit().Clear().Commit(); Intent intent = new Intent(context, typeof(FirstActivity)); intent.AddCategory(Intent.CategoryHome); intent.SetAction(Intent.ActionMain); intent.AddFlags(ActivityFlags.ClearTop | ActivityFlags.NewTask | ActivityFlags.ClearTask); context.StartActivity(intent); context.FinishAffinity(); context.Finish(); }); RunLogout = false; } } catch (Exception e) { Console.WriteLine(e); } }
public static async void Logout(Activity context) { try { if (RunLogout == false) { RunLogout = true; await RemoveData("Logout"); context?.RunOnUiThread(() => { Methods.Path.DeleteAll_MyFolderDisk(); SqLiteDatabase dbDatabase = new SqLiteDatabase(); Runtime.GetRuntime()?.RunFinalization(); Runtime.GetRuntime()?.Gc(); TrimCache(context); dbDatabase.ClearAll(); dbDatabase.DropAll(); ListUtils.ClearAllList(); UserDetails.ClearAllValueUserDetails(); dbDatabase.CheckTablesStatus(); dbDatabase.Dispose(); context.StopService(new Intent(context, typeof(ScheduledApiService))); MainSettings.SharedData.Edit()?.Clear()?.Commit(); MainSettings.InAppReview.Edit()?.Clear()?.Commit(); Intent intent = new Intent(context, typeof(FirstActivity)); intent.AddCategory(Intent.CategoryHome); intent.SetAction(Intent.ActionMain); intent.AddFlags(ActivityFlags.ClearTop | ActivityFlags.NewTask | ActivityFlags.ClearTask); context.StartActivity(intent); context.FinishAffinity(); context.Finish(); }); RunLogout = false; } } catch (Exception e) { Methods.DisplayReportResultTrack(e); } }
public static async Task Delete(Activity context) { try { if (RunLogout == false) { RunLogout = true; await RemoveData("Delete"); context.RunOnUiThread(() => { Methods.Path.DeleteAll_MyFolderDisk(); SqLiteDatabase dbDatabase = new SqLiteDatabase(); Java.Lang.Runtime.GetRuntime().RunFinalization(); Java.Lang.Runtime.GetRuntime().Gc(); TrimCache(context); dbDatabase.ClearAll(); dbDatabase.DropAll(); ListUtils.ClearAllList(); UserDetails.ClearAllValueUserDetails(); dbDatabase.Connect(); dbDatabase.Dispose(); var intentService = new Intent(context, typeof(ScheduledApiService)); context.StopService(intentService); MainSettings.SharedData.Edit().Clear().Commit(); Intent intent = new Intent(context, typeof(FirstActivity)); intent.AddCategory(Intent.CategoryHome); intent.SetAction(Intent.ActionMain); intent.AddFlags(ActivityFlags.ClearTop | ActivityFlags.NewTask | ActivityFlags.ClearTask); context.StartActivity(intent); context.FinishAffinity(); }); RunLogout = false; } } catch (Exception e) { Console.WriteLine(e); } }
private static async Task RemoveData(string type) { try { if (type == "Logout") { if (Methods.CheckConnectivity()) { PollyController.RunRetryPolicyFunction(new List <Func <Task> > { RequestsAsync.Auth.LogoutAsync }); } } else if (type == "Delete") { Methods.Path.DeleteAll_MyFolder(); if (Methods.CheckConnectivity()) { PollyController.RunRetryPolicyFunction(new List <Func <Task> > { () => RequestsAsync.Auth.DeleteAccountAsync(UserDetails.Password) }); } } try { if (AppSettings.ShowGoogleLogin && LoginActivity.MGoogleApiClient != null) { if (Auth.GoogleSignInApi != null) { Auth.GoogleSignInApi.SignOut(LoginActivity.MGoogleApiClient); LoginActivity.MGoogleApiClient = null; } } if (AppSettings.ShowFacebookLogin) { var accessToken = AccessToken.CurrentAccessToken; var isLoggedIn = accessToken != null && !accessToken.IsExpired; if (isLoggedIn && Profile.CurrentProfile != null) { LoginManager.Instance.LogOut(); } } OneSignalNotification.UnRegisterNotificationDevice(); ListUtils.ClearAllList(); UserDetails.ClearAllValueUserDetails(); GC.Collect(); } catch (Exception exception) { Console.WriteLine(exception); } await Task.Delay(0); } catch (Exception exception) { Console.WriteLine(exception); } }