using System; using Xamarin.Forms; namespace Bit.App.Controls { public class ExtendedToolbarItem : ToolbarItem { public bool UseOriginalImage { get; set; } // HACK: For the issue of correctly updating the avatar toolbar item color on iOS // we need to subscribe to the PropertyChanged event of the ToolbarItem on the CustomNavigationRenderer // The problem is that there are a lot of private places where the navigation renderer disposes objects // that we don't have access to, and that we should in order to properly prevent memory leaks // So as a hack solution we have this OnAppearing/OnDisappearing actions and methods to be called on page lifecycle // to subscribe/unsubscribe indirectly on the CustomNavigationRenderer public Action OnAppearingAction { get; set; } public Action OnDisappearingAction { get; set; } public void OnAppearing() { OnAppearingAction?.Invoke(); } public void OnDisappearing() { OnDisappearingAction?.Invoke(); } } }