diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 0b3830b..2e31c0c 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -68,13 +68,16 @@ android:host="m.youtube.com" android:pathPrefix="/watch" android:scheme="https" /> + diff --git a/app/src/main/kotlin/it/vfsfitvnm/vimusic/ui/screens/IntentUriScreen.kt b/app/src/main/kotlin/it/vfsfitvnm/vimusic/ui/screens/IntentUriScreen.kt index 98bde65..7a451d0 100644 --- a/app/src/main/kotlin/it/vfsfitvnm/vimusic/ui/screens/IntentUriScreen.kt +++ b/app/src/main/kotlin/it/vfsfitvnm/vimusic/ui/screens/IntentUriScreen.kt @@ -77,6 +77,12 @@ fun IntentUriScreen(uri: Uri) { YouTube.song(videoId)?.map { song -> song?.let { listOf(song) } ?: emptyList() } + } ?: uri.takeIf { + uri.host == "youtu.be" + }?.path?.drop(1)?.let { videoId -> + YouTube.song(videoId)?.map { song -> + song?.let { listOf(song) } ?: emptyList() + } } ?: Result.failure(Error("Missing URL parameters")) } } diff --git a/app/src/main/kotlin/it/vfsfitvnm/vimusic/ui/screens/SearchScreen.kt b/app/src/main/kotlin/it/vfsfitvnm/vimusic/ui/screens/SearchScreen.kt index f8f5da9..0d6ce62 100644 --- a/app/src/main/kotlin/it/vfsfitvnm/vimusic/ui/screens/SearchScreen.kt +++ b/app/src/main/kotlin/it/vfsfitvnm/vimusic/ui/screens/SearchScreen.kt @@ -107,7 +107,13 @@ fun SearchScreen( val typography = LocalTypography.current val isOpenableUrl = remember(textFieldValue.text) { - Regex("""https://(music|www|m)\.youtube.com/(watch|playlist).*""").matches(textFieldValue.text) + listOf( + "https://www.youtube.com/watch?", + "https://music.youtube.com/watch?", + "https://www.youtube.com/list?", + "https://music.youtube.com/list?", + "https://youtu.be/", + ).any(textFieldValue.text::startsWith) } LaunchedEffect(Unit) {