BigTed.ProgressHUD.ShowProgressWorker C# (CSharp) Method

ShowProgressWorker() public method

public ShowProgressWorker ( float progress = -1, string status = null, MaskType maskType = MaskType.None, bool textOnly = false, ToastPosition toastPosition = ToastPosition.Center, string cancelCaption = null, Action cancelCallback = null, double timeoutMs = 1000, bool showContinuousProgress = false, UIImage displayContinuousImage = null ) : void
progress float
status string
maskType MaskType
textOnly bool
toastPosition ToastPosition
cancelCaption string
cancelCallback Action
timeoutMs double
showContinuousProgress bool
displayContinuousImage UIImage
return void
        void ShowProgressWorker(float progress = -1, string status = null, MaskType maskType = MaskType.None, bool textOnly = false, 
		                         ToastPosition toastPosition = ToastPosition.Center, string cancelCaption = null, Action cancelCallback = null, 
		                         double timeoutMs = 1000, bool showContinuousProgress = false, UIImage displayContinuousImage = null)
        {
            Ring.ResetStyle(IsiOS7ForLookAndFeel, (IsiOS7ForLookAndFeel ? TintColor : UIColor.White));

            if (OverlayView.Superview == null) {
                var windows = UIApplication.SharedApplication.Windows;
                Array.Reverse (windows);
                foreach (UIWindow window in windows) {
                    if (window.WindowLevel == UIWindowLevel.Normal && !window.Hidden) {
                        window.AddSubview (OverlayView);
                        break;
                    }
                }
            }

            if (Superview == null)
                OverlayView.AddSubview (this);

            _fadeoutTimer = null;
            ImageView.Hidden = true;
            _maskType = maskType;
            _progress = progress;

            StringLabel.Text = status;

            if (!string.IsNullOrEmpty (cancelCaption)) {
                CancelHudButton.SetTitle (cancelCaption, UIControlState.Normal);
                CancelHudButton.TouchUpInside += delegate {
                    Dismiss ();
                    if (cancelCallback != null) {
                        obj.InvokeOnMainThread (() => cancelCallback.DynamicInvoke (null));
                        //cancelCallback.DynamicInvoke(null);
                    }
                };
            }

            UpdatePosition (textOnly);

            if (showContinuousProgress) {
                if (displayContinuousImage != null) {
                    _displayContinuousImage = true;
                    ImageView.Image = displayContinuousImage;
                    ImageView.Hidden = false;
                }

                RingLayer.StrokeEnd = 0.0f;
                StartProgressTimer (TimeSpan.FromMilliseconds (Ring.ProgressUpdateInterval));
            } else {
                if (progress >= 0) {
                    ImageView.Image = null;
                    ImageView.Hidden = false;

                    SpinnerView.StopAnimating ();
                    RingLayer.StrokeEnd = progress;
                } else if (textOnly) {
                    CancelRingLayerAnimation ();
                    SpinnerView.StopAnimating ();
                } else {
                    CancelRingLayerAnimation ();
                    SpinnerView.StartAnimating ();
                }
            }

            bool cancelButtonVisible = _cancelHud != null && _cancelHud.IsDescendantOfView (_hudView);

            // intercept user interaction with the underlying view
            if (maskType != MaskType.None || cancelButtonVisible) {
                OverlayView.UserInteractionEnabled = true;
                //AccessibilityLabel = status;
                //IsAccessibilityElement = true;
            } else {
                OverlayView.UserInteractionEnabled = false;
                //hudView.IsAccessibilityElement = true;
            }

            OverlayView.Hidden = false;
            this.toastPosition = toastPosition;
            PositionHUD (null);

            if (Alpha != 1) {
                RegisterNotifications ();
                HudView.Transform.Scale (1.3f, 1.3f);

                if (isClear) {
                    Alpha = 1f;
                    HudView.Alpha = 0f;
                }

                UIView.Animate (0.15f, 0,
                    UIViewAnimationOptions.AllowUserInteraction | UIViewAnimationOptions.CurveEaseOut | UIViewAnimationOptions.BeginFromCurrentState,
                    delegate {
                        HudView.Transform.Scale ((float)1 / 1.3f, (float)1f / 1.3f);
                        if (isClear) {
                            HudView.Alpha = 1f;
                        } else {
                            Alpha = 1f;
                        }
                    }, delegate {
                    //UIAccessibilityPostNotification(UIAccessibilityScreenChangedNotification, string);

                    if (textOnly)
                        StartDismissTimer (TimeSpan.FromMilliseconds (timeoutMs));
                });

                SetNeedsDisplay ();
            }
        }