Esempio n. 1
0
        private async void Page_Loaded(object sender, RoutedEventArgs e)
        {
            await CheckForCamera();

            if (SettingsManager.Get <bool>(Setting.UseCloudSynchronization) && AccountStorage.Instance.HasSynchronizer)
            {
                Synchronize.Visibility = Visibility.Visible;

                AccountStorage.Instance.SynchronizationCompleted += SynchronizationCompleted;

                if (AccountStorage.Instance.IsSynchronizing)
                {
                    Synchronize.StartAnimationAndDisable();

                    SetButtonState(false);
                }
            }
            else
            {
                if (Scan.Visibility == Visibility.Collapsed)
                {
                    CommandBar.Visibility = Visibility.Collapsed;
                }
            }
        }
Esempio n. 2
0
        private void SynchronizationStarted(object sender, EventArgs e)
        {
            Synchronize.StartAnimationAndDisable();

            Edit.IsEnabled = false;
            ToggleCodesEnabled(false);
            ButtonUndo.IsEnabled = false;
        }
Esempio n. 3
0
        private async void Page_Loaded(object sender, RoutedEventArgs e)
        {
            if (ReleaseNotesManager.ShowReleaseNotes)
            {
                ReleaseNotesDialog dialog = new ReleaseNotesDialog();
                await dialog.ShowAsync();
            }

            bool synchronize = false;

            if (SettingsManager.Get <bool>(Setting.UseCloudSynchronization) && AccountStorage.Instance.HasSynchronizer)
            {
                AccountStorage.Instance.SynchronizationStarted   += SynchronizationStarted;
                AccountStorage.Instance.SynchronizationCompleted += SynchronizationCompleted;

                Synchronize.Visibility = Visibility.Visible;

                if (SettingsManager.Get <int>(Setting.WhenToSynchronize) == 0)
                {
                    synchronize = true;
                }
            }

            await LoadAccounts();

            PageGrid.Children.Remove(LoaderProgressBar);

            if (firstLoad && synchronize)
            {
                UpdateLocalFromRemote();
            }

            firstLoad = false;

            if (AccountStorage.Instance.IsSynchronizing)
            {
                Synchronize.StartAnimationAndDisable();
                Edit.IsEnabled       = false;
                ButtonUndo.IsEnabled = false;
            }
        }
Esempio n. 4
0
        private async void Save_Tapped(object sender, Windows.UI.Xaml.Input.TappedRoutedEventArgs e)
        {
            Synchronize.StartAnimationAndDisable();
            SetButtonState(false);

            AccountBlockPanel.Visibility = Visibility.Collapsed;

            MainPage.ClearBanners();
            AccountBlockPanel.Children.Clear();

            bool valid = true;

            if (string.IsNullOrWhiteSpace(AccountService.Text) || string.IsNullOrWhiteSpace(AccountUsername.Text) || string.IsNullOrWhiteSpace(AccountCode.Text))
            {
                MainPage.AddBanner(new Banner(BannerType.Danger, ResourceLoader.GetForCurrentView().GetString("BannerEmptyFields"), true));

                valid = false;
            }

            if (valid)
            {
                try
                {
                    string code = new string(Array.FindAll(AccountCode.Text.ToCharArray(), (c => (char.IsLetterOrDigit(c)))));

                    if (!code.All(char.IsLetterOrDigit))
                    {
                        MainPage.AddBanner(new Banner(BannerType.Danger, ResourceLoader.GetForCurrentView().GetString("BannerInvalidCharacters"), true));

                        valid = false;
                    }

                    if (valid)
                    {
                        OTP otp = new OTP(code);

                        Account account = new Account(AccountUsername.Text, code, AccountService.Text);

                        await AccountStorage.Instance.SaveAsync(account);

                        accountBlock = new AccountBlock(account, true, mainPage);
                        accountBlock.CopyRequested += AccountBlock_CopyRequested;

                        MainPage.AddBanner(new Banner(BannerType.Success, ResourceLoader.GetForCurrentView().GetString("BannerSaved"), true));
                        AccountBlockPanel.Children.Add(accountBlock);

                        AccountBlockPanel.Visibility = Visibility.Visible;

                        AccountService.Text  = "";
                        AccountUsername.Text = "";
                        AccountCode.Text     = "";
                    }
                }
                catch (ArgumentException)
                {
                    MainPage.AddBanner(new Banner(BannerType.Danger, ResourceLoader.GetForCurrentView().GetString("BannerInvalidCharacters"), true));
                }
                catch (DuplicateAccountException)
                {
                    MainPage.AddBanner(new Banner(BannerType.Danger, ResourceLoader.GetForCurrentView().GetString("BannerDuplicateAccount"), true));
                }
                catch (NetworkException)
                {
                    MainPage.AddBanner(new Banner(BannerType.Danger, ResourceLoader.GetForCurrentView().GetString("NoInternetConnection"), true));
                }
                catch (Exception)
                {
                    MainPage.AddBanner(new Banner(BannerType.Danger, ResourceLoader.GetForCurrentView().GetString("BannerUnknownError"), true));
                }
            }

            SetButtonState(true);
            Synchronize.StopAnimationAndEnable();
            Synchronize.IsEnabled = false;
        }