void OnRunningChanged (NSObservedChange change)
{
var running = ((NSNumber)change.NewValue).BoolValue;
if (!running)
return;
DispatchQueue.MainQueue.DispatchAsync (() => {
// If the region of interest view's region of interest has not
// been initialized yet, let's set an inital region of interest
// that is 80% of the shortest side by 25% of the longest side
// and centered in the root view.
if (RegionOfInterest.IsEmpty) {
var width = NMath.Min (Frame.Width, Frame.Height) * 0.8f;
var height = NMath.Max (Frame.Width, Frame.Height) * 0.25f;
var newRegionOfInterest = Frame.Inset (Frame.GetMidX () - width / 2, Frame.GetMidY () - height / 2);
SetRegionOfInterestWithProposedRegionOfInterest (newRegionOfInterest);
}
if (running) {
SetRegionOfInterestWithProposedRegionOfInterest (RegionOfInterest);
RegionOfInterestDidChange?.Invoke (this, EventArgs.Empty);
}
});
}