// 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; }
// 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; }
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); }
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; }
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; }
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); }
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); }
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; }
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; }
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); }
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); }
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); }
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); }
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; }
public override void OnDestroy() { if (view != null) { view.ViewHandler = null; } if (currentBuiltView != null) { currentBuiltView?.Dispose(); currentBuiltView = null; } base.OnDestroy(); this.Dispose(); }
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; } }
public override void OnDestroy() { PerformDismiss(false); if (HView != null) { HView.ViewHandler = null; } if (currentBuiltView != null) { currentBuiltView?.Dispose(); currentBuiltView = null; } base.OnDestroy(); this.Dispose(); }
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; } }
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); }
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 (_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); }
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); }
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); }
// 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); }