protected override void Dispose(bool disposing)
        {
            if (_isDisposed)
            {
                return;
            }

            _isDisposed = true;

            ReleaseControl();

            if (disposing)
            {
                SetOnClickListener(null);
                SetOnTouchListener(null);

                _tracker?.Dispose();

                if (Element != null)
                {
                    Element.PropertyChanged -= OnElementPropertyChanged;
                }
            }

            base.Dispose(disposing);
        }
Beispiel #2
0
        protected override void Dispose(bool disposing)
        {
            if (_disposed)
            {
                return;
            }

            if (disposing)
            {
                (this as IDisconnectable).Disconnect();

                _events?.Dispose();
                _packager?.Dispose();
                _tracker?.Dispose();
                _events   = null;
                _packager = null;
                _tracker  = null;

                Element = null;
                Container?.Dispose();
                _pageContainer = null;
            }

            _disposed = true;

            base.Dispose(disposing);
        }
        protected override void Dispose(bool disposing)
        {
            if (isDisposed)
            {
                return;
            }

            isDisposed = true;

            ReleaseControl();

            if (disposing)
            {
                SetOnClickListener(null);
                SetOnTouchListener(null);

                tracker?.Dispose();

                if (Element != null)
                {
                    UnsubscribeFromEvents(Element as MediaElement);
                }
            }

            base.Dispose(disposing);
        }
Beispiel #4
0
        protected override void Dispose(bool disposing)
        {
            if (_disposed)
            {
                return;
            }

            if (disposing)
            {
                (this as Controls.Platform.Compatibility.IDisconnectable).Disconnect();

                _packager?.Dispose();
                _tracker?.Dispose();
                _packager = null;
                _tracker  = null;

                Element = null;
                Container?.Dispose();
                _pageContainer = null;
            }

            _disposed = true;

            base.Dispose(disposing);
        }
Beispiel #5
0
        protected override void Dispose(bool disposing)
        {
            if (_disposed)
            {
                return;
            }
            _disposed = true;

            if (disposing)
            {
                _visualElementTracker?.Dispose();
                _visualElementTracker = null;

                _visualElementRenderer?.Dispose();
                _visualElementRenderer = null;

                if (Element != null)
                {
                    Element.PropertyChanged -= OnElementPropertyChanged;

                    if (Platform.Android.AppCompat.Platform.GetRenderer(Element) == this)
                    {
                        Element.ClearValue(Platform.Android.AppCompat.Platform.RendererProperty);
                    }
                }
            }

            base.Dispose(disposing);
        }
Beispiel #6
0
        protected override void Dispose(bool disposing)
        {
            if (_isDisposed)
            {
                return;
            }

            _isDisposed = true;

            if (disposing)
            {
                SetOnClickListener(null);
                SetOnTouchListener(null);
                RemoveOnAttachStateChangeListener(this);

                _accessibilityProvider?.Dispose();
                _tracker?.Dispose();

                if (Element != null)
                {
                    Element.PropertyChanged -= OnElementPropertyChanged;
                }
            }

            base.Dispose(disposing);
        }
        protected override void Dispose(bool disposing)
        {
            if (_isDisposed)
            {
                return;
            }

            _isDisposed = true;

            if (disposing)
            {
                SetOnClickListener(null);
                SetOnTouchListener(null);
                RemoveOnAttachStateChangeListener(this);

                _automationPropertiesProvider?.Dispose();
                _tracker?.Dispose();

                _backgroundTracker?.Dispose();

                if (Element != null)
                {
                    Element.PropertyChanged -= OnElementPropertyChanged;

                    if (Platform.GetRenderer(Element) == this)
                    {
                        Element.ClearValue(Platform.RendererProperty);
                    }
                }
            }

            base.Dispose(disposing);
        }
        protected override void Dispose(bool disposing)
        {
            if (disposing)
            {
                _disposed = true;
                if (element != null)
                {
                    element.SurfaceInvalidated -= Invalidate;
                    element.Gesture?.Clear();
                }

                OnFocusChangeListener = null;
                _tracker?.Dispose();
            }
            FreeBitmap();
            info = SkiaSharp.SKImageInfo.Empty;
            base.Dispose(disposing);
        }
