menu delay disappears

This commit is contained in:
Li ZongYing
2024-02-20 11:33:30 +08:00
parent 1417bbf57b
commit 84a6c0f78e
9 changed files with 237 additions and 22 deletions
+83
View File
@@ -0,0 +1,83 @@
name: Bug 反馈
description: 反馈一个 Bug
labels: [ "bug" ]
title: "[BUG] "
body:
- type: checkboxes
id: checklist
attributes:
label: 检查清单
description: 确保我们的错误报告表单适合您。
options:
- label: 之前没有人提交过类似或相同的 bug report。
required: true
- label: 我正在使用本软件的最新版本。
required: true
- type: dropdown
id: version
attributes:
label: my-ty 版本
description: 请选择正在使用的版本
options:
- 最新稳定版
- 最新 CI 版
validations:
required: true
- type: textarea
id: bug
attributes:
label: Bug 描述
description: 请描述 bug 详情
placeholder: |
e.g. Crashed when generating snapshot.
validations:
required: true
- type: textarea
id: expected
attributes:
label: 预期行为
description: 你预期会发生什么?
placeholder: |
e.g. A New snapshot!
validations:
required: true
- type: textarea
id: actual
attributes:
label: 实际行为
description: 反而发生了什么?
placeholder: |
e.g. Crashed.
validations:
required: true
- type: textarea
id: steps
attributes:
label: 复现步骤
description: 如何复现这个 bug。
placeholder: |
1. Open the app
2. Crashed
What an app.
- type: input
id: ui
attributes:
label: UI / OS
description: 你的电视系统 UI 或 OS 或 品牌
placeholder: TCL / XIAOMI / PHONE / etc.
validations:
required: true
- type: input
id: android
attributes:
label: Android 版本
description: 你的 Android 版本
placeholder: "12"
validations:
required: true
- type: textarea
id: additional
attributes:
label: 额外信息
description: 任何你觉得值得说的。
+36
View File
@@ -0,0 +1,36 @@
name: 功能(新频道)请求
description: 提出一个建议
labels: [ "enhancement" ]
title: "[FR] "
body:
- type: checkboxes
id: checklist
attributes:
label: 检查清单
description: 确保我们的错误报告表单适合您。
options:
- label: 之前没有人提交过类似或相同的功能请求。
required: true
- label: 这个建议不会背离 LibChecker 的初衷。
required: true
- type: textarea
id: propose
attributes:
label: 改进目的
description: 改进有什么用
placeholder: |
Show your idea here.
validations:
required: true
- type: textarea
id: solution
attributes:
label: 解决方案
description: 你会怎么完成这个改进?
placeholder: |
How to do it on your opinion? Or left this blank
- type: textarea
id: addition
attributes:
label: 额外信息
description: 任何你觉得值得说的。
+95 -14
View File
@@ -6,7 +6,7 @@
下载安装 [releases](https://github.com/lizongying/my-tv/releases/) 下载安装 [releases](https://github.com/lizongying/my-tv/releases/)
其他地址 [my-tv](https://lyrics.run/my-tv.html) 更多地址 [my-tv](https://lyrics.run/my-tv.html)
![image](./screenshots/img_3.png) ![image](./screenshots/img_3.png)
![image](./screenshots/img_2.png) ![image](./screenshots/img_2.png)
@@ -14,56 +14,110 @@
## 更新日志 ## 更新日志
### v1.5.8(通用版) ### v1.6.0(通用)
* 通用(春晚緊急修復)
### v1.5.9(安卓5及以上专用)
* 解决天猫魔盒闪退问题
### v1.5.8(通用)
* 修复央视6画质差的问题 * 修复央视6画质差的问题
* 增加兵团卫视 * 增加兵团卫视
* 播放失败重试 * 播放失败重试
### v1.5.6(通用版) ### v1.5.7(安卓5及以上专用)
* 修复播放失败的问题
### v1.5.6(通用)
* 解决部分设备系统时间不对导致播放失败的问题 * 解决部分设备系统时间不对导致播放失败的问题
### v1.5.2(通用版) ### v1.5.5(安卓5及以上专用)
* 修复播放失败的问题
* 修复APP恢复后频道号、频道列表不自动消失的问题
### v1.5.4(通用)
* 修复播放失败的问题
### 以下已不可用
### v1.5.3(安卓5及以上专用)
* 修复部分情况下APP切换后无法继续播放的问题
* 优化重试逻辑
### v1.5.2(通用)
* 修复APP恢复后频道号、频道列表不自动消失的问题 * 修复APP恢复后频道号、频道列表不自动消失的问题
### v1.5.1(高版本专用) ### v1.5.1(安卓5及以上专用)
* 性能优化 * 性能优化
### v1.5.0(通用版) ### v1.5.0(通用)
* 修复部分情况下APP切换后无法继续播放的问题 * 修复部分情况下APP切换后无法继续播放的问题
### v1.4.9(高版本专用) ### v1.4.9(安卓5及以上专用)
* 同步v1.4.8 * 同步v1.4.8
### v1.4.8(通用版) ### v1.4.8(通用)
* 频道号从1开始,CCTV5+为18 * 频道号从1开始,CCTV5+为18
* 提高CCTV6清晰度 * 提高CCTV6清晰度
* 增加天津卫视、新疆卫视 * 增加天津卫视、新疆卫视
### v1.4.7(高版本专用) ### v1.4.7(安卓5及以上专用)
* 修复部分用户CCTV13播放过程中卡住的问题 * 修复部分用户CCTV13播放过程中卡住的问题
* 调整CCTV的频道顺序 * 调整CCTV的频道顺序
### v1.4.6(通用版) ### v1.4.6(通用)
* 10以下频道不再需要先按0 * 10以下频道不再需要先按0
### v1.4.5(高版本专用) ### v1.4.5(安卓5及以上专用)
* 数字选台配置 * 数字选台配置
### v1.4.4(通用版) ### v1.4.4(通用)
* 优化图标显示 * 优化图标显示
* 增加换台反转 * 增加换台反转
### v1.4.3(安卓5及以上专用)
* 支持频道反转配置
### v1.4.2(通用)
* 支持安卓4
### v1.4.1
* 解决部分用户无法打开菜单的问题
### v1.4.0
* 解决极个别高版本机型黑屏问题
### v1.3.9
* 提高稳定性
* 提高连接速度
### v1.3.4
* 部分错误会提示用户
* 菜单3秒钟后自动关闭
### v1.3.3 ### v1.3.3
* 部分错误会提示用户 * 部分错误会提示用户
@@ -74,6 +128,27 @@
* 增加重试,减少因网络问题导致的播放失败 * 增加重试,减少因网络问题导致的播放失败
* 优化横幅banner * 优化横幅banner
### v1.3.1
* 增加CCTV 8K 超高清频道
* 增加国际频道栏目
### v1.3.0
* 处理368可能失败的情形
### v1.2.9
* 支持3、6、8
### v1.2.8
* 兼容16:10等分辨率
### v1.2.7
* 此版本是为了测试安卓6.0以下版本,如之前可以正常运行,请勿安装。
### v1.2.6 ### v1.2.6
* 支持安卓4.2 * 支持安卓4.2
@@ -94,6 +169,14 @@
* 播放相同的频道,不再重复加载 * 播放相同的频道,不再重复加载
* 暂时移除部分频道 * 暂时移除部分频道
### v1.2.3
* 固定视频比列为16:9
* 隐藏全面屏底部的小横条
* 移除移动专区
* 修复一个闪退问题
* 更换图标和应用名
## 其他 ## 其他
小米电视可以使用小米电视助手进行安装 小米电视可以使用小米电视助手进行安装
@@ -116,9 +199,7 @@ adb install my-tv.apk
* 凤凰卫视、凤凰资讯台 * 凤凰卫视、凤凰资讯台
* 海外 * 海外
* 1.5.0 无法安装,1.5.1 可以安装 * 1.5.0 无法安装,1.5.1 可以安装
* 获取系统时间
* 选中的图标比例能否相差更大 * 选中的图标比例能否相差更大
* 自动重连
* 节目增加预告 * 节目增加预告
## 赞赏 ## 赞赏
@@ -2,12 +2,14 @@ package com.lizongying.mytv
import android.graphics.Color import android.graphics.Color
import android.view.ContextThemeWrapper import android.view.ContextThemeWrapper
import android.view.MotionEvent
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import android.view.animation.ScaleAnimation import android.view.animation.ScaleAnimation
import android.widget.ImageView import android.widget.ImageView
import androidx.leanback.widget.ImageCardView import androidx.leanback.widget.ImageCardView
import androidx.lifecycle.LifecycleOwner import androidx.lifecycle.LifecycleOwner
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import com.bumptech.glide.Glide import com.bumptech.glide.Glide
import com.lizongying.mytv.models.TVListViewModel import com.lizongying.mytv.models.TVListViewModel
@@ -48,7 +50,7 @@ class CardAdapter(private val owner: LifecycleOwner, private var tvListViewModel
val tvViewModel = item as TVViewModel val tvViewModel = item as TVViewModel
val cardView = viewHolder.view as ImageCardView val cardView = viewHolder.view as ImageCardView
cardView.setOnFocusChangeListener { _, hasFocus -> val onFocusChangeListener = View.OnFocusChangeListener { _, hasFocus ->
listener?.onItemFocusChange(item, hasFocus) listener?.onItemFocusChange(item, hasFocus)
if (hasFocus) { if (hasFocus) {
startScaleAnimation(cardView, 0.9f, 1.0f) startScaleAnimation(cardView, 0.9f, 1.0f)
@@ -57,6 +59,8 @@ class CardAdapter(private val owner: LifecycleOwner, private var tvListViewModel
} }
} }
cardView.onFocusChangeListener = onFocusChangeListener
cardView.setOnClickListener { _ -> cardView.setOnClickListener { _ ->
listener?.onItemClicked(item) listener?.onItemClicked(item)
} }
@@ -93,7 +93,8 @@ class MainActivity : FragmentActivity() {
} else { } else {
packageInfo.versionCode.toLong() packageInfo.versionCode.toLong()
} }
settingFragment = SettingFragment(versionName, versionCode, channelReversal, channelNum, bootStartup) settingFragment =
SettingFragment(versionName, versionCode, channelReversal, channelNum, bootStartup)
} }
fun showInfoFragment(tvViewModel: TVViewModel) { fun showInfoFragment(tvViewModel: TVViewModel) {
@@ -148,7 +149,7 @@ class MainActivity : FragmentActivity() {
if (mainFragment.isHidden) { if (mainFragment.isHidden) {
mainFragment.setPosition() mainFragment.setPosition()
transaction.show(mainFragment) transaction.show(mainFragment)
keepRunnable() mainActive()
} else { } else {
transaction.hide(mainFragment) transaction.hide(mainFragment)
} }
@@ -156,7 +157,7 @@ class MainActivity : FragmentActivity() {
transaction.commit() transaction.commit()
} }
fun keepRunnable() { fun mainActive() {
handler.removeCallbacks(hideMain) handler.removeCallbacks(hideMain)
handler.postDelayed(hideMain, delayHideMain) handler.postDelayed(hideMain, delayHideMain)
} }
@@ -84,6 +84,19 @@ class MainFragment : Fragment(), CardAdapter.ItemListener {
itemBinding.rowItems.layoutManager = itemBinding.rowItems.layoutManager =
LinearLayoutManager(context, LinearLayoutManager.HORIZONTAL, false) LinearLayoutManager(context, LinearLayoutManager.HORIZONTAL, false)
itemBinding.rowItems.addOnScrollListener(object : RecyclerView.OnScrollListener() {
override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) {
// super.onScrolled(recyclerView, dx, dy)
// val layoutManager = recyclerView.layoutManager as LinearLayoutManager
// val firstVisibleItemPosition = layoutManager.findFirstVisibleItemPosition()
// val firstVisibleViewHolder = recyclerView.findViewHolderForAdapterPosition(firstVisibleItemPosition)
// if (firstVisibleViewHolder != null && !firstVisibleViewHolder.itemView.hasFocus()) {
// firstVisibleViewHolder.itemView.requestFocus()
// }
(activity as MainActivity).mainActive()
}
})
val layoutParams = itemBinding.row.layoutParams as ViewGroup.MarginLayoutParams val layoutParams = itemBinding.row.layoutParams as ViewGroup.MarginLayoutParams
layoutParams.topMargin = dpToPx(11F) layoutParams.topMargin = dpToPx(11F)
itemBinding.row.layoutParams = layoutParams itemBinding.row.layoutParams = layoutParams
@@ -158,7 +171,7 @@ class MainFragment : Fragment(), CardAdapter.ItemListener {
override fun onItemFocusChange(tvViewModel: TVViewModel, hasFocus: Boolean) { override fun onItemFocusChange(tvViewModel: TVViewModel, hasFocus: Boolean) {
if (hasFocus) { if (hasFocus) {
tvListViewModel.setItemPositionCurrent(tvViewModel.id.value!!) tvListViewModel.setItemPositionCurrent(tvViewModel.id.value!!)
(activity as MainActivity).keepRunnable() (activity as MainActivity).mainActive()
} }
} }
@@ -1,11 +1,9 @@
package com.lizongying.mytv package com.lizongying.mytv
import android.os.Build
import android.os.Bundle import android.os.Bundle
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import androidx.annotation.RequiresApi
import androidx.fragment.app.DialogFragment import androidx.fragment.app.DialogFragment
import com.lizongying.mytv.databinding.DialogBinding import com.lizongying.mytv.databinding.DialogBinding
-1
View File
@@ -13,7 +13,6 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="end" android:layout_gravity="end"
android:layout_marginTop="0dp" android:layout_marginTop="0dp"
android:text="99"
android:textColor="#FFEEEEEE" android:textColor="#FFEEEEEE"
android:textStyle="bold" android:textStyle="bold"
android:textSize="50sp" /> android:textSize="50sp" />
Binary file not shown.

After

Width:  |  Height:  |  Size: 73 KiB