Added keyboard shortcuts (O or NUMPAD_8) to open online subtitle searcher :)

This commit is contained in:
Blatzar 2022-06-08 20:15:24 +02:00
parent db04dd2781
commit 6fe2742770
4 changed files with 25 additions and 5 deletions

View File

@ -282,6 +282,10 @@ object CommonActivity {
KeyEvent.KEYCODE_S, KeyEvent.KEYCODE_NUMPAD_9 -> {
PlayerEventType.ShowMirrors
}
// OpenSubtitles shortcut
KeyEvent.KEYCODE_O, KeyEvent.KEYCODE_NUMPAD_8 -> {
PlayerEventType.SearchSubtitlesOnline
}
KeyEvent.KEYCODE_E, KeyEvent.KEYCODE_NUMPAD_3 -> {
PlayerEventType.ShowSpeed
}

View File

@ -38,6 +38,7 @@ import com.lagradost.cloudstream3.CommonActivity.keyEventListener
import com.lagradost.cloudstream3.CommonActivity.playerEventListener
import com.lagradost.cloudstream3.R
import com.lagradost.cloudstream3.mvvm.logError
import com.lagradost.cloudstream3.ui.player.GeneratorPlayer.Companion.subsProvidersIsActive
import com.lagradost.cloudstream3.utils.Qualities
import com.lagradost.cloudstream3.utils.SingleSelectionHelper.showDialog
import com.lagradost.cloudstream3.utils.UIHelper.colorFromAttribute
@ -138,6 +139,14 @@ open class FullScreenPlayer : AbstractPlayerFragment() {
throw NotImplementedError()
}
open fun openOnlineSubPicker(
context: Context,
imdbId: Long?,
dismissCallback: (() -> Unit)
) {
throw NotImplementedError()
}
/** Returns false if the touch is on the status bar or navigation bar*/
private fun isValidTouch(rawX: Float, rawY: Float): Boolean {
val statusHeight = statusBarHeight ?: 0
@ -1070,6 +1079,11 @@ open class FullScreenPlayer : AbstractPlayerFragment() {
PlayerEventType.ShowMirrors -> {
showMirrorsDialogue()
}
PlayerEventType.SearchSubtitlesOnline -> {
if (subsProvidersIsActive) {
openOnlineSubPicker(view.context, null) {}
}
}
}
}

View File

@ -65,12 +65,13 @@ class GeneratorPlayer : FullScreenPlayer() {
putSerializable("syncData", syncData)
}
}
val subsProviders
get() = subtitleProviders.filter { !it.requiresLogin || it.loginInfo() != null }
val subsProvidersIsActive
get() = subsProviders.isNotEmpty()
}
private val subsProviders
get() = subtitleProviders.filter { !it.requiresLogin || it.loginInfo() != null }
private val subsProvidersIsActive
get() = subsProviders.isNotEmpty()
private var titleRez = 3
private var limitTitle = 0
@ -209,7 +210,7 @@ class GeneratorPlayer : FullScreenPlayer() {
return meta
}
private fun openOnlineSubPicker(
override fun openOnlineSubPicker(
context: Context,
imdbId: Long?,
dismissCallback: (() -> Unit)

View File

@ -22,6 +22,7 @@ enum class PlayerEventType(val value: Int) {
ShowSpeed(11),
ShowMirrors(12),
Resize(13),
SearchSubtitlesOnline(14),
}
enum class CSPlayerEvent(val value: Int) {