support KEYCODE_CHANNEL_UP & KEYCODE_CHANNEL_DOWN

This commit is contained in:
Li ZongYing 2024-01-14 12:09:12 +08:00
parent a23b1e11ce
commit 42b072f5ec
1 changed files with 60 additions and 35 deletions

View File

@ -204,25 +204,54 @@ class MainActivity : FragmentActivity() {
dialog.show() dialog.show()
} }
private fun channelUp() {
if (mainFragment.isHidden) {
prev()
} else {
// if (mainFragment.selectedPosition == 0) {
// mainFragment.setSelectedPosition(
// mainFragment.tvListViewModel.maxNum.size - 1,
// false
// )
// }
}
}
private fun channelDown() {
if (mainFragment.isHidden) {
next()
} else {
// if (mainFragment.selectedPosition == mainFragment.tvListViewModel.maxNum.size - 1) {
//// mainFragment.setSelectedPosition(0, false)
// hideMainFragment()
// return false
// }
}
}
private fun back() {
if (!mainFragmentIsHidden()) {
hideMainFragment()
return
}
if (doubleBackToExitPressedOnce) {
super.onBackPressed()
return
}
doubleBackToExitPressedOnce = true
Toast.makeText(this, "再按一次退出", Toast.LENGTH_SHORT).show()
Handler(Looper.getMainLooper()).postDelayed({
doubleBackToExitPressedOnce = false
}, 2000)
}
override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean { override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean {
when (keyCode) { when (keyCode) {
KeyEvent.KEYCODE_BACK -> { KeyEvent.KEYCODE_BACK -> {
if (!mainFragmentIsHidden()) { back()
hideMainFragment()
return true
}
if (doubleBackToExitPressedOnce) {
super.onBackPressed()
return true
}
this.doubleBackToExitPressedOnce = true
Toast.makeText(this, "再按一次退出", Toast.LENGTH_SHORT).show()
Handler(Looper.getMainLooper()).postDelayed({
doubleBackToExitPressedOnce = false
}, 2000)
return true return true
} }
@ -231,6 +260,11 @@ class MainActivity : FragmentActivity() {
return true return true
} }
KeyEvent.KEYCODE_HELP -> {
showHelp()
return true
}
KeyEvent.KEYCODE_MENU -> { KeyEvent.KEYCODE_MENU -> {
showHelp() showHelp()
return true return true
@ -245,28 +279,19 @@ class MainActivity : FragmentActivity() {
} }
KeyEvent.KEYCODE_DPAD_UP -> { KeyEvent.KEYCODE_DPAD_UP -> {
if (mainFragment.isHidden) { channelUp()
prev()
} else {
// if (mainFragment.selectedPosition == 0) {
// mainFragment.setSelectedPosition(
// mainFragment.tvListViewModel.maxNum.size - 1,
// false
// )
// }
}
} }
KeyEvent.KEYCODE_DPAD_DOWN -> { KeyEvent.KEYCODE_DPAD_DOWN -> {
if (mainFragment.isHidden) { channelDown()
next() }
} else {
// if (mainFragment.selectedPosition == mainFragment.tvListViewModel.maxNum.size - 1) { KeyEvent.KEYCODE_CHANNEL_UP -> {
//// mainFragment.setSelectedPosition(0, false) channelUp()
// hideMainFragment() }
// return false
// } KeyEvent.KEYCODE_CHANNEL_DOWN -> {
} channelDown()
} }
KeyEvent.KEYCODE_DPAD_LEFT -> { KeyEvent.KEYCODE_DPAD_LEFT -> {