diff --git a/app/src/main/java/com/gamedog/vididin/main/fragments/home/fragment/HomeItemFragment.kt b/app/src/main/java/com/gamedog/vididin/main/fragments/home/fragment/HomeItemFragment.kt index 1a555e5..ba4fc5b 100644 --- a/app/src/main/java/com/gamedog/vididin/main/fragments/home/fragment/HomeItemFragment.kt +++ b/app/src/main/java/com/gamedog/vididin/main/fragments/home/fragment/HomeItemFragment.kt @@ -3,7 +3,12 @@ package com.gamedog.vididin.main.fragments.home.fragment import android.os.Bundle import android.view.LayoutInflater +import android.view.View import android.view.ViewGroup +import android.view.animation.AlphaAnimation +import android.view.animation.Animation +import android.view.animation.AnimationSet +import android.view.animation.ScaleAnimation import androidx.annotation.NonNull import com.ama.core.architecture.appBase.AppViewsEmptyViewModelFragment import com.ama.core.common.widget.PopMenuIconView @@ -23,6 +28,7 @@ class HomeItemFragment : AppViewsEmptyViewModelFragment() { private var mIsStared = false private var mPlayer: YouTubePlayer? = null private var mVideoData: YoutubeVideo? = null + private var mIsPlaying: Boolean = false override fun inflateViewBinding( @@ -32,13 +38,12 @@ class HomeItemFragment : AppViewsEmptyViewModelFragment() { override fun ViewBinding.initViews() { - tvPlay.setOnClickListener { - mPlayer?.play() + maskView.setOnClickListener { + if (mIsPlaying) mPlayer?.pause() else mPlayer?.play() } - tvPause.setOnClickListener { - mPlayer?.pause() - //mPlayer.seekTo() - mPlayer?.setPlaybackRate(PlayerConstants.PlaybackRate.RATE_2) + + playIcon.setOnClickListener { + if (mIsPlaying) mPlayer?.pause() else mPlayer?.play() } tvVideoFrom.text = "@From-" + arguments?.getLong(KEY_ID).toString() @@ -172,7 +177,6 @@ class HomeItemFragment : AppViewsEmptyViewModelFragment() { val playerView = mPlayerView playerView!!.addYouTubePlayerListener(object : AbstractYouTubePlayerListener() { - override fun onReady(@NonNull youTubePlayer: YouTubePlayer) { mPlayer = youTubePlayer @@ -193,19 +197,100 @@ class HomeItemFragment : AppViewsEmptyViewModelFragment() { state: PlayerConstants.PlayerState ) { when (state) { - PlayerConstants.PlayerState.UNKNOWN -> { } - PlayerConstants.PlayerState.UNSTARTED -> { } - PlayerConstants.PlayerState.ENDED -> { } - PlayerConstants.PlayerState.PLAYING -> { } - PlayerConstants.PlayerState.PAUSED -> { } - PlayerConstants.PlayerState.BUFFERING -> { } - PlayerConstants.PlayerState.VIDEO_CUED -> { } + PlayerConstants.PlayerState.PLAYING -> { + mIsPlaying = true + hidePlayIconAnim() + } + PlayerConstants.PlayerState.PAUSED -> { + mIsPlaying = false + showPlayIconAnim() + } + PlayerConstants.PlayerState.UNKNOWN -> { + mIsPlaying = false + } + PlayerConstants.PlayerState.UNSTARTED -> { + mIsPlaying = false + } + PlayerConstants.PlayerState.ENDED -> { + mIsPlaying = false + showPlayIconAnim() + } + PlayerConstants.PlayerState.BUFFERING -> { + mIsPlaying = false + } + PlayerConstants.PlayerState.VIDEO_CUED -> { + mIsPlaying = false + } } } }) } + private fun hidePlayIconAnim() { + with (binding?.playIcon!!) { + val animationSet = AnimationSet(true) + animationSet.duration = 250 + val alphaAnimation = AlphaAnimation(1.0f, 0.5f) + val scaleAnimation = ScaleAnimation( + 1.0f, 0.5f, + 1.0f, 0.5f, + Animation.RELATIVE_TO_SELF, 0.5f, + Animation.RELATIVE_TO_SELF, 0.5f + ) + animationSet.addAnimation(alphaAnimation) + animationSet.addAnimation(scaleAnimation) + + animationSet.setAnimationListener(object : Animation.AnimationListener { + override fun onAnimationStart(animation: Animation) { + } + + override fun onAnimationEnd(animation: Animation) { + visibility = View.GONE + } + + override fun onAnimationRepeat(animation: Animation) { + } + }) + + startAnimation(animationSet) + } + } + + private fun showPlayIconAnim() { + with (binding?.playIcon!!) { + visibility = View.VISIBLE + + val animationSet = AnimationSet(true) + animationSet.duration = 250 + val alphaAnimation = AlphaAnimation(0.5f, 1.0f) + val scaleAnimation = ScaleAnimation( + 0.5f, 1.0f, + 0.5f, 1.0f, + Animation.RELATIVE_TO_SELF, 0.5f, + Animation.RELATIVE_TO_SELF, 0.5f + ) + animationSet.addAnimation(alphaAnimation) + animationSet.addAnimation(scaleAnimation) + + animationSet.setAnimationListener(object : Animation.AnimationListener { + override fun onAnimationStart(animation: Animation) { + } + + override fun onAnimationEnd(animation: Animation) { + + } + + override fun onAnimationRepeat(animation: Animation) { + } + }) + + startAnimation(animationSet) + } + } + + + companion object { private const val KEY_ID = "id" diff --git a/app/src/main/res/layout/vididinapp_feature_home_item_layout.xml b/app/src/main/res/layout/vididinapp_feature_home_item_layout.xml index fdf0752..519f9a6 100644 --- a/app/src/main/res/layout/vididinapp_feature_home_item_layout.xml +++ b/app/src/main/res/layout/vididinapp_feature_home_item_layout.xml @@ -21,12 +21,21 @@ android:id="@+id/mask_view" android:layout_width="match_parent" android:layout_height="match_parent" - android:background="#33FF0000" android:clickable="true" /> - + + + +