Skip to content

Commit cda1999

Browse files
committed
optimize channel switch
1 parent 1eb2f25 commit cda1999

File tree

3 files changed

+38
-20
lines changed

3 files changed

+38
-20
lines changed

README.md

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,20 @@
1414

1515
## 更新日志
1616

17-
### v1.4.4(安卓4专用)
17+
### v1.4.7(高版本专用)
18+
19+
* 修复部分用户cctv13播放过程中卡住的问题
20+
* 调整cctv的频道顺序
21+
22+
### v1.4.6(通用版)
23+
24+
* 10以下频道不再需要先按0
25+
26+
### v1.4.5(高版本专用)
27+
28+
* 数字选台配置
29+
30+
### v1.4.4(通用版)
1831

1932
* 优化图标显示
2033
* 增加换台反转

app/src/main/java/com/lizongying/mytv/ChannelFragment.kt

Lines changed: 18 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ package com.lizongying.mytv
22

33
import android.os.Bundle
44
import android.os.Handler
5-
import android.util.Log
65
import android.view.LayoutInflater
76
import android.view.View
87
import android.view.ViewGroup
@@ -16,6 +15,7 @@ class ChannelFragment : Fragment() {
1615

1716
private val handler = Handler()
1817
private val delay: Long = 3000
18+
private var channel = 0
1919

2020
override fun onCreateView(
2121
inflater: LayoutInflater, container: ViewGroup?,
@@ -28,37 +28,39 @@ class ChannelFragment : Fragment() {
2828
}
2929

3030
fun show(tvViewModel: TVViewModel) {
31+
handler.removeCallbacks(hideRunnable)
32+
handler.removeCallbacks(playRunnable)
3133
binding.channelContent.text = tvViewModel.id.value.toString()
32-
handler.removeCallbacks(removeRunnable)
3334
view?.visibility = View.VISIBLE
34-
handler.postDelayed(removeRunnable, delay)
35+
handler.postDelayed(hideRunnable, delay)
3536
}
3637

3738
fun show(channel: String) {
39+
this.channel = "${binding.channelContent.text}$channel".toInt()
40+
handler.removeCallbacks(hideRunnable)
41+
handler.removeCallbacks(playRunnable)
3842
if (binding.channelContent.text == "") {
3943
binding.channelContent.text = channel
40-
handler.removeCallbacks(removeRunnable)
4144
view?.visibility = View.VISIBLE
42-
handler.postDelayed(removeRunnable, delay)
45+
handler.postDelayed(playRunnable, delay)
4346
} else {
44-
val ch = "${binding.channelContent.text}$channel".toInt()
45-
(activity as MainActivity).play(ch)
46-
binding.channelContent.text = ""
47-
view?.visibility = View.GONE
47+
handler.postDelayed(playRunnable, 0)
4848
}
4949
}
5050

51-
override fun onResume() {
52-
super.onResume()
53-
handler.postDelayed(removeRunnable, delay)
54-
}
55-
5651
override fun onPause() {
5752
super.onPause()
58-
handler.removeCallbacks(removeRunnable)
53+
handler.removeCallbacks(hideRunnable)
54+
handler.removeCallbacks(playRunnable)
55+
}
56+
57+
private val hideRunnable = Runnable {
58+
binding.channelContent.text = ""
59+
view?.visibility = View.GONE
5960
}
6061

61-
private val removeRunnable = Runnable {
62+
private val playRunnable = Runnable {
63+
(activity as MainActivity).play(channel)
6264
binding.channelContent.text = ""
6365
view?.visibility = View.GONE
6466
}

app/src/main/java/com/lizongying/mytv/MainFragment.kt

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import androidx.lifecycle.lifecycleScope
1515
import androidx.recyclerview.widget.LinearLayoutManager
1616
import androidx.recyclerview.widget.RecyclerView
1717
import com.lizongying.mytv.Utils.dpToPx
18+
import com.lizongying.mytv.Utils.getDateTimestamp
1819
import com.lizongying.mytv.databinding.RowBinding
1920
import com.lizongying.mytv.databinding.ShowBinding
2021
import com.lizongying.mytv.models.TVListViewModel
@@ -31,13 +32,13 @@ class MainFragment : Fragment(), CardAdapter.ItemListener {
3132
private var _binding: ShowBinding? = null
3233
private val binding get() = _binding!!
3334

34-
private var request: Request = Request()
35+
private var request = Request()
3536

3637
var tvListViewModel = TVListViewModel()
3738

3839
private var sharedPref: SharedPreferences? = null
3940

40-
private var lastVideoUrl: String = ""
41+
private var lastVideoUrl = ""
4142

4243
private val handler = Handler(Looper.getMainLooper())
4344
private lateinit var mUpdateProgramRunnable: UpdateProgramRunnable
@@ -226,6 +227,8 @@ class MainFragment : Fragment(), CardAdapter.ItemListener {
226227
this.itemPosition = itemPosition
227228
tvListViewModel.setItemPosition(itemPosition)
228229
tvListViewModel.getTVViewModel(itemPosition)?.changed()
230+
} else {
231+
Toast.makeText(context, "频道不存在", Toast.LENGTH_SHORT).show()
229232
}
230233
}
231234
}
@@ -253,7 +256,7 @@ class MainFragment : Fragment(), CardAdapter.ItemListener {
253256
}
254257

255258
fun updateProgram(tvViewModel: TVViewModel) {
256-
val timestamp = Utils.getDateTimestamp()
259+
val timestamp = getDateTimestamp()
257260
if (timestamp - tvViewModel.programUpdateTime > 60) {
258261
if (tvViewModel.program.value!!.isEmpty()) {
259262
tvViewModel.programUpdateTime = timestamp

0 commit comments

Comments
 (0)