Beispiel #9
0
        protected override void Dispose(bool disposing)
        {
            if (_disposed)
            {
                return;
            }
            _disposed = true;

            if (disposing)
            {
                _gestureManager?.Dispose();

                _visualElementTracker?.Dispose();
                _visualElementTracker = null;

                _visualElementPackager?.Dispose();
                _visualElementPackager = null;

                _defaultBackgroundDrawable?.Dispose();
                _defaultBackgroundDrawable = null;

                _backgroundGradientDrawable?.Dispose();
                _backgroundGradientDrawable = null;

                var count = ChildCount;
                for (var i = 0; i < count; i++)
                {
                    var child = GetChildAt(i);
                    child.Dispose();
                }

                if (Element != null)
                {
                    Element.PropertyChanged -= OnElementPropertyChanged;

                    if (Platform.Android.Platform.GetRenderer(Element) == this)
                    {
                        Element.ClearValue(Platform.Android.Platform.RendererProperty);
                    }
                }
            }

            base.Dispose(disposing);
        }
Beispiel #10
0
        protected override void Dispose(bool disposing)
        {
            if (_disposed)
            {
                return;
            }

            _disposed = true;

            if (disposing)
            {
                if (_element != null)
                {
                    _element.PropertyChanged -= OnElementPropertyChanged;
                }

                ImageElementManager.Dispose(this);
                BackgroundManager.Dispose(this);

                if (_visualElementTracker != null)
                {
                    _visualElementTracker.Dispose();
                    _visualElementTracker = null;
                }

                if (_visualElementRenderer != null)
                {
                    _visualElementRenderer.Dispose();
                    _visualElementRenderer = null;
                }

                if (_element != null)
                {
                    if (AppCompat.Platform.GetRenderer(_element) == this)
                    {
                        _element.ClearValue(AppCompat.Platform.RendererProperty);
                    }
                }
            }

            base.Dispose(disposing);
        }
Beispiel #11
0
        protected override void Dispose(bool disposing)
        {
            if (_disposed)
            {
                return;
            }

            _disposed = true;

            if (disposing)
            {
                if (Element != null)
                {
                    Element.PropertyChanged -= OnElementPropertyChanged;
                }

                BackgroundManager.Dispose(this);
                if (_visualElementTracker != null)
                {
                    _visualElementTracker.Dispose();
                    _visualElementTracker = null;
                }

                if (_visualElementRenderer != null)
                {
                    _visualElementRenderer.Dispose();
                    _visualElementRenderer = null;
                }

                _spannableString?.Dispose();

                if (Element != null)
                {
                    if (Platform.GetRenderer(Element) == this)
                    {
                        Element.ClearValue(Platform.RendererProperty);
                    }
                }
            }

            base.Dispose(disposing);
        }
        protected virtual void Dispose(bool disposing)
        {
            if (IsDisposed || !disposing)
            {
                return;
            }

            _flags |= VisualElementRendererFlags.Disposed;

            if (_tracker != null)
            {
                _tracker.Dispose();
                _tracker = null;
            }
            if (_packager != null)
            {
                _packager.Dispose();
                _packager = null;
            }
        }
