void UpdateRotaryFocusObject(bool initialize)
 {
     if (initialize)
     {
         _currentRotaryFocusObject = Element.RotaryFocusObject;
     }
     else
     {
         DeactivateRotaryWidget();
         _currentRotaryFocusObject = Element.RotaryFocusObject;
         ActivateRotaryWidget();
     }
 }
Пример #2
0
        IRotaryActionWidget GetRotaryWidget(IRotaryFocusable focusable)
        {
            IRotaryActionWidget rotaryWidget = null;

            if (focusable is BindableObject consumer)
            {
                if (consumer is CircleSurfaceItem circleSlider)
                {
                    rotaryWidget = GetCircleWidget(circleSlider) as IRotaryActionWidget;
                }
                else
                {
                    rotaryWidget = Platform.GetRenderer(consumer)?.NativeView as IRotaryActionWidget;
                }
            }
            return(rotaryWidget);
        }
 void DeativateRotaryFocusable(IRotaryFocusable focusable)
 {
     if (focusable is IRotaryEventReceiver)
     {
         _rotaryReceiver             = null;
         RotaryEventManager.Rotated -= OnRotaryEventChanged;
     }
     else if (focusable is IRotaryFocusable)
     {
         var consumer = focusable as BindableObject;
         if (consumer != null)
         {
             var renderer = Xamarin.Forms.Platform.Tizen.Platform.GetRenderer(consumer);
             (renderer?.NativeView as IRotaryActionWidget)?.Deactivate();
         }
     }
 }
        IRotaryActionWidget GetRotaryWidget(IRotaryFocusable focusable)
        {
            var consumer = focusable as BindableObject;
            IRotaryActionWidget rotaryWidget = null;

            if (consumer != null)
            {
                if (consumer is CircleSliderSurfaceItem)
                {
                    ICircleSurfaceItem item = consumer as ICircleSurfaceItem;
                    rotaryWidget = GetCircleWidget(item) as IRotaryActionWidget;
                }
                else
                {
                    var consumerRenderer = Xamarin.Forms.Platform.Tizen.Platform.GetRenderer(consumer);
                    rotaryWidget = consumerRenderer?.NativeView as IRotaryActionWidget;
                }
            }
            return(rotaryWidget);
        }
Пример #5
0
        void DeativateRotaryFocusable(IRotaryFocusable focusable)
        {
            var consumer = focusable as BindableObject;

            if (consumer != null)
            {
                var nview = Platform.GetRenderer(consumer)?.NativeView;
                if (nview == null)
                {
                    return;
                }
                if (nview is IRotaryEventReceiver)
                {
                    _rotaryReceiver             = null;
                    RotaryEventManager.Rotated -= OnRotaryEventChanged;
                }
                else
                {
                    (nview as IRotaryActionWidget).Deactivate();
                }
            }
        }
 public static void SetRotaryFocusObject(BindableObject obj, IRotaryFocusable focusable) => obj.SetValue(RotaryFocusObjectProperty, focusable);