From 52d356817a2475e5e2158b857e7313c599ee5cb5 Mon Sep 17 00:00:00 2001 From: Li ZongYing Date: Wed, 21 Feb 2024 19:26:11 +0800 Subject: [PATCH] fix some keys invalid --- .../java/com/lizongying/mytv/CardAdapter.kt | 8 ++-- .../java/com/lizongying/mytv/MainActivity.kt | 11 +++++- .../java/com/lizongying/mytv/MainFragment.kt | 6 +++ .../main/java/com/lizongying/mytv/Request.kt | 39 +++++++++---------- 4 files changed, 38 insertions(+), 26 deletions(-) diff --git a/app/src/main/java/com/lizongying/mytv/CardAdapter.kt b/app/src/main/java/com/lizongying/mytv/CardAdapter.kt index 81f3a3c..5a8de6c 100644 --- a/app/src/main/java/com/lizongying/mytv/CardAdapter.kt +++ b/app/src/main/java/com/lizongying/mytv/CardAdapter.kt @@ -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) { diff --git a/app/src/main/java/com/lizongying/mytv/MainActivity.kt b/app/src/main/java/com/lizongying/mytv/MainActivity.kt index 2b6b2a9..7864c40 100644 --- a/app/src/main/java/com/lizongying/mytv/MainActivity.kt +++ b/app/src/main/java/com/lizongying/mytv/MainActivity.kt @@ -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) } diff --git a/app/src/main/java/com/lizongying/mytv/MainFragment.kt b/app/src/main/java/com/lizongying/mytv/MainFragment.kt index 76ad48a..2277605 100644 --- a/app/src/main/java/com/lizongying/mytv/MainFragment.kt +++ b/app/src/main/java/com/lizongying/mytv/MainFragment.kt @@ -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!!) diff --git a/app/src/main/java/com/lizongying/mytv/Request.kt b/app/src/main/java/com/lizongying/mytv/Request.kt index 9acd418..47aa43b 100644 --- a/app/src/main/java/com/lizongying/mytv/Request.kt +++ b/app/src/main/java/com/lizongying/mytv/Request.kt @@ -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, 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 {