public async Task DeleteAccountAsync(DeleteAccountConfirmDialogDataTemplate dataTemplate)
        {
            if (dataTemplate.Confirmed)
            {
                await Task.Run(async() =>
                {
                    Logger.Info("Deleting account: " + MODEL.Account.getBareJid());
                    try
                    {
                        await ConnectionHandler.INSTANCE.removeAccountAsync(MODEL.Account.getBareJid());
                    }
                    catch (System.Exception e)
                    {
                        Logger.Error("Failed to disconnect account for deletion.", e);
                    }

                    if (!dataTemplate.KeepChatMessages)
                    {
                        await ChatDBManager.INSTANCE.deleteAllChatMessagesForAccountAsync(MODEL.Account.getBareJid());
                    }
                    if (!dataTemplate.KeepChats)
                    {
                        ChatDBManager.INSTANCE.deleteAllChatsForAccount(MODEL.Account.getBareJid());
                    }
                    AccountDBManager.INSTANCE.deleteAccount(MODEL.Account, true, true);
                    Logger.Info("Finished deleting account: " + MODEL.Account.getBareJid());
                });
            }
        }
 public async Task DeleteAccountAsync(DeleteAccountConfirmDialogDataTemplate dataTemplate)
 {
     if (dataTemplate.Confirmed)
     {
         await DataCache.INSTANCE.DeleteAccountAsync(MODEL.Account);
     }
 }
示例#3
0
        public async Task DeleteAccountAsync(DeleteAccountConfirmDialogDataTemplate dataTemplate)
        {
            if (dataTemplate.Confirmed)
            {
                // Delete the account:
                await DataCache.INSTANCE.DeleteAccountAsync(MODEL.Account);

                // Update push accounts:
                if (Settings.GetSettingBoolean(SettingsConsts.PUSH_ENABLED))
                {
                    await PushManager.INSTANCE.InitPushForAccountsAsync();
                }
            }
        }