protected override void OnDisappearing()
        {
            base.OnDisappearing();

            NameCell.Dispose();
            NotesCell.Dispose();
            FolderCell.Dispose();

            switch (_type)
            {
            case CipherType.Login:
                LoginTotpCell.Dispose();
                LoginPasswordCell.Dispose();
                LoginUsernameCell.Dispose();
                LoginUriCell.Dispose();
                LoginPasswordCell.Button.Clicked -= PasswordButton_Clicked;
                LoginGenerateCell.Tapped         -= GenerateCell_Tapped;
                if (LoginTotpCell?.Button != null)
                {
                    LoginTotpCell.Button.Clicked -= TotpButton_Clicked;
                }
                break;

            case CipherType.Card:
                CardBrandCell.Dispose();
                CardCodeCell.Dispose();
                CardExpMonthCell.Dispose();
                CardExpYearCell.Dispose();
                CardNameCell.Dispose();
                CardNumberCell.Dispose();
                break;

            case CipherType.Identity:
                IdTitleCell.Dispose();
                IdFirstNameCell.Dispose();
                IdMiddleNameCell.Dispose();
                IdLastNameCell.Dispose();
                IdUsernameCell.Dispose();
                IdCompanyCell.Dispose();
                IdSsnCell.Dispose();
                IdPassportNumberCell.Dispose();
                IdLicenseNumberCell.Dispose();
                IdEmailCell.Dispose();
                IdPhoneCell.Dispose();
                IdAddress1Cell.Dispose();
                IdAddress2Cell.Dispose();
                IdAddress3Cell.Dispose();
                IdCityCell.Dispose();
                IdStateCell.Dispose();
                IdPostalCodeCell.Dispose();
                IdCountryCell.Dispose();
                break;

            default:
                break;
            }
        }
        protected override void OnAppearing()
        {
            base.OnAppearing();
            if (!_connectivity.IsConnected)
            {
                AlertNoConnection();
            }

            NameCell.InitEvents();
            NotesCell.InitEvents();
            FolderCell.InitEvents();

            if (AttachmentsCell != null)
            {
                AttachmentsCell.Tapped += AttachmentsCell_Tapped;
            }
            if (CustomFieldsCell != null)
            {
                CustomFieldsCell.Tapped += CustomFieldsCell_Tapped;
            }
            DeleteCell.Tapped += DeleteCell_Tapped;

            switch (Cipher.Type)
            {
            case CipherType.Login:
                LoginPasswordCell.InitEvents();
                LoginUsernameCell.InitEvents();
                LoginUriCell.InitEvents();
                LoginTotpCell.InitEvents();
                LoginPasswordCell.Button.Clicked += PasswordButton_Clicked;
                LoginGenerateCell.Tapped         += GenerateCell_Tapped;
                if (LoginTotpCell?.Button != null)
                {
                    LoginTotpCell.Button.Clicked += TotpButton_Clicked;
                }
                break;

            case CipherType.Card:
                CardBrandCell.InitEvents();
                CardCodeCell.InitEvents();
                CardExpMonthCell.InitEvents();
                CardExpYearCell.InitEvents();
                CardNameCell.InitEvents();
                CardNumberCell.InitEvents();
                break;

            case CipherType.Identity:
                IdTitleCell.InitEvents();
                IdFirstNameCell.InitEvents();
                IdMiddleNameCell.InitEvents();
                IdLastNameCell.InitEvents();
                IdUsernameCell.InitEvents();
                IdCompanyCell.InitEvents();
                IdSsnCell.InitEvents();
                IdPassportNumberCell.InitEvents();
                IdLicenseNumberCell.InitEvents();
                IdEmailCell.InitEvents();
                IdPhoneCell.InitEvents();
                IdAddress1Cell.InitEvents();
                IdAddress2Cell.InitEvents();
                IdAddress3Cell.InitEvents();
                IdCityCell.InitEvents();
                IdStateCell.InitEvents();
                IdPostalCodeCell.InitEvents();
                IdCountryCell.InitEvents();
                break;

            default:
                break;
            }
        }
