From 44ef5c00b9a632299ea530c7fd222952238acbd0 Mon Sep 17 00:00:00 2001 From: Secozzi Date: Wed, 10 Jul 2024 00:00:47 +0200 Subject: [PATCH 1/3] feat(external-players): add mpvKt --- .../presentation/more/settings/screen/SettingsPlayerScreen.kt | 2 ++ .../main/java/eu/kanade/tachiyomi/ui/player/ExternalIntents.kt | 2 ++ 2 files changed, 4 insertions(+) diff --git a/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsPlayerScreen.kt b/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsPlayerScreen.kt index 8ae760b5eb..48600c3d07 100644 --- a/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsPlayerScreen.kt +++ b/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsPlayerScreen.kt @@ -23,6 +23,7 @@ import cafe.adriel.voyager.navigator.currentOrThrow import eu.kanade.domain.base.BasePreferences import eu.kanade.presentation.more.settings.Preference import eu.kanade.tachiyomi.ui.player.JUST_PLAYER +import eu.kanade.tachiyomi.ui.player.MPV_KT import eu.kanade.tachiyomi.ui.player.MPV_PLAYER import eu.kanade.tachiyomi.ui.player.MPV_REMOTE import eu.kanade.tachiyomi.ui.player.MX_PLAYER @@ -445,6 +446,7 @@ val externalPlayers = listOf( MX_PLAYER_FREE, MX_PLAYER_PRO, VLC_PLAYER, + MPV_KT, MPV_REMOTE, JUST_PLAYER, NEXT_PLAYER, diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/player/ExternalIntents.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/player/ExternalIntents.kt index db3c68185c..19d46deb9d 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/player/ExternalIntents.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/player/ExternalIntents.kt @@ -306,6 +306,7 @@ class ExternalIntents { "$packageName.ActivityScreen", ) VLC_PLAYER -> ComponentName(packageName, "$packageName.gui.video.VideoPlayerActivity") + MPV_KT -> ComponentName(packageName, "$packageName.ui.player.PlayerActivity") MPV_REMOTE -> ComponentName(packageName, "$packageName.MainActivity") JUST_PLAYER -> ComponentName(packageName, "$packageName.PlayerActivity") NEXT_PLAYER -> ComponentName(packageName, "$packageName.feature.player.PlayerActivity") @@ -564,6 +565,7 @@ const val MX_PLAYER = "com.mxtech.videoplayer" const val MX_PLAYER_FREE = "com.mxtech.videoplayer.ad" const val MX_PLAYER_PRO = "com.mxtech.videoplayer.pro" const val VLC_PLAYER = "org.videolan.vlc" +const val MPV_KT = "live.mehiz.mpvkt" const val MPV_REMOTE = "com.husudosu.mpvremote" const val JUST_PLAYER = "com.brouken.player" const val NEXT_PLAYER = "dev.anilbeesetti.nextplayer" From 4c3cbd4e035135e2f795ad042c07e867d17bc144 Mon Sep 17 00:00:00 2001 From: Secozzi Date: Wed, 10 Jul 2024 00:06:40 +0200 Subject: [PATCH 2/3] detekt(detekt): detekt --- .../java/eu/kanade/tachiyomi/ui/player/ExternalIntents.kt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/player/ExternalIntents.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/player/ExternalIntents.kt index 19d46deb9d..8f7cea54a2 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/player/ExternalIntents.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/player/ExternalIntents.kt @@ -565,9 +565,11 @@ const val MX_PLAYER = "com.mxtech.videoplayer" const val MX_PLAYER_FREE = "com.mxtech.videoplayer.ad" const val MX_PLAYER_PRO = "com.mxtech.videoplayer.pro" const val VLC_PLAYER = "org.videolan.vlc" -const val MPV_KT = "live.mehiz.mpvkt" const val MPV_REMOTE = "com.husudosu.mpvremote" const val JUST_PLAYER = "com.brouken.player" const val NEXT_PLAYER = "dev.anilbeesetti.nextplayer" const val X_PLAYER = "video.player.videoplayer" const val WEB_VIDEO_CASTER = "com.instantbits.cast.webvideo" + +@Suppress("TopLevelPropertyNaming") +const val MPV_KT = "live.mehiz.mpvkt" From 09b7a8057fe1b13582dd9900c0aac226a033883e Mon Sep 17 00:00:00 2001 From: jmir1 Date: Thu, 11 Jul 2024 14:52:01 +0200 Subject: [PATCH 3/3] fix: Add support for mpvKt preview and fix linting --- .../settings/screen/SettingsPlayerScreen.kt | 46 ++++++++++--------- .../tachiyomi/ui/player/ExternalIntents.kt | 45 +++++++++--------- config/detekt/baseline.xml | 9 ---- 3 files changed, 46 insertions(+), 54 deletions(-) diff --git a/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsPlayerScreen.kt b/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsPlayerScreen.kt index 48600c3d07..f8632aa5d5 100644 --- a/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsPlayerScreen.kt +++ b/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsPlayerScreen.kt @@ -22,17 +22,18 @@ import cafe.adriel.voyager.navigator.LocalNavigator import cafe.adriel.voyager.navigator.currentOrThrow import eu.kanade.domain.base.BasePreferences import eu.kanade.presentation.more.settings.Preference -import eu.kanade.tachiyomi.ui.player.JUST_PLAYER -import eu.kanade.tachiyomi.ui.player.MPV_KT -import eu.kanade.tachiyomi.ui.player.MPV_PLAYER -import eu.kanade.tachiyomi.ui.player.MPV_REMOTE -import eu.kanade.tachiyomi.ui.player.MX_PLAYER -import eu.kanade.tachiyomi.ui.player.MX_PLAYER_FREE -import eu.kanade.tachiyomi.ui.player.MX_PLAYER_PRO -import eu.kanade.tachiyomi.ui.player.NEXT_PLAYER -import eu.kanade.tachiyomi.ui.player.VLC_PLAYER -import eu.kanade.tachiyomi.ui.player.WEB_VIDEO_CASTER -import eu.kanade.tachiyomi.ui.player.X_PLAYER +import eu.kanade.tachiyomi.ui.player.JustPlayer +import eu.kanade.tachiyomi.ui.player.MpvKt +import eu.kanade.tachiyomi.ui.player.MpvKtPreview +import eu.kanade.tachiyomi.ui.player.MpvPlayer +import eu.kanade.tachiyomi.ui.player.MpvRemote +import eu.kanade.tachiyomi.ui.player.MxPlayer +import eu.kanade.tachiyomi.ui.player.MxPlayerFree +import eu.kanade.tachiyomi.ui.player.MxPlayerPro +import eu.kanade.tachiyomi.ui.player.NextPlayer +import eu.kanade.tachiyomi.ui.player.VlcPlayer +import eu.kanade.tachiyomi.ui.player.WebVideoCaster +import eu.kanade.tachiyomi.ui.player.XPlayer import eu.kanade.tachiyomi.ui.player.settings.PlayerPreferences import eu.kanade.tachiyomi.ui.player.viewer.AudioChannels import kotlinx.collections.immutable.persistentListOf @@ -441,15 +442,16 @@ object SettingsPlayerScreen : SearchableSettings { } val externalPlayers = listOf( - MPV_PLAYER, - MX_PLAYER, - MX_PLAYER_FREE, - MX_PLAYER_PRO, - VLC_PLAYER, - MPV_KT, - MPV_REMOTE, - JUST_PLAYER, - NEXT_PLAYER, - X_PLAYER, - WEB_VIDEO_CASTER, + MpvPlayer, + MxPlayer, + MxPlayerFree, + MxPlayerPro, + VlcPlayer, + MpvKt, + MpvKtPreview, + MpvRemote, + JustPlayer, + NextPlayer, + XPlayer, + WebVideoCaster, ) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/player/ExternalIntents.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/player/ExternalIntents.kt index 8f7cea54a2..f243263263 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/player/ExternalIntents.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/player/ExternalIntents.kt @@ -170,7 +170,7 @@ class ExternalIntents { */ private fun getIntentForPackage(pkgName: String, context: Context, uri: Uri, video: Video): Intent { return when (pkgName) { - WEB_VIDEO_CASTER -> webVideoCasterIntent(pkgName, context, uri, video) + WebVideoCaster -> webVideoCasterIntent(pkgName, context, uri, video) else -> standardIntentForPackage(pkgName, context, uri, video) } } @@ -178,7 +178,7 @@ class ExternalIntents { private fun webVideoCasterIntent(pkgName: String, context: Context, uri: Uri, video: Video): Intent { return Intent(Intent.ACTION_VIEW).apply { setDataAndType(uri, "video/*") - if (isPackageInstalled(pkgName, context.packageManager)) setPackage(WEB_VIDEO_CASTER) + if (isPackageInstalled(pkgName, context.packageManager)) setPackage(WebVideoCaster) addExtrasAndFlags(true, this) val headers = Bundle() @@ -300,17 +300,17 @@ class ExternalIntents { */ private fun getComponent(packageName: String): ComponentName? { return when (packageName) { - MPV_PLAYER -> ComponentName(packageName, "$packageName.MPVActivity") - MX_PLAYER, MX_PLAYER_FREE, MX_PLAYER_PRO -> ComponentName( + MpvPlayer -> ComponentName(packageName, "$packageName.MPVActivity") + MxPlayer, MxPlayerFree, MxPlayerPro -> ComponentName( packageName, "$packageName.ActivityScreen", ) - VLC_PLAYER -> ComponentName(packageName, "$packageName.gui.video.VideoPlayerActivity") - MPV_KT -> ComponentName(packageName, "$packageName.ui.player.PlayerActivity") - MPV_REMOTE -> ComponentName(packageName, "$packageName.MainActivity") - JUST_PLAYER -> ComponentName(packageName, "$packageName.PlayerActivity") - NEXT_PLAYER -> ComponentName(packageName, "$packageName.feature.player.PlayerActivity") - X_PLAYER -> ComponentName(packageName, "com.inshot.xplayer.activities.PlayerActivity") + VlcPlayer -> ComponentName(packageName, "$packageName.gui.video.VideoPlayerActivity") + MpvKt, MpvKtPreview -> ComponentName(packageName, "live.mehiz.mpvkt.ui.player.PlayerActivity") + MpvRemote -> ComponentName(packageName, "$packageName.MainActivity") + JustPlayer -> ComponentName(packageName, "$packageName.PlayerActivity") + NextPlayer -> ComponentName(packageName, "$packageName.feature.player.PlayerActivity") + XPlayer -> ComponentName(packageName, "com.inshot.xplayer.activities.PlayerActivity") else -> null } } @@ -560,16 +560,15 @@ class ExternalIntents { } // List of supported external players and their packages -const val MPV_PLAYER = "is.xyz.mpv" -const val MX_PLAYER = "com.mxtech.videoplayer" -const val MX_PLAYER_FREE = "com.mxtech.videoplayer.ad" -const val MX_PLAYER_PRO = "com.mxtech.videoplayer.pro" -const val VLC_PLAYER = "org.videolan.vlc" -const val MPV_REMOTE = "com.husudosu.mpvremote" -const val JUST_PLAYER = "com.brouken.player" -const val NEXT_PLAYER = "dev.anilbeesetti.nextplayer" -const val X_PLAYER = "video.player.videoplayer" -const val WEB_VIDEO_CASTER = "com.instantbits.cast.webvideo" - -@Suppress("TopLevelPropertyNaming") -const val MPV_KT = "live.mehiz.mpvkt" +const val MpvPlayer = "is.xyz.mpv" +const val MxPlayer = "com.mxtech.videoplayer" +const val MxPlayerFree = "com.mxtech.videoplayer.ad" +const val MxPlayerPro = "com.mxtech.videoplayer.pro" +const val VlcPlayer = "org.videolan.vlc" +const val MpvKt = "live.mehiz.mpvkt" +const val MpvKtPreview = "live.mehiz.mpvkt.preview" +const val MpvRemote = "com.husudosu.mpvremote" +const val JustPlayer = "com.brouken.player" +const val NextPlayer = "dev.anilbeesetti.nextplayer" +const val XPlayer = "video.player.videoplayer" +const val WebVideoCaster = "com.instantbits.cast.webvideo" diff --git a/config/detekt/baseline.xml b/config/detekt/baseline.xml index 838780e9ed..a1ef5419ef 100644 --- a/config/detekt/baseline.xml +++ b/config/detekt/baseline.xml @@ -1849,15 +1849,6 @@ TopLevelPropertyNaming:DisplayExtensions.kt$// some tablets have screen width like 711dp = 1600px / 2.25 private const val TABLET_UI_MIN_SCREEN_WIDTH_PORTRAIT_DP = 700 TopLevelPropertyNaming:DisplayExtensions.kt$private const val TABLET_UI_REQUIRED_SCREEN_WIDTH_DP = 720 TopLevelPropertyNaming:ExternalIntents.kt$// List of supported external players and their packages const val MPV_PLAYER = "is.xyz.mpv" - TopLevelPropertyNaming:ExternalIntents.kt$const val JUST_PLAYER = "com.brouken.player" - TopLevelPropertyNaming:ExternalIntents.kt$const val MPV_REMOTE = "com.husudosu.mpvremote" - TopLevelPropertyNaming:ExternalIntents.kt$const val MX_PLAYER = "com.mxtech.videoplayer" - TopLevelPropertyNaming:ExternalIntents.kt$const val MX_PLAYER_FREE = "com.mxtech.videoplayer.ad" - TopLevelPropertyNaming:ExternalIntents.kt$const val MX_PLAYER_PRO = "com.mxtech.videoplayer.pro" - TopLevelPropertyNaming:ExternalIntents.kt$const val NEXT_PLAYER = "dev.anilbeesetti.nextplayer" - TopLevelPropertyNaming:ExternalIntents.kt$const val VLC_PLAYER = "org.videolan.vlc" - TopLevelPropertyNaming:ExternalIntents.kt$const val WEB_VIDEO_CASTER = "com.instantbits.cast.webvideo" - TopLevelPropertyNaming:ExternalIntents.kt$const val X_PLAYER = "video.player.videoplayer" TopLevelPropertyNaming:GLUtil.kt$// Safe minimum default size private const val IMAGE_MAX_BITMAP_DIMENSION = 2048 TopLevelPropertyNaming:GestureHandler.kt$private const val STATE_HORIZONTAL = 1 TopLevelPropertyNaming:GestureHandler.kt$private const val STATE_UP = 0