class ObserveVisibleMediaController(context: Context) : MediaController(context) { override fun show() { super.show() onVisibleChangeListener?.onShow() } override fun hide() { super.hide() onVisibleChangeListener?.onHide() } var onVisibleChangeListener: OnVisibleChangeListener? = null interface OnVisibleChangeListener { fun onShow() fun onHide() } }
val mediaController = ObserveVisibleMediaController(this) mediaController.onVisibleChangeListener = object : ObserveVisibleMediaController.OnVisibleChangeListener { override fun onShow() { dataBinding.clTopActions.visibility = View.VISIBLE } override fun onHide() { dataBinding.clTopActions.visibility = View.GONE } }