protected override void SetValueImpl(object target, object value)
        {
            var   button       = target as ImageButton;
            bool  showSubTasks = (bool)value;
            float degree       = showSubTasks
                ? Degree180
                : MinusDegree180;

            if (button.Rotation == degree)
            {
                return;
            }

            if (button.Rotation == 0 && !showSubTasks)
            {
                return;
            }

            if (!AndroidUtils.IsViewVisibleOnScreen(AndroidGlobals.ApplicationContext, button))
            {
                button.Rotation = degree;
                return;
            }

            button.Animate().RotationBy(degree).SetDuration(250).Start();
        }