Package com.castlabs.sdk.playerui

# Class DefaultVisibilityController

java.lang.Object
com.castlabs.sdk.playerui.DefaultVisibilityController

All Implemented Interfaces:
  `VisibilityController`

public class DefaultVisibilityController extends Object implements VisibilityController
Default implementation of the `VisibilityController` that enabled animation and auto hiding.

Since:
  4.0.0

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `DefaultVisibilityController(View view)`
  Create a new instance of this controller with the view that will be controlled by it.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `int`
  `getAutoHideDelayMs()`
  Returns the delay in milliseconds when the controller should auto-hide a view.
  `void`
  `hide(boolean userInteraction)`
  Called when the controlled view should be made invisibl
  `void`
  `interactionStarted()`
  Call this method when the user starts interacting with the view under control.
  `void`
  `interactionStopped()`
  Call this method when the user stopped interacting with the component under control.
  `boolean`
  `isAutoHideEnabled()`
  Returns whether auto hiding is enabled or not.
  `boolean`
  `isVisible()`
  Returns whether the view is currently visible or about to become visible.
  `void`
  `setAnimationDurationMs(int animationDurationMs)`
  Set the animation duration in milliseconds
  `void`
  `setAnimationEnabled(boolean animationEnabled)`
  Enable animation
  `void`
  `setAutoHideDelayMs(int autoHideDelayMs)`
  Set the delay in milliseconds when the controller should auto-hide a view.
  `void`
  `setAutoHideEnabled(boolean autoHideEnabled)`
  Enable or disable auto hiding
  `void`
  `setHideAnimator(ObjectAnimator hideAnimator)`
  Set the hide animator that will be used to hide the controlled view.
  `void`
  `setViewPosition(int viewPosition)`
  Set the position of the controlled view relative to its parent.
  `void`
  `show(boolean userInteraction)`
  Called when the controlled view should be made visible

  ### Methods inherited from class java.lang.Object

  `equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### DefaultVisibilityController

    public DefaultVisibilityController(View view)
    Create a new instance of this controller with the view that will be controlled by it. Animation will be enabled and the assumption is that the view position is at the bottom of the parent component.

    Auto hiding will also be enabled by default.

    Parameters:
      `view` - The view

- ## Method Details

  - ### setHideAnimator

    public void setHideAnimator(ObjectAnimator hideAnimator)
    Set the hide animator that will be used to hide the controlled view. Showing will be animated by reversing the animator
    Parameters:
      `hideAnimator` - The animator

  - ### setAnimationEnabled

    public void setAnimationEnabled(boolean animationEnabled)
    Enable animation
    Parameters:
      `animationEnabled` - Enable or disable animation

  - ### setAnimationDurationMs

    public void setAnimationDurationMs(int animationDurationMs)
    Set the animation duration in milliseconds
    Parameters:
      `animationDurationMs` - The animation duration

  - ### getAutoHideDelayMs

    public int getAutoHideDelayMs()
    Returns the delay in milliseconds when the controller should auto-hide a view.
    Returns:
      delayMs The delay in milliseconds when the controller should auto-hide a view

  - ### setAutoHideDelayMs

    public void setAutoHideDelayMs(int autoHideDelayMs)
    Set the delay in milliseconds when the controller should auto-hide a view. Calling this method will reset the ongoing inner timer to hide the controls.
    Parameters:
      `autoHideDelayMs` - The delay in milliseconds

  - ### isAutoHideEnabled

    public boolean isAutoHideEnabled()
    Returns whether auto hiding is enabled or not.
    Returns:
      True if auto hiding is enable

  - ### setAutoHideEnabled

    public void setAutoHideEnabled(boolean autoHideEnabled)
    Enable or disable auto hiding
    Parameters:
      `autoHideEnabled` - Enable or disable auto hiding

  - ### setViewPosition

    public void setViewPosition(int viewPosition)
    Set the position of the controlled view relative to its parent. This currently supports `Gravity.TOP` and `Gravity.BOTTOM` and is used to create the default move in and out animation
    Parameters:
      `viewPosition` - The view position

  - ### show

    public void show(boolean userInteraction)
    Description copied from interface: `VisibilityController`
    Called when the controlled view should be made visible
    Specified by:
      `show` in interface `VisibilityController`
    Parameters:
      `userInteraction` - Indicates that the call was due to a user interaction

  - ### hide

    public void hide(boolean userInteraction)
    Description copied from interface: `VisibilityController`
    Called when the controlled view should be made invisibl
    Specified by:
      `hide` in interface `VisibilityController`
    Parameters:
      `userInteraction` - Indicates that the call was due to a user interaction

  - ### isVisible

    public boolean isVisible()
    Description copied from interface: `VisibilityController`
    Returns whether the view is currently visible or about to become visible.
    Specified by:
      `isVisible` in interface `VisibilityController`
    Returns:
      True if the view is visible or about to become visible, i.e. an animation is running that will make the view visible when finished

  - ### interactionStarted

    public void interactionStarted()
    Description copied from interface: `VisibilityController`
    Call this method when the user starts interacting with the view under control. This should disable for example any auto-hiding function.
    Specified by:
      `interactionStarted` in interface `VisibilityController`

  - ### interactionStopped

    public void interactionStopped()
    Description copied from interface: `VisibilityController`
    Call this method when the user stopped interacting with the component under control.
    Specified by:
      `interactionStopped` in interface `VisibilityController`