Ejemplo n.º 1
0
        // Use OnDestroy instead of OnDestroyView because OnDestroyView will be
        // called before the animation completes. This causes tons of tiny issues.
        public override void OnDestroy()
        {
            base.OnDestroy();

            if (_rootView != null)
            {
                UnhookEvents();

                var adapter = _viewPager.Adapter;
                _viewPager.Adapter = null;
                adapter.Dispose();

                _toolbarAppearanceTracker.Dispose();
                _tabLayoutAppearanceTracker.Dispose();
                _viewPager.RemoveOnPageChangeListener(this);
                _rootView.Dispose();
                _toolbarTracker.Dispose();

                _tablayout.Dispose();
                _toolbar.Dispose();
                _viewPager.Dispose();
                _rootView.Dispose();
            }

            _toolbarAppearanceTracker   = null;
            _tabLayoutAppearanceTracker = null;
            _toolbarTracker             = null;
            _toolbar   = null;
            _tablayout = null;
            _rootView  = null;
            _viewPager = null;
        }
Ejemplo n.º 2
0
        // Use OnDestroy instead of OnDestroyView because OnDestroyView will be
        // called before the animation completes. This causes tons of tiny issues.
        public override void OnDestroy()
        {
            base.OnDestroy();

            _shellPageContainer.RemoveAllViews();
            _renderer?.Dispose();
            _root?.Dispose();
            _toolbarTracker.Dispose();
            _appearanceTracker.Dispose();

            ((IShellController)_shellContext.Shell).RemoveAppearanceObserver(this);

            if (_shellContent != null)
            {
                ((IShellContentController)_shellContent).RecyclePage(_page);
                _page.ClearValue(Platform.RendererProperty);
                _page = null;
            }

            _appearanceTracker = null;
            _toolbar           = null;
            _toolbarTracker    = null;
            _root     = null;
            _renderer = null;
        }
Ejemplo n.º 3
0
            protected override void Dispose(bool disposing)
            {
                if (_disposed)
                {
                    return;
                }

                if (disposing)
                {
                    RemoveAllViews();
                    if (_renderer != null)
                    {
                        _renderer.Dispose();
                        _renderer = null;
                        _modal.ClearValue(Android.Platform.RendererProperty);
                        _modal.PropertyChanged -= OnModalPagePropertyChanged;
                        _modal = null;
                    }

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

                _disposed = true;
                base.Dispose(disposing);
            }
Ejemplo n.º 4
0
        void Destroy()
        {
            ((IShellController)_shellContext.Shell).RemoveAppearanceObserver(this);

            if (_shellContent != null)
            {
                ((IShellContentController)_shellContent).RecyclePage(_page);
                _page.Handler = null;
            }

            if (_shellPageContainer != null)
            {
                _shellPageContainer.RemoveAllViews();

                if (_root is ViewGroup vg)
                {
                    vg.RemoveView(_shellPageContainer);
                }

                _shellPageContainer.Dispose();
            }

            _root?.Dispose();
            _toolbarTracker?.Dispose();
            _appearanceTracker?.Dispose();


            _appearanceTracker = null;
            _toolbarTracker    = null;
            _toolbar           = null;
            _root               = null;
            _viewhandler        = null;
            _shellContent       = null;
            _shellPageContainer = null;
        }
Ejemplo n.º 5
0
        void Destroy()
        {
            ((IShellController)_shellContext.Shell).RemoveAppearanceObserver(this);

            if (_shellContent != null)
            {
                ((IShellContentController)_shellContent).RecyclePage(_page);
                _page.ClearValue(AppCompat.Platform.RendererProperty);
                _page = null;
            }

            if (_shellPageContainer != null)
            {
                _shellPageContainer.RemoveAllViews();

                if (_root is ViewGroup vg)
                {
                    vg.RemoveView(_shellPageContainer);
                }
            }

            _renderer?.Dispose();
            _root?.Dispose();
            _toolbarTracker?.Dispose();
            _appearanceTracker?.Dispose();


            _appearanceTracker = null;
            _toolbarTracker    = null;
            _toolbar           = null;
            _root         = null;
            _renderer     = null;
            _shellContent = null;
        }
Ejemplo n.º 6
0
        protected override void Dispose(bool disposing)
        {
            if (_disposed)
            {
                return;
            }

            _disposed = true;

            if (disposing)
            {
                CloseContextActions();

                MessagingCenter.Unsubscribe <ListViewAdapter>(this, Platform.CloseContextActionsSignalName);

                _realListView.OnItemClickListener     = null;
                _realListView.OnItemLongClickListener = null;

                var templatedItems = TemplatedItemsView.TemplatedItems;
                templatedItems.CollectionChanged        -= OnCollectionChanged;
                templatedItems.GroupedCollectionChanged -= OnGroupedCollectionChanged;
                _listView.ItemSelected -= OnItemSelected;

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

                DisposeCells();
            }

            base.Dispose(disposing);
        }
Ejemplo n.º 7
0
        protected override void Dispose(bool disposing)
        {
            if (disposing)
            {
                CloseContextAction();

                var platform = _listView.Platform;
                if (platform.GetType() == typeof(AppCompat.Platform))
                {
                    MessagingCenter.Unsubscribe <AppCompat.Platform>(this, Platform.CloseContextActionsSignalName);
                }
                else
                {
                    MessagingCenter.Unsubscribe <Platform>(this, Platform.CloseContextActionsSignalName);
                }

                _realListView.OnItemClickListener     = null;
                _realListView.OnItemLongClickListener = null;

                var templatedItems = TemplatedItemsView.TemplatedItems;
                templatedItems.CollectionChanged        -= OnCollectionChanged;
                templatedItems.GroupedCollectionChanged -= OnGroupedCollectionChanged;
                _listView.ItemSelected -= OnItemSelected;

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

            base.Dispose(disposing);
        }
Ejemplo n.º 8
0
        void Destroy()
        {
            if (ShellItem != null)
            {
                UnhookEvents(ShellItem);
            }

            ((IShellController)ShellContext?.Shell)?.RemoveAppearanceObserver(this);

            if (_bottomSheetDialog != null)
            {
                _bottomSheetDialog.DismissEvent -= OnMoreSheetDismissed;
                _bottomSheetDialog?.Dispose();
                _bottomSheetDialog = null;
            }

            _navigationArea?.Dispose();
            _appearanceTracker?.Dispose();
            _outerLayout?.Dispose();

            if (_bottomView != null)
            {
                _bottomView?.SetOnNavigationItemSelectedListener(null);
                _bottomView?.Background?.Dispose();
                _bottomView?.Dispose();
            }

            _bottomView        = null;
            _navigationArea    = null;
            _appearanceTracker = null;
            _outerLayout       = null;
        }
Ejemplo n.º 9
0
        void Destroy()
        {
            if (_rootView != null)
            {
                UnhookEvents();

                _viewPager.RemoveOnPageChangeListener(this);
                var adapter = _viewPager.Adapter;
                _viewPager.Adapter = null;
                adapter.Dispose();

                _tablayout.LayoutChange -= OnTabLayoutChange;
                _toolbarAppearanceTracker.Dispose();
                _tabLayoutAppearanceTracker.Dispose();
                _toolbarTracker.Dispose();
                _tablayout.Dispose();
                _toolbar.Dispose();
                _viewPager.Dispose();
                _rootView.Dispose();
            }

            _toolbarAppearanceTracker   = null;
            _tabLayoutAppearanceTracker = null;
            _toolbarTracker             = null;
            _tablayout = null;
            _toolbar   = null;
            _viewPager = null;
            _rootView  = null;
        }
Ejemplo n.º 10
0
        protected override void Dispose(bool disposing)
        {
            if (CheckFlagsForDisposed())
            {
                return;
            }

            _flags |= VisualElementRendererFlags.Disposed;

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

                EffectUtilities.UnregisterEffectControlProvider(this, Element);

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

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

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

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

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

                    if (Platform.GetRenderer(Element) == this)
                    {
                        Platform.SetRenderer(Element, null);
                    }

                    Element = null;
                }
            }

            base.Dispose(disposing);
        }
