1using CommunityToolkit.Maui.Core.Platform;
2using CommunityToolkit.Mvvm.Messaging;
3using Microsoft.Maui.Controls.PlatformConfiguration;
4using Microsoft.Maui.Controls.PlatformConfiguration.iOSSpecific;
11 private readonly List<Label> innerLabels;
18 this.InitializeComponent();
21 this.ContentPageModel = ViewModel;
32 this.InnerCodeEntry.Text =
string.Empty;
38 await base.OnAppearingAsync();
44 await base.OnDisappearingAsync();
47 private async
void InnerCodeEntry_TextChanged(
object? Sender, TextChangedEventArgs e)
49 string NewText = e.NewTextValue;
50 int NewLength = NewText.Length;
52 bool IsValid = (NewLength <= this.innerLabels.Count) || NewText.ToCharArray().All(ch => !
"0123456789".Contains(ch));
56 this.InnerCodeEntry.Text = e.OldTextValue;
60 for (
int i = 0; i < this.innerLabels.Count; i++)
64 this.innerLabels[i].Text = NewText[i..(i + 1)];
65 VisualStateManager.GoToState(this.innerLabels[i], VisualStateManager.CommonStates.Normal);
69 this.innerLabels[i].Text =
"0\u2060";
70 VisualStateManager.GoToState(this.innerLabels[i], VisualStateManager.CommonStates.Disabled);
74 if (NewLength == this.innerLabels.Count)
75 await this.InnerCodeEntry.HideKeyboardAsync();
78 private void TapGestureRecognizer_Tapped(
object sender, TappedEventArgs e)
80 this.InnerCodeEntry.Focus();
Base class that references services in the app.
static INavigationService NavigationService
The navigation service for navigating between pages.
VerifyCodePage()
Creates a new instance of the VerifyCodePage class.
override async Task OnDisappearingAsync()
override async Task OnAppearingAsync()
The view model to bind to when verifying a code.