mirror of
https://github.com/libre-tube/LibreTube.git
synced 2024-12-16 15:20:31 +05:30
56 lines
2.1 KiB
Kotlin
56 lines
2.1 KiB
Kotlin
|
package com.github.libretube.util
|
||
|
|
||
|
import android.content.Context
|
||
|
import android.os.Bundle
|
||
|
import androidx.appcompat.app.AppCompatActivity
|
||
|
import androidx.constraintlayout.motion.widget.MotionLayout
|
||
|
import androidx.core.os.bundleOf
|
||
|
import com.github.libretube.R
|
||
|
import com.github.libretube.activities.MainActivity
|
||
|
import com.github.libretube.fragments.PlayerFragment
|
||
|
|
||
|
object NavigationHelper {
|
||
|
fun navigateChannel(context: Context, channelId: String?) {
|
||
|
if (channelId != null) {
|
||
|
val activity = context as MainActivity
|
||
|
val bundle = bundleOf("channel_id" to channelId)
|
||
|
activity.navController.navigate(R.id.channelFragment, bundle)
|
||
|
try {
|
||
|
val mainMotionLayout =
|
||
|
activity.findViewById<MotionLayout>(R.id.mainMotionLayout)
|
||
|
if (mainMotionLayout.progress == 0.toFloat()) {
|
||
|
mainMotionLayout.transitionToEnd()
|
||
|
activity.findViewById<MotionLayout>(R.id.playerMotionLayout)
|
||
|
.transitionToEnd()
|
||
|
}
|
||
|
} catch (e: Exception) {
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
fun navigateVideo(context: Context, videoId: String?, playlistId: String? = null) {
|
||
|
if (videoId != null) {
|
||
|
val bundle = Bundle()
|
||
|
bundle.putString("videoId", videoId.replace("/watch?v=", ""))
|
||
|
if (playlistId != null) bundle.putString("playlistId", playlistId)
|
||
|
val frag = PlayerFragment()
|
||
|
frag.arguments = bundle
|
||
|
val activity = context as AppCompatActivity
|
||
|
activity.supportFragmentManager.beginTransaction()
|
||
|
.remove(PlayerFragment())
|
||
|
.commit()
|
||
|
activity.supportFragmentManager.beginTransaction()
|
||
|
.replace(R.id.container, frag)
|
||
|
.commitNow()
|
||
|
}
|
||
|
}
|
||
|
|
||
|
fun navigatePlaylist(context: Context, playlistId: String?) {
|
||
|
if (playlistId != null) {
|
||
|
val activity = context as MainActivity
|
||
|
val bundle = bundleOf("playlist_id" to playlistId)
|
||
|
activity.navController.navigate(R.id.playlistFragment, bundle)
|
||
|
}
|
||
|
}
|
||
|
}
|