exoplayer bug and close fragment working

This commit is contained in:
Farbod 2021-12-13 00:17:55 +04:00
parent 64de3dd54d
commit cd31734d9a
3 changed files with 29 additions and 9 deletions

View File

@ -1,18 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<project version="4"> <project version="4">
<component name="deploymentTargetDropDown"> <component name="deploymentTargetDropDown">
<runningDeviceTargetSelectedWithDropDown> <targetSelectedWithDropDown>
<Target> <Target>
<type value="RUNNING_DEVICE_TARGET" /> <type value="QUICK_BOOT_TARGET" />
<deviceKey> <deviceKey>
<Key> <Key>
<type value="SERIAL_NUMBER" /> <type value="VIRTUAL_DEVICE_PATH" />
<value value="3100ad43a3044300" /> <value value="$USER_HOME$/.android/avd/Pixel_5_API_22.avd" />
</Key> </Key>
</deviceKey> </deviceKey>
</Target> </Target>
</runningDeviceTargetSelectedWithDropDown> </targetSelectedWithDropDown>
<timeTargetWasSelectedWithDropDown value="2021-12-12T14:57:43.909907Z" /> <timeTargetWasSelectedWithDropDown value="2021-12-12T20:15:13.174164Z" />
<runningDeviceTargetsSelectedWithDialog> <runningDeviceTargetsSelectedWithDialog>
<Target> <Target>
<type value="RUNNING_DEVICE_TARGET" /> <type value="RUNNING_DEVICE_TARGET" />

View File

@ -5,6 +5,8 @@ import androidx.fragment.app.Fragment
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import android.widget.FrameLayout
import android.widget.ImageView
import android.widget.ProgressBar import android.widget.ProgressBar
import android.widget.TextView import android.widget.TextView
import androidx.constraintlayout.motion.widget.MotionLayout import androidx.constraintlayout.motion.widget.MotionLayout
@ -64,6 +66,8 @@ class PlayerFragment : Fragment() {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) { override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState) super.onViewCreated(view, savedInstanceState)
val mainActivity = activity as MainActivity
mainActivity.findViewById<FrameLayout>(R.id.container).visibility=View.VISIBLE
val playerMotionLayout = view.findViewById<SingleViewTouchableMotionLayout>(R.id.playerMotionLayout) val playerMotionLayout = view.findViewById<SingleViewTouchableMotionLayout>(R.id.playerMotionLayout)
motionLayout = playerMotionLayout motionLayout = playerMotionLayout
exoPlayerView = view.findViewById(R.id.player) exoPlayerView = view.findViewById(R.id.player)
@ -111,9 +115,21 @@ class PlayerFragment : Fragment() {
playerMotionLayout.progress=1.toFloat() playerMotionLayout.progress=1.toFloat()
playerMotionLayout.transitionToStart() playerMotionLayout.transitionToStart()
fetchJson(view) fetchJson(view)
view.findViewById<ImageView>(R.id.close_imageView).setOnClickListener{
println("wtf?")
val mainActivity = activity as MainActivity
mainActivity.supportFragmentManager.beginTransaction()
.remove(this)
.commit()
mainActivity.findViewById<FrameLayout>(R.id.container).layoutParams=ViewGroup.LayoutParams(0,0)
}
} }
override fun onStop() {
super.onStop()
exoPlayer.stop()
}
companion object { companion object {
/** /**
@ -140,6 +156,7 @@ class PlayerFragment : Fragment() {
exoPlayerView.player = exoPlayer exoPlayerView.player = exoPlayer
exoPlayer.setMediaItem(MediaItem.fromUri(url)) exoPlayer.setMediaItem(MediaItem.fromUri(url))
exoPlayer.prepare() exoPlayer.prepare()
exoPlayer.play()
} }
private fun fetchJson(view: View) { private fun fetchJson(view: View) {
@ -162,7 +179,7 @@ class PlayerFragment : Fragment() {
val videoInPlayer = gson.fromJson(body, VideoInPlayer::class.java) val videoInPlayer = gson.fromJson(body, VideoInPlayer::class.java)
runOnUiThread { runOnUiThread {
initPlayer(view,videoInPlayer.hls) initPlayer(view,videoInPlayer.hls)
view.findViewById<TextView>(R.id.title_textView).text = videoInPlayer.title
} }
} }

View File

@ -45,7 +45,10 @@ class TrendingAdapter(private val videoFeed: List<Video>): RecyclerView.Adapter<
frag.arguments = bundle frag.arguments = bundle
val activity = holder.v.context as AppCompatActivity val activity = holder.v.context as AppCompatActivity
activity.supportFragmentManager.beginTransaction() activity.supportFragmentManager.beginTransaction()
.add(R.id.container, frag) .remove(PlayerFragment())
.commit()
activity.supportFragmentManager.beginTransaction()
.replace(R.id.container, frag)
.commitNow() .commitNow()
} }
} }