Ejemplo n.º 11
0
        protected override void Dispose(bool disposing)
        {
            if (_disposed)
            {
                return;
            }

            _disposed = true;

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

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

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

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

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

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

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

            base.Dispose(disposing);
        }
Ejemplo n.º 12
0
        protected override void Dispose(bool disposing)
        {
            if (_disposed)
            {
                return;
            }

            _disposed = true;

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

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

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

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

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

                while (ChildCount > 0)
                {
                    AView child = GetChildAt(0);
                    child.RemoveFromParent();
                    child.Dispose();
                }

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

            base.Dispose(disposing);
        }
Ejemplo n.º 13
0
        protected override void Dispose(bool disposing)
        {
            if ((_flags & VisualElementRendererFlags.Disposed) != 0)
            {
                return;
            }
            _flags |= VisualElementRendererFlags.Disposed;

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

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

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

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

                RemoveAllViews();

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

                    if (Platform.GetRenderer(Element) == this)
                    {
                        Platform.SetRenderer(Element, null);
                    }

                    Element = null;
                }
            }

            base.Dispose(disposing);
        }
Ejemplo n.º 14
0
        protected override void OnDetached()
        {
            if (effect?.Element == null)
            {
                return;
            }

            try
            {
                if (accessibilityManager != null)
                {
                    accessibilityManager.RemoveAccessibilityStateChangeListener(accessibilityListener);
                    accessibilityManager.RemoveTouchExplorationStateChangeListener(accessibilityListener);
                    accessibilityListener.Dispose();
                    accessibilityManager  = null;
                    accessibilityListener = null;
                }

                if (View != null)
                {
                    View.LayoutChange -= OnLayoutChange;
                    View.Touch        -= OnTouch;
                    View.Click        -= OnClick;

                    if (Build.VERSION.SdkInt >= BuildVersionCodes.M && View.Foreground == ripple)
                    {
                        View.Foreground = null;
                    }
                }

                effect.Element = null;
                effect         = null;

                if (rippleView != null)
                {
                    rippleView.Pressed    = false;
                    rippleView.Background = null;
                    Group?.RemoveView(rippleView);
                    rippleView.Dispose();
                    rippleView = null;
                }

                ripple?.Dispose();
                ripple = null;
            }
            catch (ObjectDisposedException)
            {
                // Suppress exception
            }
            isHoverSupported = false;
        }