Beispiel #13
0
        protected override void Dispose(bool disposing)
        {
            if (_disposed)
            {
                return;
            }

            _disposed = true;
            if (Interlocked.Decrement(ref _sharedPoolCount) == 0 && Forms.IsiOS12OrNewer)
            {
                _sharedPool = null;
            }

            if (disposing)
            {
                if (IsLoading)
                {
                    StopLoading();
                }

                Element.PropertyChanged             -= HandlePropertyChanged;
                WebView.EvalRequested               -= OnEvalRequested;
                WebView.EvaluateJavaScriptRequested -= OnEvaluateJavaScriptRequested;
                WebView.GoBackRequested             -= OnGoBackRequested;
                WebView.GoForwardRequested          -= OnGoForwardRequested;
                WebView.ReloadRequested             -= OnReloadRequested;

                Element?.ClearValue(Platform.RendererProperty);
                SetElement(null);

                _events?.Dispose();
                _tracker?.Dispose();
                _packager?.Dispose();

                _events  = null;
                _tracker = null;
                _events  = null;
            }

            base.Dispose(disposing);
        }
        protected override void Dispose(bool disposing)
        {
            if (disposing)
            {
                if (_packager == null)
                {
                    return;
                }

                SetElement(null);

                _packager.Dispose();
                _packager = null;

                _tracker.NativeControlUpdated -= OnNativeControlUpdated;
                _tracker.Dispose();
                _tracker = null;
            }

            base.Dispose(disposing);
        }
Beispiel #15
0
        protected override void Dispose(bool disposing)
        {
            if (disposing && !_disposed)
            {
                _disposed = true;
                if (_packager == null)
                {
                    return;
                }

                SetElement(null);

                _packager.Dispose();
                _packager = null;

                _tracker.Dispose();
                _tracker = null;
            }

            base.Dispose(disposing);
        }
Beispiel #16
0
        protected override void Dispose(bool disposing)
        {
            if (_disposed)
            {
                return;
            }

            _disposed = true;

            if (disposing)
            {
                _gestureManager?.Dispose();

                if (_visualElementTracker != null)
                {
                    _visualElementTracker.Dispose();
                    _visualElementTracker = null;
                }

                if (_visualElementPackager != null)
                {
                    _visualElementPackager.Dispose();
                    _visualElementPackager = null;
                }

                int count = ChildCount;
                for (var i = 0; i < count; i++)
                {
                    AView child = GetChildAt(i);
                    child.Dispose();
                }

                if (Element != null)
                {
                    Element.PropertyChanged -= OnElementPropertyChanged;
                }
            }

            base.Dispose(disposing);
        }
Beispiel #17
0
        protected override void Dispose(bool disposing)
        {
            if (disposing && !_disposed)
            {
                _disposed = true;

                if (_gestureListener != null)
                {
                    _gestureListener.Dispose();
                    _gestureListener = null;
                }

                if (_visualElementTracker != null)
                {
                    _visualElementTracker.Dispose();
                    _visualElementTracker = null;
                }

                if (_visualElementPackager != null)
                {
                    _visualElementPackager.Dispose();
                    _visualElementPackager = null;
                }

                int count = ChildCount;
                for (var i = 0; i < count; i++)
                {
                    AView child = GetChildAt(i);
                    child.Dispose();
                }

                if (Element != null)
                {
                    Element.PropertyChanged -= OnElementPropertyChanged;
                    UnsubscribeGestureRecognizers(Element);
                }
            }

            base.Dispose(disposing);
        }
        protected override void Dispose(bool disposing)
        {
            if (disposing && !_disposed)
            {
                _disposed = true;

                if (_tracker != null)
                {
                    _tracker.Dispose();
                    _tracker = null;
                }

                if (_detailLayout != null)
                {
                    _detailLayout.Dispose();
                    _detailLayout = null;
                }

                if (_masterLayout != null)
                {
                    _masterLayout.Dispose();
                    _masterLayout = null;
                }

                Device.Info.PropertyChanged -= DeviceInfoPropertyChanged;

                if (Element != null)
                {
                    MasterDetailPageController.BackButtonPressed -= OnBackButtonPressed;
                    Element.PropertyChanged -= HandlePropertyChanged;
                    Element.Appearing       -= MasterDetailPageAppearing;
                    Element.Disappearing    -= MasterDetailPageDisappearing;
                    Element.ClearValue(Android.Platform.RendererProperty);
                    Element = null;
                }
            }

            base.Dispose(disposing);
        }
