From 72f12b1af4607b4dbff8902ec30a9b99631ce5d8 Mon Sep 17 00:00:00 2001 From: rimthekid Date: Mon, 14 Mar 2022 14:28:44 -0400 Subject: [PATCH] open youtube links in app --- app/src/main/AndroidManifest.xml | 7 +-- .../java/com/github/libretube/MainActivity.kt | 53 +++++++++++++++++++ .../com/github/libretube/PlayerFragment.kt | 1 + 3 files changed, 56 insertions(+), 5 deletions(-) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 23f076a8d..1fe7b6b19 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -40,9 +40,6 @@ - - - @@ -55,7 +52,7 @@ - + @@ -98,7 +95,6 @@ - @@ -118,6 +114,7 @@ + diff --git a/app/src/main/java/com/github/libretube/MainActivity.kt b/app/src/main/java/com/github/libretube/MainActivity.kt index a712ce092..3a6cafa60 100644 --- a/app/src/main/java/com/github/libretube/MainActivity.kt +++ b/app/src/main/java/com/github/libretube/MainActivity.kt @@ -14,6 +14,7 @@ import android.widget.LinearLayout import androidx.appcompat.widget.Toolbar import androidx.constraintlayout.motion.widget.MotionLayout import androidx.constraintlayout.widget.ConstraintLayout +import androidx.core.os.bundleOf import androidx.core.text.HtmlCompat import androidx.core.view.ViewCompat import androidx.core.view.ViewCompat.getWindowInsetsController @@ -101,7 +102,59 @@ class MainActivity : AppCompatActivity() { if (data != null) { Log.d("dafaq",data.host+" ${data.path} ") + if(data.host != null){ + if(data.host!!.contains("youtube.com",true)){ + if(data.path != null){ + //channel + if(data.path!!.contains("/channel/") || data.path!!.contains("/c/") || data.path!!.contains("/user/")){ + var channel = data.path + channel = channel!!.replace("/c/","") + channel = channel!!.replace("/user/","") + val bundle = bundleOf("channel_id" to channel) + navController.navigate(R.id.channel,bundle) + }else if(data.path!!.contains("/playlist")){ + var playlist = data.query + playlist = playlist!!.replace("list=","") + val bundle = bundleOf("playlist_id" to playlist) + navController.navigate(R.id.playlistFragment,bundle) + }else if(data.path!!.contains("/shorts/") || data.path!!.contains("/embed/") || data.path!!.contains("/v/")){ + var watch = data.path!!.replace("/shorts/","").replace("/v/","").replace("/embed/","") + var bundle = Bundle() + bundle.putString("videoId",watch) + var frag = PlayerFragment() + frag.arguments = bundle + supportFragmentManager.beginTransaction() + .remove(PlayerFragment()) + .commit() + supportFragmentManager.beginTransaction() + .replace(R.id.container, frag) + .commitNow() + }else if(data.path!!.contains("/watch") && data.query != null){ + Log.d("dafaq",data.query!!) + var watch = data.query!! + var watches = watch.split("&") + if (watches.size >1){ + for (v in watches){ + if (v.contains("v=")){ + var bundle = Bundle() + bundle.putString("videoId",v.replace("v=","")) + var frag = PlayerFragment() + frag.arguments = bundle + supportFragmentManager.beginTransaction() + .remove(PlayerFragment()) + .commit() + supportFragmentManager.beginTransaction() + .replace(R.id.container, frag) + .commitNow() + break + } + } + } + } + } + } + } } } diff --git a/app/src/main/java/com/github/libretube/PlayerFragment.kt b/app/src/main/java/com/github/libretube/PlayerFragment.kt index 5ca8060f8..d679d1f2b 100644 --- a/app/src/main/java/com/github/libretube/PlayerFragment.kt +++ b/app/src/main/java/com/github/libretube/PlayerFragment.kt @@ -95,6 +95,7 @@ class PlayerFragment : Fragment() { override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) + videoId = videoId!!.replace("/watch?v=","") relDownloadVideo = view.findViewById(R.id.relPlayer_download) val mainActivity = activity as MainActivity mainActivity.findViewById(R.id.container).visibility=View.VISIBLE