public override Task StopAsync(CancellationToken stoppingToken) { Logger.LogInformation("Cancellation Received. Terminating app."); PinListener.Dispose(); Snapshot.Dispose(); return(Task.CompletedTask); }
private void IncObserverCount() { FObserverCount++; if (FPinListener == null) { FPinListener = new PinListener(this); } }
private void DecObserverCount() { FObserverCount--; if (FObserverCount == 0) { FPinListener.Dispose(); FPinListener = null; } }
protected override void DisposeManaged() { if (FPinListener != null) { FPinListener.Dispose(); FPinListener = null; } base.DisposeManaged(); }
private void PinChanging(object sender, TextChangedEventArgs e) { int length = string.Concat(e.Text).Length; for (int i = 0; i < DigitCount; i++) { DigitView digit = (DigitView)_mainLayout.GetChildAt(i); if (length > i) { digit.Text = MASK; } else { digit.Text = string.Empty; } if (_pinInputField.HasFocus || _pinInputField.HasWindowFocus) { if (i == length) { digit.Selected = true; CenterSelectedDigit(); } else { digit.Selected = false; } } } if (length == DigitCount) { // Finished var handler = PinCompleted; handler?.Invoke(this, new PinCompletedEventArgs(_pinInputField.Text)); PinListener?.PinEntered(_pinInputField.Text); _pinInputField.ClearFocus(); HideKeyboard(); } }
protected override async Task ExecuteAsync(CancellationToken stoppingToken) { Logger.LogInformation($"Listening on pin {PinListener.Pin}"); PinListener.RegisterISRCallback(() => Counter.CurrentCount++); // subscribe to counter pulse snapshot event Snapshot.PulseSnapshot += async(s, e) => { using (var scope = Services.CreateScope()) using (var pulseTransfer = scope.ServiceProvider .GetRequiredService <ILocalRepository <PulseDTO> >()) { await pulseTransfer.SaveDataAsync(e.PulseData, stoppingToken); } }; while (!stoppingToken.IsCancellationRequested) { await Task.Delay(Timeout.Infinite, stoppingToken); } }