fix some keys invalid

This commit is contained in:
Li ZongYing
2024-02-21 19:26:11 +08:00
parent 6ede7f76ef
commit 52d356817a
4 changed files with 38 additions and 26 deletions
@@ -1,7 +1,6 @@
package com.lizongying.mytv
import android.graphics.Color
import android.util.Log
import android.view.ContextThemeWrapper
import android.view.View
import android.view.ViewGroup
@@ -66,7 +65,6 @@ class CardAdapter(
val onFocusChangeListener = View.OnFocusChangeListener { _, hasFocus ->
listener?.onItemFocusChange(item, hasFocus)
Log.i(TAG, "defaultFocus $defaultFocus ${item.id.value}")
// if (hasFocus && defaultFocus == item.id.value) {
if (hasFocus) {
focused = cardView
@@ -76,8 +74,9 @@ class CardAdapter(
cardView.onFocusChangeListener = onFocusChangeListener
cardView.setOnClickListener { _ ->
listener?.onItemClicked(item)
cardView.setOnKeyListener { v, keyCode, event ->
listener?.onKey(keyCode)
false
}
cardView.titleText = tvViewModel.title.value
@@ -129,6 +128,7 @@ class CardAdapter(
interface ItemListener {
fun onItemFocusChange(tvViewModel: TVViewModel, hasFocus: Boolean)
fun onItemClicked(tvViewModel: TVViewModel)
fun onKey(keyCode: Int)
}
fun setItemListener(listener: ItemListener) {
@@ -336,8 +336,8 @@ class MainActivity : FragmentActivity() {
}, 2000)
}
override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean {
Log.i(TAG, "keyCode $keyCode")
fun onKey(keyCode: Int): Boolean {
when (keyCode) {
KeyEvent.KEYCODE_0 -> {
showChannel("0")
@@ -475,6 +475,13 @@ class MainActivity : FragmentActivity() {
// }
}
}
return false
}
override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean {
if (onKey(keyCode)) {
return true
}
return super.onKeyDown(keyCode, event)
}
@@ -192,6 +192,12 @@ class MainFragment : Fragment(), CardAdapter.ItemListener {
super.onViewCreated(view, savedInstanceState)
}
override fun onKey(keyCode: Int) {
if (this.isHidden) {
(activity as MainActivity).onKey(keyCode)
}
}
override fun onItemFocusChange(tvViewModel: TVViewModel, hasFocus: Boolean) {
if (hasFocus) {
tvListViewModel.setItemPositionCurrent(tvViewModel.id.value!!)
@@ -188,17 +188,17 @@ class Request {
if (tvModel.getTV().needToken) {
if (tvModel.tokenRetryTimes == tvModel.tokenRetryMaxTimes) {
if (!tvModel.getTV().mustToken) {
// fetchVideo(tvModel, cookie)
fetchAuth(tvModel, cookie)
fetchVideo(tvModel, cookie)
// fetchAuth(tvModel, cookie)
}
} else {
token = ""
// fetchVideo(tvModel)
fetchAuth(tvModel)
fetchVideo(tvModel)
// fetchAuth(tvModel)
}
} else {
// fetchVideo(tvModel, cookie)
fetchAuth(tvModel, cookie)
fetchVideo(tvModel, cookie)
// fetchAuth(tvModel, cookie)
}
}
}
@@ -213,17 +213,17 @@ class Request {
if (tvModel.getTV().needToken) {
if (tvModel.tokenRetryTimes == tvModel.tokenRetryMaxTimes) {
if (!tvModel.getTV().mustToken) {
// fetchVideo(tvModel, cookie)
fetchAuth(tvModel, cookie)
fetchVideo(tvModel, cookie)
// fetchAuth(tvModel, cookie)
}
} else {
token = ""
// fetchVideo(tvModel)
fetchAuth(tvModel)
fetchVideo(tvModel)
// fetchAuth(tvModel)
}
} else {
// fetchVideo(tvModel, cookie)
fetchAuth(tvModel, cookie)
fetchVideo(tvModel, cookie)
// fetchAuth(tvModel, cookie)
}
}
}
@@ -235,24 +235,24 @@ class Request {
if (tvModel.getTV().needToken) {
if (tvModel.tokenRetryTimes == tvModel.tokenRetryMaxTimes) {
if (!tvModel.getTV().mustToken) {
// fetchVideo(tvModel, cookie)
fetchAuth(tvModel, cookie)
fetchVideo(tvModel, cookie)
// fetchAuth(tvModel, cookie)
}
} else {
token = ""
// fetchVideo(tvModel)
fetchAuth(tvModel)
fetchVideo(tvModel)
// fetchAuth(tvModel)
}
} else {
// fetchVideo(tvModel, cookie)
fetchAuth(tvModel, cookie)
fetchVideo(tvModel, cookie)
// fetchAuth(tvModel, cookie)
}
}
}
}
override fun onFailure(call: Call<LiveInfo>, t: Throwable) {
Log.e(TAG, "$title request error $t")
Log.e(TAG, "$title fetchVideo request error $t")
if (tvModel.retryTimes < tvModel.retryMaxTimes) {
tvModel.retryTimes++
if (tvModel.getTV().needToken) {
@@ -377,7 +377,6 @@ class Request {
} else {
val cookie =
"versionName=99.99.99; versionCode=999999; vplatform=109; platformVersion=Chrome; deviceModel=120; appid=1400421205"
if (needAuth) {
fetchAuth(tvModel, cookie)
} else {