Exemple #3
0
        protected override void OnDisappearing()
        {
            base.OnDisappearing();

            NameCell?.Dispose();
            NotesCell?.Dispose();
            FolderCell?.Dispose();

            if (AttachmentsCell != null)
            {
                AttachmentsCell.Tapped -= AttachmentsCell_Tapped;
            }
            if (DeleteCell != null)
            {
                DeleteCell.Tapped -= DeleteCell_Tapped;
            }
            if (AddFieldCell != null)
            {
                AddFieldCell.Tapped -= AddFieldCell_Tapped;
            }
            if (AddUriCell != null)
            {
                AddUriCell.Tapped -= AddUriCell_Tapped;
            }

            switch (Cipher.Type)
            {
            case CipherType.Login:
                LoginTotpCell?.Dispose();
                LoginPasswordCell?.Dispose();
                LoginUsernameCell?.Dispose();
                if (LoginPasswordCell?.Button1 != null)
                {
                    LoginPasswordCell.Button1.Clicked -= PasswordButton_Clicked;
                }
                if (LoginPasswordCell?.Button2 != null)
                {
                    LoginPasswordCell.Button2.Clicked -= PasswordButton2_Clicked;
                }
                if (LoginTotpCell?.Button1 != null)
                {
                    LoginTotpCell.Button1.Clicked -= TotpButton_Clicked;
                }
                break;

            case CipherType.Card:
                CardBrandCell?.Dispose();
                CardCodeCell?.Dispose();
                CardExpMonthCell?.Dispose();
                CardExpYearCell?.Dispose();
                CardNameCell?.Dispose();
                CardNumberCell?.Dispose();
                if (CardCodeCell?.Button1 != null)
                {
                    CardCodeCell.Button1.Clicked -= CardCodeButton_Clicked;
                }
                break;

            case CipherType.Identity:
                IdTitleCell?.Dispose();
                IdFirstNameCell?.Dispose();
                IdMiddleNameCell?.Dispose();
                IdLastNameCell?.Dispose();
                IdUsernameCell?.Dispose();
                IdCompanyCell?.Dispose();
                IdSsnCell?.Dispose();
                IdPassportNumberCell?.Dispose();
                IdLicenseNumberCell?.Dispose();
                IdEmailCell?.Dispose();
                IdPhoneCell?.Dispose();
                IdAddress1Cell?.Dispose();
                IdAddress2Cell?.Dispose();
                IdAddress3Cell?.Dispose();
                IdCityCell?.Dispose();
                IdStateCell?.Dispose();
                IdPostalCodeCell?.Dispose();
                IdCountryCell?.Dispose();
                break;

            default:
                break;
            }

            Helpers.DisposeSectionEvents(FieldsSection);
            Helpers.DisposeSectionEvents(UrisSection);
        }
        protected override void OnAppearing()
        {
            base.OnAppearing();
            if (!_connectivity.IsConnected)
            {
                AlertNoConnection();
            }

            NameCell.InitEvents();
            NotesCell.InitEvents();
            FolderCell.InitEvents();

            switch (_type)
            {
            case CipherType.Login:
                LoginPasswordCell.InitEvents();
                LoginUsernameCell.InitEvents();
                LoginUriCell.InitEvents();
                LoginTotpCell.InitEvents();
                LoginPasswordCell.Button.Clicked += PasswordButton_Clicked;
                LoginGenerateCell.Tapped         += GenerateCell_Tapped;
                if (LoginTotpCell?.Button != null)
                {
                    LoginTotpCell.Button.Clicked += TotpButton_Clicked;
                }
                break;

            case CipherType.Card:
                CardBrandCell.InitEvents();
                CardCodeCell.InitEvents();
                CardExpMonthCell.InitEvents();
                CardExpYearCell.InitEvents();
                CardNameCell.InitEvents();
                CardNumberCell.InitEvents();
                break;

            case CipherType.Identity:
                IdTitleCell.InitEvents();
                IdFirstNameCell.InitEvents();
                IdMiddleNameCell.InitEvents();
                IdLastNameCell.InitEvents();
                IdUsernameCell.InitEvents();
                IdCompanyCell.InitEvents();
                IdSsnCell.InitEvents();
                IdPassportNumberCell.InitEvents();
                IdLicenseNumberCell.InitEvents();
                IdEmailCell.InitEvents();
                IdPhoneCell.InitEvents();
                IdAddress1Cell.InitEvents();
                IdAddress2Cell.InitEvents();
                IdAddress3Cell.InitEvents();
                IdCityCell.InitEvents();
                IdStateCell.InitEvents();
                IdPostalCodeCell.InitEvents();
                IdCountryCell.InitEvents();
                break;

            default:
                break;
            }

            if (_type == CipherType.Login && !_fromAutofill && !_settings.GetValueOrDefault(AddedLoginAlertKey, false))
            {
                _settings.AddOrUpdateValue(AddedLoginAlertKey, true);
                if (Device.RuntimePlatform == Device.iOS)
                {
                    DisplayAlert(AppResources.BitwardenAppExtension, AppResources.BitwardenAppExtensionAlert,
                                 AppResources.Ok);
                }
                else if (Device.RuntimePlatform == Device.Android && !_appInfoService.AutofillAccessibilityServiceEnabled)
                {
                    DisplayAlert(AppResources.BitwardenAutofillService, AppResources.BitwardenAutofillServiceAlert,
                                 AppResources.Ok);
                }
            }

            NameCell?.Entry.FocusWithDelay();
        }
        protected override void OnAppearing()
        {
            base.OnAppearing();

            NameCell.InitEvents();
            NotesCell.InitEvents();
            FolderCell.InitEvents();

            if (AddFieldCell != null)
            {
                AddFieldCell.Tapped += AddFieldCell_Tapped;
            }
            if (AddUriCell != null)
            {
                AddUriCell.Tapped += AddUriCell_Tapped;
            }

            switch (_type)
            {
            case CipherType.Login:
                LoginPasswordCell.InitEvents();
                LoginUsernameCell.InitEvents();
                LoginTotpCell.InitEvents();
                LoginPasswordCell.Button1.Clicked += PasswordButton_Clicked;
                LoginPasswordCell.Button2.Clicked += PasswordButton2_Clicked;
                if (LoginTotpCell?.Button1 != null)
                {
                    LoginTotpCell.Button1.Clicked += TotpButton_Clicked;
                }
                break;

            case CipherType.Card:
                CardBrandCell.InitEvents();
                CardCodeCell.InitEvents();
                CardExpMonthCell.InitEvents();
                CardExpYearCell.InitEvents();
                CardNameCell.InitEvents();
                CardNumberCell.InitEvents();
                CardCodeCell.Button1.Clicked += CardCodeButton_Clicked;
                break;

            case CipherType.Identity:
                IdTitleCell.InitEvents();
                IdFirstNameCell.InitEvents();
                IdMiddleNameCell.InitEvents();
                IdLastNameCell.InitEvents();
                IdUsernameCell.InitEvents();
                IdCompanyCell.InitEvents();
                IdSsnCell.InitEvents();
                IdPassportNumberCell.InitEvents();
                IdLicenseNumberCell.InitEvents();
                IdEmailCell.InitEvents();
                IdPhoneCell.InitEvents();
                IdAddress1Cell.InitEvents();
                IdAddress2Cell.InitEvents();
                IdAddress3Cell.InitEvents();
                IdCityCell.InitEvents();
                IdStateCell.InitEvents();
                IdPostalCodeCell.InitEvents();
                IdCountryCell.InitEvents();
                break;

            default:
                break;
            }

            Helpers.InitSectionEvents(FieldsSection);
            Helpers.InitSectionEvents(UrisSection);

            if (_type == CipherType.Login && !_fromAutofill && !_settings.GetValueOrDefault(AddedLoginAlertKey, false))
            {
                _settings.AddOrUpdateValue(AddedLoginAlertKey, true);
                if (Device.RuntimePlatform == Device.iOS)
                {
                    if (_deviceInfo.Version < 12)
                    {
                        DisplayAlert(AppResources.BitwardenAppExtension, AppResources.BitwardenAppExtensionAlert,
                                     AppResources.Ok);
                    }
                    else
                    {
                        DisplayAlert(AppResources.PasswordAutofill, AppResources.BitwardenAutofillAlert,
                                     AppResources.Ok);
                    }
                }
                else if (Device.RuntimePlatform == Device.Android && !_appInfoService.AutofillAccessibilityServiceEnabled)
                {
                    DisplayAlert(AppResources.BitwardenAutofillService, AppResources.BitwardenAutofillServiceAlert,
                                 AppResources.Ok);
                }
            }

            if (NameCell != null && string.IsNullOrWhiteSpace(NameCell.Entry.Text))
            {
                NameCell.Entry.FocusWithDelay();
            }
            else if (LoginUsernameCell != null && string.IsNullOrWhiteSpace(LoginUsernameCell.Entry.Text))
            {
                LoginUsernameCell.Entry.FocusWithDelay();
            }
        }