void UpdateRotaryFocusObject(bool initialize) { if (initialize) { _currentRotaryFocusObject = Element.RotaryFocusObject; } else { DeactivateRotaryWidget(); _currentRotaryFocusObject = Element.RotaryFocusObject; ActivateRotaryWidget(); } }
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); }
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);