mirror of
https://github.com/lizongying/my-tv.git
synced 2026-11-01 09:06:31 +08:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b157f1eb28 | ||
|
|
2b172ae615 |
+10
@@ -1,5 +1,15 @@
|
|||||||
## 更新日志
|
## 更新日志
|
||||||
|
|
||||||
|
### v1.9.4(通用)
|
||||||
|
|
||||||
|
* 修复默认时间不显示问题
|
||||||
|
* 设置页居中
|
||||||
|
* 频道号和时间对齐
|
||||||
|
|
||||||
|
### v1.9.2(通用)
|
||||||
|
|
||||||
|
* 修复一个重试的错误
|
||||||
|
|
||||||
### v1.9.0(通用)
|
### v1.9.0(通用)
|
||||||
|
|
||||||
* 减少视频播放失败情况
|
* 减少视频播放失败情况
|
||||||
|
|||||||
@@ -39,6 +39,7 @@ class ChannelFragment : Fragment() {
|
|||||||
binding.channel.layoutParams = layoutParams
|
binding.channel.layoutParams = layoutParams
|
||||||
|
|
||||||
binding.content.textSize = application.px2PxFont(binding.content.textSize)
|
binding.content.textSize = application.px2PxFont(binding.content.textSize)
|
||||||
|
binding.time.textSize = application.px2PxFont(binding.time.textSize)
|
||||||
|
|
||||||
binding.main.layoutParams.width = application.shouldWidthPx()
|
binding.main.layoutParams.width = application.shouldWidthPx()
|
||||||
binding.main.layoutParams.height = application.shouldHeightPx()
|
binding.main.layoutParams.height = application.shouldHeightPx()
|
||||||
|
|||||||
@@ -1,8 +1,5 @@
|
|||||||
package com.lizongying.mytv
|
package com.lizongying.mytv
|
||||||
|
|
||||||
import android.content.Context
|
|
||||||
import android.net.ConnectivityManager
|
|
||||||
import android.net.Network
|
|
||||||
import android.os.Build
|
import android.os.Build
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.os.Handler
|
import android.os.Handler
|
||||||
@@ -34,7 +31,7 @@ class MainActivity : FragmentActivity(), Request.RequestListener {
|
|||||||
private val playerFragment = PlayerFragment()
|
private val playerFragment = PlayerFragment()
|
||||||
private val errorFragment = ErrorFragment()
|
private val errorFragment = ErrorFragment()
|
||||||
|
|
||||||
// private val loadingFragment = LoadingFragment()
|
private val loadingFragment = LoadingFragment()
|
||||||
private val mainFragment = MainFragment()
|
private val mainFragment = MainFragment()
|
||||||
private val infoFragment = InfoFragment()
|
private val infoFragment = InfoFragment()
|
||||||
private val channelFragment = ChannelFragment()
|
private val channelFragment = ChannelFragment()
|
||||||
@@ -86,7 +83,7 @@ class MainActivity : FragmentActivity(), Request.RequestListener {
|
|||||||
// }
|
// }
|
||||||
|
|
||||||
if (savedInstanceState == null) {
|
if (savedInstanceState == null) {
|
||||||
supportFragmentManager.beginTransaction()
|
val transaction = supportFragmentManager.beginTransaction()
|
||||||
.add(R.id.main_browse_fragment, playerFragment)
|
.add(R.id.main_browse_fragment, playerFragment)
|
||||||
.add(R.id.main_browse_fragment, errorFragment)
|
.add(R.id.main_browse_fragment, errorFragment)
|
||||||
// .add(R.id.main_browse_fragment, loadingFragment)
|
// .add(R.id.main_browse_fragment, loadingFragment)
|
||||||
@@ -96,9 +93,14 @@ class MainActivity : FragmentActivity(), Request.RequestListener {
|
|||||||
.add(R.id.main_browse_fragment, mainFragment)
|
.add(R.id.main_browse_fragment, mainFragment)
|
||||||
.hide(mainFragment)
|
.hide(mainFragment)
|
||||||
.hide(errorFragment)
|
.hide(errorFragment)
|
||||||
// .hide(loadingFragment)
|
|
||||||
.hide(timeFragment)
|
if (!SP.time) {
|
||||||
.commit()
|
transaction.hide(timeFragment)
|
||||||
|
} else {
|
||||||
|
transaction.show(timeFragment)
|
||||||
|
}
|
||||||
|
|
||||||
|
transaction.commitNow()
|
||||||
}
|
}
|
||||||
gestureDetector = GestureDetector(this, GestureListener())
|
gestureDetector = GestureDetector(this, GestureListener())
|
||||||
|
|
||||||
@@ -120,9 +122,6 @@ class MainActivity : FragmentActivity(), Request.RequestListener {
|
|||||||
// Log.i(TAG, "net ${Build.VERSION.SDK_INT}")
|
// Log.i(TAG, "net ${Build.VERSION.SDK_INT}")
|
||||||
// ready++
|
// ready++
|
||||||
// }
|
// }
|
||||||
|
|
||||||
showTime()
|
|
||||||
mainFragment.changeMenu()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fun showInfoFragment(tvViewModel: TVViewModel) {
|
fun showInfoFragment(tvViewModel: TVViewModel) {
|
||||||
@@ -152,6 +151,14 @@ class MainActivity : FragmentActivity(), Request.RequestListener {
|
|||||||
.commit()
|
.commit()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun showLoadingFragment() {
|
||||||
|
showFragment(loadingFragment)
|
||||||
|
}
|
||||||
|
|
||||||
|
fun hideLoadingFragment() {
|
||||||
|
hideFragment(loadingFragment)
|
||||||
|
}
|
||||||
|
|
||||||
fun showPlayerFragment() {
|
fun showPlayerFragment() {
|
||||||
if (playerFragment.isVisible) {
|
if (playerFragment.isVisible) {
|
||||||
return
|
return
|
||||||
@@ -222,8 +229,6 @@ class MainActivity : FragmentActivity(), Request.RequestListener {
|
|||||||
fun settingDelayHide() {
|
fun settingDelayHide() {
|
||||||
handler.removeCallbacks(hideSetting)
|
handler.removeCallbacks(hideSetting)
|
||||||
handler.postDelayed(hideSetting, delayHideSetting)
|
handler.postDelayed(hideSetting, delayHideSetting)
|
||||||
showTime()
|
|
||||||
mainFragment.changeMenu()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fun settingNeverHide() {
|
fun settingNeverHide() {
|
||||||
@@ -342,14 +347,12 @@ class MainActivity : FragmentActivity(), Request.RequestListener {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
Log.i(TAG, "settingFragment ${settingFragment.isVisible}")
|
if (settingFragment.isVisible) {
|
||||||
if (!settingFragment.isVisible) {
|
return
|
||||||
settingFragment.show(supportFragmentManager, "setting")
|
|
||||||
settingDelayHide()
|
|
||||||
} else {
|
|
||||||
handler.removeCallbacks(hideSetting)
|
|
||||||
settingFragment.dismiss()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
settingFragment.show(supportFragmentManager, TAG)
|
||||||
|
settingDelayHide()
|
||||||
}
|
}
|
||||||
|
|
||||||
private val hideSetting = Runnable {
|
private val hideSetting = Runnable {
|
||||||
@@ -421,6 +424,11 @@ class MainActivity : FragmentActivity(), Request.RequestListener {
|
|||||||
}, 2000)
|
}, 2000)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun active() {
|
||||||
|
if (settingFragment.isVisible) {
|
||||||
|
settingDelayHide()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
fun onKey(keyCode: Int): Boolean {
|
fun onKey(keyCode: Int): Boolean {
|
||||||
Log.i(TAG, "keyCode $keyCode")
|
Log.i(TAG, "keyCode $keyCode")
|
||||||
@@ -511,6 +519,7 @@ class MainActivity : FragmentActivity(), Request.RequestListener {
|
|||||||
}
|
}
|
||||||
|
|
||||||
KeyEvent.KEYCODE_ENTER -> {
|
KeyEvent.KEYCODE_ENTER -> {
|
||||||
|
active()
|
||||||
switchMainFragment()
|
switchMainFragment()
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -519,6 +528,7 @@ class MainActivity : FragmentActivity(), Request.RequestListener {
|
|||||||
}
|
}
|
||||||
|
|
||||||
KeyEvent.KEYCODE_DPAD_UP -> {
|
KeyEvent.KEYCODE_DPAD_UP -> {
|
||||||
|
active()
|
||||||
channelUp()
|
channelUp()
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -527,6 +537,7 @@ class MainActivity : FragmentActivity(), Request.RequestListener {
|
|||||||
}
|
}
|
||||||
|
|
||||||
KeyEvent.KEYCODE_DPAD_DOWN -> {
|
KeyEvent.KEYCODE_DPAD_DOWN -> {
|
||||||
|
active()
|
||||||
channelDown()
|
channelDown()
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -535,6 +546,7 @@ class MainActivity : FragmentActivity(), Request.RequestListener {
|
|||||||
}
|
}
|
||||||
|
|
||||||
KeyEvent.KEYCODE_DPAD_LEFT -> {
|
KeyEvent.KEYCODE_DPAD_LEFT -> {
|
||||||
|
active()
|
||||||
if (mainFragment.isHidden && !settingFragment.isVisible) {
|
if (mainFragment.isHidden && !settingFragment.isVisible) {
|
||||||
switchMainFragment()
|
switchMainFragment()
|
||||||
return true
|
return true
|
||||||
@@ -542,6 +554,7 @@ class MainActivity : FragmentActivity(), Request.RequestListener {
|
|||||||
}
|
}
|
||||||
|
|
||||||
KeyEvent.KEYCODE_DPAD_RIGHT -> {
|
KeyEvent.KEYCODE_DPAD_RIGHT -> {
|
||||||
|
active()
|
||||||
if (mainFragment.isHidden && !settingFragment.isVisible) {
|
if (mainFragment.isHidden && !settingFragment.isVisible) {
|
||||||
showSetting()
|
showSetting()
|
||||||
return true
|
return true
|
||||||
@@ -570,6 +583,12 @@ class MainActivity : FragmentActivity(), Request.RequestListener {
|
|||||||
override fun onResume() {
|
override fun onResume() {
|
||||||
Log.i(TAG, "onResume")
|
Log.i(TAG, "onResume")
|
||||||
super.onResume()
|
super.onResume()
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onResumeFragments() {
|
||||||
|
super.onResumeFragments()
|
||||||
|
mainFragment.changeMenu()
|
||||||
|
|
||||||
if (!mainFragment.isHidden) {
|
if (!mainFragment.isHidden) {
|
||||||
handler.postDelayed(hideMain, delayHideMain)
|
handler.postDelayed(hideMain, delayHideMain)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,5 @@
|
|||||||
package com.lizongying.mytv
|
package com.lizongying.mytv
|
||||||
|
|
||||||
import android.content.res.Resources
|
|
||||||
import android.graphics.Color
|
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.util.Log
|
import android.util.Log
|
||||||
import android.view.KeyEvent
|
import android.view.KeyEvent
|
||||||
@@ -162,8 +160,10 @@ class MainFragment : Fragment(), CardAdapter.ItemListener {
|
|||||||
if (tvViewModel.errInfo.value == "") {
|
if (tvViewModel.errInfo.value == "") {
|
||||||
(activity as? MainActivity)?.showPlayerFragment()
|
(activity as? MainActivity)?.showPlayerFragment()
|
||||||
(activity as? MainActivity)?.hideErrorFragment()
|
(activity as? MainActivity)?.hideErrorFragment()
|
||||||
|
(activity as? MainActivity)?.hideLoadingFragment()
|
||||||
} else {
|
} else {
|
||||||
(activity as? MainActivity)?.hidePlayerFragment()
|
(activity as? MainActivity)?.hidePlayerFragment()
|
||||||
|
(activity as? MainActivity)?.hideLoadingFragment()
|
||||||
(activity as? MainActivity)?.showErrorFragment(tvViewModel.errInfo.value.toString())
|
(activity as? MainActivity)?.showErrorFragment(tvViewModel.errInfo.value.toString())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
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
|
||||||
@@ -23,6 +24,11 @@ class SettingFragment : DialogFragment() {
|
|||||||
dialog?.window?.apply {
|
dialog?.window?.apply {
|
||||||
addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN)
|
addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN)
|
||||||
decorView.systemUiVisibility = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
|
decorView.systemUiVisibility = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
|
||||||
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
|
||||||
|
attributes.layoutInDisplayCutoutMode =
|
||||||
|
WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES
|
||||||
|
setAttributes(attributes)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
package com.lizongying.mytv
|
package com.lizongying.mytv
|
||||||
|
|
||||||
import android.content.res.Resources
|
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.os.Handler
|
import android.os.Handler
|
||||||
import android.view.LayoutInflater
|
import android.view.LayoutInflater
|
||||||
@@ -36,10 +35,18 @@ class TimeFragment : Fragment() {
|
|||||||
binding.time.layoutParams = layoutParams
|
binding.time.layoutParams = layoutParams
|
||||||
|
|
||||||
binding.content.textSize = application.px2PxFont(binding.content.textSize)
|
binding.content.textSize = application.px2PxFont(binding.content.textSize)
|
||||||
|
binding.channel.textSize = application.px2PxFont(binding.channel.textSize)
|
||||||
|
|
||||||
binding.main.layoutParams.width = application.shouldWidthPx()
|
binding.main.layoutParams.width = application.shouldWidthPx()
|
||||||
binding.main.layoutParams.height = application.shouldHeightPx()
|
binding.main.layoutParams.height = application.shouldHeightPx()
|
||||||
|
|
||||||
|
if (SP.time) {
|
||||||
|
handler.removeCallbacks(showRunnable)
|
||||||
|
handler.postDelayed(showRunnable, 0)
|
||||||
|
} else {
|
||||||
|
handler.removeCallbacks(showRunnable)
|
||||||
|
}
|
||||||
|
|
||||||
(activity as MainActivity).fragmentReady(TAG)
|
(activity as MainActivity).fragmentReady(TAG)
|
||||||
return binding.root
|
return binding.root
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -66,6 +66,10 @@ class TVViewModel(private var tv: TV) : ViewModel() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun changed(from: String) {
|
fun changed(from: String) {
|
||||||
|
retryTimes = 0
|
||||||
|
authYSPRetryTimes = 0
|
||||||
|
tokenYSPRetryTimes = 0
|
||||||
|
tokenFHRetryTimes = 0
|
||||||
_change.value = from
|
_change.value = from
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:gravity="center"
|
android:gravity="center"
|
||||||
@@ -10,22 +11,34 @@
|
|||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
>
|
>
|
||||||
|
|
||||||
<FrameLayout
|
<RelativeLayout
|
||||||
android:id="@+id/channel"
|
android:id="@+id/channel"
|
||||||
android:layout_width="90dp"
|
android:layout_width="90dp"
|
||||||
android:layout_height="60dp"
|
android:layout_height="60dp"
|
||||||
android:layout_gravity="end|top"
|
android:layout_gravity="end|top"
|
||||||
android:layout_marginTop="20dp"
|
android:layout_marginTop="15dp"
|
||||||
android:layout_marginEnd="170dp">
|
android:layout_marginEnd="170dp"
|
||||||
|
android:gravity="end|bottom" >
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/content"
|
android:id="@+id/content"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_gravity="end"
|
android:layout_gravity="end|bottom"
|
||||||
android:textColor="@color/white"
|
android:textColor="@color/white"
|
||||||
android:textStyle="bold"
|
android:textStyle="bold"
|
||||||
android:textSize="40sp" />
|
android:textSize="40sp"
|
||||||
</FrameLayout>
|
tools:text="99"
|
||||||
|
android:layout_alignBaseline="@+id/time"/>
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/time"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_gravity="end|bottom"
|
||||||
|
android:textColor="@color/white"
|
||||||
|
android:textStyle="bold"
|
||||||
|
android:textSize="32sp"
|
||||||
|
tools:text="12:34" />
|
||||||
|
</RelativeLayout>
|
||||||
</FrameLayout>
|
</FrameLayout>
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
@@ -40,7 +40,6 @@
|
|||||||
android:id="@+id/check_version"
|
android:id="@+id/check_version"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginEnd="10dp"
|
|
||||||
android:textSize="14sp"
|
android:textSize="14sp"
|
||||||
android:text="@string/check_version"
|
android:text="@string/check_version"
|
||||||
/>
|
/>
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:gravity="center"
|
android:gravity="center"
|
||||||
@@ -10,23 +11,35 @@
|
|||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
>
|
>
|
||||||
|
|
||||||
<FrameLayout
|
<RelativeLayout
|
||||||
android:id="@+id/time"
|
android:id="@+id/time"
|
||||||
android:layout_width="100dp"
|
android:layout_width="120dp"
|
||||||
android:layout_height="40dp"
|
android:layout_height="60dp"
|
||||||
android:layout_gravity="end|top"
|
android:layout_gravity="end|top"
|
||||||
android:layout_marginTop="25dp"
|
android:layout_marginTop="15dp"
|
||||||
android:layout_marginEnd="50dp">
|
android:layout_marginEnd="50dp"
|
||||||
|
android:gravity="end|bottom" >
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/channel"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_gravity="end|bottom"
|
||||||
|
android:textColor="@color/white"
|
||||||
|
android:textStyle="bold"
|
||||||
|
android:textSize="40sp"
|
||||||
|
tools:text="99"
|
||||||
|
android:layout_alignBaseline="@+id/content"/>
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/content"
|
android:id="@+id/content"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_gravity="end"
|
android:layout_gravity="end|bottom"
|
||||||
android:textColor="@color/white"
|
android:textColor="@color/white"
|
||||||
android:textStyle="bold"
|
android:textStyle="bold"
|
||||||
android:textSize="32sp" />
|
android:textSize="32sp"
|
||||||
</FrameLayout>
|
tools:text="12:34" />
|
||||||
|
</RelativeLayout>
|
||||||
|
|
||||||
</FrameLayout>
|
</FrameLayout>
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
@@ -6,5 +6,5 @@
|
|||||||
<string name="title_boot_startup">开机自启</string>
|
<string name="title_boot_startup">开机自启</string>
|
||||||
<string name="title_grid">频道列表采用网格样式</string>
|
<string name="title_grid">频道列表采用网格样式</string>
|
||||||
<string name="title_time">显示时间</string>
|
<string name="title_time">显示时间</string>
|
||||||
<string name="exit">退出</string>
|
<string name="exit">退出应用</string>
|
||||||
</resources>
|
</resources>
|
||||||
Reference in New Issue
Block a user