Ejemplo n.º 15
0
 public override void OnDestroy()
 {
     if (view != null)
     {
         view.ViewHandler = null;
     }
     if (currentBuiltView != null)
     {
         currentBuiltView?.Dispose();
         currentBuiltView = null;
     }
     base.OnDestroy();
     this.Dispose();
 }
Ejemplo n.º 16
0
        void ClearCell(AView view)
        {
            var body = view.FindViewById <LinearLayout>(Resource.Id.ContentCellBody);

            if (body != null)
            {
                var border     = view.FindViewById(Resource.Id.ContentCellBorder);
                var nativeCell = body.GetChildAt(0);
                nativeCell.Dispose();
                border.Dispose();
                body.Dispose();
                view.Dispose();
                return;
            }

            var headerText = view.FindViewById <TextView>(Resource.Id.HeaderCellText);

            if (headerText != null)
            {
                var border = view.FindViewById <LinearLayout>(Resource.Id.HeaderCellBorder);
                headerText.Dispose();
                border?.Dispose();
                view.Dispose();
                return;
            }

            var footerText = view.FindViewById <TextView>(Resource.Id.FooterCellText);

            if (footerText != null)
            {
                footerText.Dispose();
                footerText = null;
                view.Dispose();
                return;
            }
        }
Ejemplo n.º 17
0
 public override void OnDestroy()
 {
     PerformDismiss(false);
     if (HView != null)
     {
         HView.ViewHandler = null;
     }
     if (currentBuiltView != null)
     {
         currentBuiltView?.Dispose();
         currentBuiltView = null;
     }
     base.OnDestroy();
     this.Dispose();
 }
Ejemplo n.º 18
0
        protected override void Dispose(bool disposing)
        {
            base.Dispose(disposing);

            if (disposing && !_disposed)
            {
                _disposed = true;

                ((IShellController)_shellContext.Shell).StructureChanged -= OnShellStructureChanged;
                _lookupTable.Clear();
                _headerView.Dispose();
                _headerView   = null;
                _shellContext = null;
            }
        }
Ejemplo n.º 19
0
        protected override void Dispose(bool disposing)
        {
            if (_isDisposed)
            {
                return;
            }

            _isDisposed = true;

            if (disposing)
            {
                while (ChildCount > 0)
                {
                    AView child = GetChildAt(0);
                    child.RemoveFromParent();
                    child.Dispose();
                }
            }

            base.Dispose(disposing);
        }
Ejemplo n.º 20
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);
        }
Ejemplo n.º 21
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);
        }
Ejemplo n.º 22
0
        protected override void Dispose(bool disposing)
        {
            if (disposing)
            {
                CloseContextAction();
                MessagingCenter.Unsubscribe <Platform>(this, Platform.CloseContextActionsSignalName);
                _realListView.OnItemClickListener     = null;
                _realListView.OnItemLongClickListener = null;

                _listView.TemplatedItems.CollectionChanged        -= OnCollectionChanged;
                _listView.TemplatedItems.GroupedCollectionChanged -= OnGroupedCollectionChanged;
                _listView.ItemSelected -= OnItemSelected;

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

            base.Dispose(disposing);
        }
Ejemplo n.º 23
0
            protected override void Dispose(bool disposing)
            {
                if (disposing && !_disposed)
                {
                    _disposed = true;
                    RemoveAllViews();
                    if (_renderer != null)
                    {
                        _renderer.Dispose();
                        _renderer = null;
                        _modal.ClearValue(Android.Platform.RendererProperty);
                        _modal = null;
                    }

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

                base.Dispose(disposing);
            }
Ejemplo n.º 24
0
        // Use OnDestory become OnDestroyView may fire before events are completed.
        public override void OnDestroy()
        {
            UnhookEvents(ShellItem);
            if (_bottomView != null)
            {
                _bottomView?.SetOnNavigationItemSelectedListener(null);
                _bottomView?.Background?.Dispose();
                _bottomView?.Dispose();
                _bottomView = null;

                _navigationArea?.Dispose();
                _navigationArea = null;

                _appearanceTracker?.Dispose();
                _appearanceTracker = null;

                _outerLayout?.Dispose();
                _outerLayout = null;
            }

            ((IShellController)ShellContext.Shell).RemoveAppearanceObserver(this);

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

            if (disposing)
            {
                if (Tracker != null)
                {
                    Tracker.Dispose();
                    Tracker = null;
                }

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

                if (_scaleDetector != null && _scaleDetector.IsValueCreated)
                {
                    _scaleDetector.Value.Dispose();
                    _scaleDetector = null;
                }

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

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

                RemoveAllViews();

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

                    if (Platform.GetRenderer(Element) == this)
                    {
                        Platform.SetRenderer(Element, null);
                    }

                    Element = null;
                }
            }

            base.Dispose(disposing);
        }