Beispiel #19
0
        protected override void Dispose(bool disposing)
        {
            if (disposing)
            {
                if (IsLoading)
                {
                    StopLoading();
                }

                Element.PropertyChanged             -= HandlePropertyChanged;
                WebView.EvalRequested               -= OnEvalRequested;
                WebView.EvaluateJavaScriptRequested -= OnEvaluateJavaScriptRequested;
                WebView.GoBackRequested             -= OnGoBackRequested;
                WebView.GoForwardRequested          -= OnGoForwardRequested;
                WebView.ReloadRequested             -= OnReloadRequested;

                _tracker?.Dispose();
                _packager?.Dispose();
            }

            base.Dispose(disposing);
        }
 protected override void Dispose(bool disposing)
 {
     if (_disposed)
     {
         return;
     }
     _disposed = true;
     if (disposing)
     {
         if (Element != null)
         {
             PageController.SendDisappearing();
             Element.PropertyChanged -= HandlePropertyChanged;
             if (MasterDetailPage?.Master != null)
             {
                 MasterDetailPage.Master.PropertyChanged -= HandleMasterPropertyChanged;
             }
             Element = null;
         }
         if (_tracker != null)
         {
             _tracker.Dispose();
             _tracker = null;
         }
         if (_events != null)
         {
             _events.Dispose();
             _events = null;
         }
         if (_masterController != null)
         {
             _masterController.WillAppear    -= MasterControllerWillAppear;
             _masterController.WillDisappear -= MasterControllerWillDisappear;
         }
         ClearControllers();
     }
     base.Dispose(disposing);
 }
        protected override void Dispose(bool disposing)
        {
            if (disposing && !_disposed)
            {
                Element.SizeChanged     -= PageOnSizeChanged;
                Element.PropertyChanged -= HandlePropertyChanged;

                if (_tracker != null)
                {
                    _tracker.Dispose();
                    _tracker = null;
                }

                if (_events != null)
                {
                    _events.Dispose();
                    _events = null;
                }


                if (_panGesture != null)
                {
                    if (View != null && View.GestureRecognizers.Contains(_panGesture))
                    {
                        View.RemoveGestureRecognizer(_panGesture);
                    }
                    _panGesture.Dispose();
                }

                EmptyContainers();

                PageController.SendDisappearing();

                _disposed = true;
            }

            base.Dispose(disposing);
        }
        protected override void Dispose(bool disposing)
        {
            if (disposing && !_disposed)
            {
                Element.PropertyChanged -= OnHandlePropertyChanged;
                Platform.SetRenderer(Element, null);
                if (_appeared)
                {
                    Page.SendDisappearing();
                }

                _appeared = false;

                if (_events != null)
                {
                    _events.Dispose();
                    _events = null;
                }

                if (Packager != null)
                {
                    Packager.Dispose();
                    Packager = null;
                }

                if (_tracker != null)
                {
                    _tracker.Dispose();
                    _tracker = null;
                }

                Element   = null;
                _disposed = true;
            }

            base.Dispose(disposing);
        }
Beispiel #23
0
        protected override void Dispose(bool disposing)
        {
            if ((_flags & VisualElementRendererFlags.Disposed) != 0)
            {
                return;
            }
            _flags |= VisualElementRendererFlags.Disposed;

            if (disposing)
            {
                if (_events != null)
                {
                    _events.Dispose();
                    _events = null;
                }
                if (_tracker != null)
                {
                    _tracker.Dispose();
                    _tracker = null;
                }
                if (_packager != null)
                {
                    _packager.Dispose();
                    _packager = null;
                }

                // The ListView can create renderers and unhook them from the Element before Dispose is called in CalculateHeightForCell.
                // Thus, it is possible that this work is already completed.
                if (Element != null)
                {
                    Element.ClearValue(Platform.RendererProperty);
                    SetElement(null);
                }
            }
            base.Dispose(disposing);
        }