mirror of
https://github.com/libre-tube/LibreTube.git
synced 2025-04-29 00:10:32 +05:30
related streams toggle
This commit is contained in:
parent
11484a55c9
commit
abb76d3ea5
@ -49,6 +49,7 @@ import com.github.libretube.dialogs.AddtoPlaylistDialog
|
|||||||
import com.github.libretube.dialogs.DownloadDialog
|
import com.github.libretube.dialogs.DownloadDialog
|
||||||
import com.github.libretube.dialogs.ShareDialog
|
import com.github.libretube.dialogs.ShareDialog
|
||||||
import com.github.libretube.hideKeyboard
|
import com.github.libretube.hideKeyboard
|
||||||
|
import com.github.libretube.obj.ChapterSegment
|
||||||
import com.github.libretube.obj.PipedStream
|
import com.github.libretube.obj.PipedStream
|
||||||
import com.github.libretube.obj.Segment
|
import com.github.libretube.obj.Segment
|
||||||
import com.github.libretube.obj.Segments
|
import com.github.libretube.obj.Segments
|
||||||
@ -80,6 +81,7 @@ import com.google.android.exoplayer2.upstream.DefaultDataSource
|
|||||||
import com.google.android.exoplayer2.upstream.DefaultHttpDataSource
|
import com.google.android.exoplayer2.upstream.DefaultHttpDataSource
|
||||||
import com.google.android.exoplayer2.util.RepeatModeUtil
|
import com.google.android.exoplayer2.util.RepeatModeUtil
|
||||||
import com.google.android.material.button.MaterialButton
|
import com.google.android.material.button.MaterialButton
|
||||||
|
import com.google.android.material.card.MaterialCardView
|
||||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||||
import com.squareup.picasso.Picasso
|
import com.squareup.picasso.Picasso
|
||||||
import java.io.IOException
|
import java.io.IOException
|
||||||
@ -112,6 +114,7 @@ class PlayerFragment : Fragment() {
|
|||||||
private lateinit var motionLayout: MotionLayout
|
private lateinit var motionLayout: MotionLayout
|
||||||
private lateinit var exoPlayer: ExoPlayer
|
private lateinit var exoPlayer: ExoPlayer
|
||||||
private lateinit var segmentData: Segments
|
private lateinit var segmentData: Segments
|
||||||
|
private var relatedStreamsEnabled = true
|
||||||
|
|
||||||
private lateinit var relDownloadVideo: LinearLayout
|
private lateinit var relDownloadVideo: LinearLayout
|
||||||
|
|
||||||
@ -259,13 +262,9 @@ class PlayerFragment : Fragment() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
view.findViewById<com.google.android.material.card.MaterialCardView>(R.id.comments_toggle)
|
view.findViewById<MaterialCardView>(R.id.comments_toggle)
|
||||||
.setOnClickListener {
|
.setOnClickListener {
|
||||||
commentsRecView.visibility =
|
toggleComments()
|
||||||
if (commentsRecView.isVisible) View.GONE else View.VISIBLE
|
|
||||||
relatedRecView.visibility =
|
|
||||||
if (relatedRecView.isVisible) View.GONE else View.VISIBLE
|
|
||||||
if (!commentsLoaded!!) fetchComments()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// FullScreen button trigger
|
// FullScreen button trigger
|
||||||
@ -328,6 +327,14 @@ class PlayerFragment : Fragment() {
|
|||||||
GridLayoutManager(view.context, resources.getInteger(R.integer.grid_items))
|
GridLayoutManager(view.context, resources.getInteger(R.integer.grid_items))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun toggleComments() {
|
||||||
|
commentsRecView.visibility =
|
||||||
|
if (commentsRecView.isVisible) View.GONE else View.VISIBLE
|
||||||
|
relatedRecView.visibility =
|
||||||
|
if (relatedRecView.isVisible) View.GONE else View.VISIBLE
|
||||||
|
if (!commentsLoaded!!) fetchComments()
|
||||||
|
}
|
||||||
|
|
||||||
override fun onDestroy() {
|
override fun onDestroy() {
|
||||||
super.onDestroy()
|
super.onDestroy()
|
||||||
try {
|
try {
|
||||||
@ -418,13 +425,18 @@ class PlayerFragment : Fragment() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// check whether related streams are enabled
|
||||||
|
val sharedPreferences = PreferenceManager.getDefaultSharedPreferences(requireContext())
|
||||||
|
relatedStreamsEnabled = sharedPreferences.getBoolean("related_streams_toggle", true)
|
||||||
runOnUiThread {
|
runOnUiThread {
|
||||||
createExoPlayer(view)
|
createExoPlayer(view)
|
||||||
prepareExoPlayerView()
|
prepareExoPlayerView()
|
||||||
|
if (response.chapters != null) initializeChapters(response.chapters)
|
||||||
setResolutionAndSubtitles(view, response)
|
setResolutionAndSubtitles(view, response)
|
||||||
exoPlayer.prepare()
|
exoPlayer.prepare()
|
||||||
exoPlayer.play()
|
exoPlayer.play()
|
||||||
initializePlayerView(view, response)
|
initializePlayerView(view, response)
|
||||||
|
if (!relatedStreamsEnabled) toggleComments()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -540,11 +552,12 @@ class PlayerFragment : Fragment() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (relatedStreamsEnabled) {
|
||||||
relatedRecView.adapter = TrendingAdapter(
|
relatedRecView.adapter = TrendingAdapter(
|
||||||
response.relatedStreams!!,
|
response.relatedStreams!!,
|
||||||
childFragmentManager
|
childFragmentManager
|
||||||
)
|
)
|
||||||
|
}
|
||||||
val description = response.description!!
|
val description = response.description!!
|
||||||
view.findViewById<TextView>(R.id.player_description).text =
|
view.findViewById<TextView>(R.id.player_description).text =
|
||||||
// detect whether the description is html formatted
|
// detect whether the description is html formatted
|
||||||
@ -582,6 +595,12 @@ class PlayerFragment : Fragment() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun initializeChapters(chapters: List<ChapterSegment>) {
|
||||||
|
chapters.forEach { chapter ->
|
||||||
|
Log.e(TAG, chapter.title!!)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private fun setResolutionAndSubtitles(view: View, response: Streams) {
|
private fun setResolutionAndSubtitles(view: View, response: Streams) {
|
||||||
var videosNameArray: Array<CharSequence> = arrayOf()
|
var videosNameArray: Array<CharSequence> = arrayOf()
|
||||||
videosNameArray += "HLS"
|
videosNameArray += "HLS"
|
||||||
|
@ -171,4 +171,6 @@
|
|||||||
<string name="invalid_url">Please enter a valid url</string>
|
<string name="invalid_url">Please enter a valid url</string>
|
||||||
<string name="version">Version %1$s</string>
|
<string name="version">Version %1$s</string>
|
||||||
<string name="about_summary">Get to know team LibreTube and how it all happens.</string>
|
<string name="about_summary">Get to know team LibreTube and how it all happens.</string>
|
||||||
|
<string name="related_streams">Related streams</string>
|
||||||
|
<string name="related_streams_summary">Show related streams to videos.</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
@ -68,4 +68,15 @@
|
|||||||
|
|
||||||
</PreferenceCategory>
|
</PreferenceCategory>
|
||||||
|
|
||||||
|
<PreferenceCategory>
|
||||||
|
|
||||||
|
<SwitchPreference
|
||||||
|
app:key="related_streams_toggle"
|
||||||
|
app:title="@string/related_streams"
|
||||||
|
app:summary="@string/related_streams_summary"
|
||||||
|
android:defaultValue="true"
|
||||||
|
android:icon="@drawable/ic_list"/>
|
||||||
|
|
||||||
|
</PreferenceCategory>
|
||||||
|
|
||||||
</PreferenceScreen>
|
</PreferenceScreen>
|
Loading…
x
Reference in New Issue
Block a user