mirror of
https://github.com/lizongying/my-tv.git
synced 2026-10-29 15:46:36 +08:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b157f1eb28 | ||
|
|
2b172ae615 | ||
|
|
39e5cc7c1f |
+15
@@ -1,5 +1,20 @@
|
||||
## 更新日志
|
||||
|
||||
### v1.9.4(通用)
|
||||
|
||||
* 修复默认时间不显示问题
|
||||
* 设置页居中
|
||||
* 频道号和时间对齐
|
||||
|
||||
### v1.9.2(通用)
|
||||
|
||||
* 修复一个重试的错误
|
||||
|
||||
### v1.9.0(通用)
|
||||
|
||||
* 减少视频播放失败情况
|
||||
* 全面屏手机居中显示
|
||||
|
||||
### v1.8.8(通用)
|
||||
|
||||
* 样式优化
|
||||
|
||||
@@ -39,11 +39,12 @@ class ChannelFragment : Fragment() {
|
||||
binding.channel.layoutParams = layoutParams
|
||||
|
||||
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.height = application.shouldHeightPx()
|
||||
|
||||
(activity as MainActivity).fragmentReady("ChannelFragment")
|
||||
(activity as MainActivity).fragmentReady(TAG)
|
||||
return binding.root
|
||||
}
|
||||
|
||||
|
||||
@@ -59,7 +59,7 @@ class InfoFragment : Fragment() {
|
||||
|
||||
_binding!!.root.visibility = View.GONE
|
||||
|
||||
(activity as MainActivity).fragmentReady("InfoFragment")
|
||||
(activity as MainActivity).fragmentReady(TAG)
|
||||
return binding.root
|
||||
}
|
||||
|
||||
|
||||
@@ -1,8 +1,5 @@
|
||||
package com.lizongying.mytv
|
||||
|
||||
import android.content.Context
|
||||
import android.net.ConnectivityManager
|
||||
import android.net.Network
|
||||
import android.os.Build
|
||||
import android.os.Bundle
|
||||
import android.os.Handler
|
||||
@@ -17,6 +14,7 @@ import android.view.View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
|
||||
import android.view.View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
|
||||
import android.view.WindowManager
|
||||
import android.widget.Toast
|
||||
import androidx.fragment.app.Fragment
|
||||
import androidx.fragment.app.FragmentActivity
|
||||
import androidx.lifecycle.lifecycleScope
|
||||
import com.lizongying.mytv.models.TVViewModel
|
||||
@@ -33,7 +31,7 @@ class MainActivity : FragmentActivity(), Request.RequestListener {
|
||||
private val playerFragment = PlayerFragment()
|
||||
private val errorFragment = ErrorFragment()
|
||||
|
||||
// private val loadingFragment = LoadingFragment()
|
||||
private val loadingFragment = LoadingFragment()
|
||||
private val mainFragment = MainFragment()
|
||||
private val infoFragment = InfoFragment()
|
||||
private val channelFragment = ChannelFragment()
|
||||
@@ -65,6 +63,13 @@ class MainActivity : FragmentActivity(), Request.RequestListener {
|
||||
|
||||
Request.setRequestListener(this)
|
||||
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
|
||||
val lp = window.attributes
|
||||
lp.layoutInDisplayCutoutMode =
|
||||
WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES
|
||||
window.setAttributes(lp)
|
||||
}
|
||||
|
||||
window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
|
||||
window.addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN)
|
||||
window.decorView.systemUiVisibility =
|
||||
@@ -78,7 +83,7 @@ class MainActivity : FragmentActivity(), Request.RequestListener {
|
||||
// }
|
||||
|
||||
if (savedInstanceState == null) {
|
||||
supportFragmentManager.beginTransaction()
|
||||
val transaction = supportFragmentManager.beginTransaction()
|
||||
.add(R.id.main_browse_fragment, playerFragment)
|
||||
.add(R.id.main_browse_fragment, errorFragment)
|
||||
// .add(R.id.main_browse_fragment, loadingFragment)
|
||||
@@ -88,29 +93,35 @@ class MainActivity : FragmentActivity(), Request.RequestListener {
|
||||
.add(R.id.main_browse_fragment, mainFragment)
|
||||
.hide(mainFragment)
|
||||
.hide(errorFragment)
|
||||
// .hide(loadingFragment)
|
||||
.commit()
|
||||
|
||||
if (!SP.time) {
|
||||
transaction.hide(timeFragment)
|
||||
} else {
|
||||
transaction.show(timeFragment)
|
||||
}
|
||||
|
||||
transaction.commitNow()
|
||||
}
|
||||
gestureDetector = GestureDetector(this, GestureListener())
|
||||
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
|
||||
val connectivityManager =
|
||||
getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
|
||||
connectivityManager.registerDefaultNetworkCallback(object :
|
||||
ConnectivityManager.NetworkCallback() {
|
||||
override fun onAvailable(network: Network) {
|
||||
super.onAvailable(network)
|
||||
Log.i(TAG, "net ${Build.VERSION.SDK_INT}")
|
||||
if (this@MainActivity.isNetworkConnected) {
|
||||
Log.i(TAG, "net isNetworkConnected")
|
||||
ready++
|
||||
}
|
||||
}
|
||||
})
|
||||
} else {
|
||||
Log.i(TAG, "net ${Build.VERSION.SDK_INT}")
|
||||
ready++
|
||||
}
|
||||
// if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
|
||||
// val connectivityManager =
|
||||
// getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
|
||||
// connectivityManager.registerDefaultNetworkCallback(object :
|
||||
// ConnectivityManager.NetworkCallback() {
|
||||
// override fun onAvailable(network: Network) {
|
||||
// super.onAvailable(network)
|
||||
// Log.i(TAG, "net ${Build.VERSION.SDK_INT}")
|
||||
// if (this@MainActivity.isNetworkConnected) {
|
||||
// Log.i(TAG, "net isNetworkConnected")
|
||||
// ready++
|
||||
// }
|
||||
// }
|
||||
// })
|
||||
// } else {
|
||||
// Log.i(TAG, "net ${Build.VERSION.SDK_INT}")
|
||||
// ready++
|
||||
// }
|
||||
}
|
||||
|
||||
fun showInfoFragment(tvViewModel: TVViewModel) {
|
||||
@@ -140,6 +151,14 @@ class MainActivity : FragmentActivity(), Request.RequestListener {
|
||||
.commit()
|
||||
}
|
||||
|
||||
fun showLoadingFragment() {
|
||||
showFragment(loadingFragment)
|
||||
}
|
||||
|
||||
fun hideLoadingFragment() {
|
||||
hideFragment(loadingFragment)
|
||||
}
|
||||
|
||||
fun showPlayerFragment() {
|
||||
if (playerFragment.isVisible) {
|
||||
return
|
||||
@@ -210,7 +229,6 @@ class MainActivity : FragmentActivity(), Request.RequestListener {
|
||||
fun settingDelayHide() {
|
||||
handler.removeCallbacks(hideSetting)
|
||||
handler.postDelayed(hideSetting, delayHideSetting)
|
||||
showTime()
|
||||
}
|
||||
|
||||
fun settingNeverHide() {
|
||||
@@ -238,20 +256,37 @@ class MainActivity : FragmentActivity(), Request.RequestListener {
|
||||
fun fragmentReady(tag: String) {
|
||||
ready++
|
||||
Log.i(TAG, "ready $tag $ready ")
|
||||
if (ready == 8) {
|
||||
if (ready == 7) {
|
||||
mainFragment.fragmentReady()
|
||||
showTime()
|
||||
}
|
||||
}
|
||||
|
||||
private fun showTime() {
|
||||
Log.i(TAG, "showTime ${SP.time}")
|
||||
if (SP.time) {
|
||||
timeFragment.show()
|
||||
showFragment(timeFragment)
|
||||
} else {
|
||||
timeFragment.hide()
|
||||
hideFragment(timeFragment)
|
||||
}
|
||||
mainFragment.changeStyle()
|
||||
}
|
||||
|
||||
private fun showFragment(fragment: Fragment) {
|
||||
if (!fragment.isHidden) {
|
||||
return
|
||||
}
|
||||
|
||||
supportFragmentManager.beginTransaction()
|
||||
.show(fragment)
|
||||
.commitNow()
|
||||
}
|
||||
|
||||
private fun hideFragment(fragment: Fragment) {
|
||||
if (fragment.isHidden) {
|
||||
return
|
||||
}
|
||||
|
||||
supportFragmentManager.beginTransaction()
|
||||
.hide(fragment)
|
||||
.commitNow()
|
||||
}
|
||||
|
||||
override fun onTouchEvent(event: MotionEvent?): Boolean {
|
||||
@@ -312,20 +347,19 @@ class MainActivity : FragmentActivity(), Request.RequestListener {
|
||||
return
|
||||
}
|
||||
|
||||
Log.i(TAG, "settingFragment ${settingFragment.isVisible}")
|
||||
if (!settingFragment.isVisible) {
|
||||
settingFragment.show(supportFragmentManager, "setting")
|
||||
settingDelayHide()
|
||||
} else {
|
||||
handler.removeCallbacks(hideSetting)
|
||||
settingFragment.dismiss()
|
||||
if (settingFragment.isVisible) {
|
||||
return
|
||||
}
|
||||
|
||||
settingFragment.show(supportFragmentManager, TAG)
|
||||
settingDelayHide()
|
||||
}
|
||||
|
||||
private val hideSetting = Runnable {
|
||||
if (settingFragment.isVisible) {
|
||||
settingFragment.dismiss()
|
||||
showTime()
|
||||
mainFragment.changeMenu()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -390,6 +424,11 @@ class MainActivity : FragmentActivity(), Request.RequestListener {
|
||||
}, 2000)
|
||||
}
|
||||
|
||||
private fun active() {
|
||||
if (settingFragment.isVisible) {
|
||||
settingDelayHide()
|
||||
}
|
||||
}
|
||||
|
||||
fun onKey(keyCode: Int): Boolean {
|
||||
Log.i(TAG, "keyCode $keyCode")
|
||||
@@ -480,6 +519,7 @@ class MainActivity : FragmentActivity(), Request.RequestListener {
|
||||
}
|
||||
|
||||
KeyEvent.KEYCODE_ENTER -> {
|
||||
active()
|
||||
switchMainFragment()
|
||||
}
|
||||
|
||||
@@ -488,6 +528,7 @@ class MainActivity : FragmentActivity(), Request.RequestListener {
|
||||
}
|
||||
|
||||
KeyEvent.KEYCODE_DPAD_UP -> {
|
||||
active()
|
||||
channelUp()
|
||||
}
|
||||
|
||||
@@ -496,6 +537,7 @@ class MainActivity : FragmentActivity(), Request.RequestListener {
|
||||
}
|
||||
|
||||
KeyEvent.KEYCODE_DPAD_DOWN -> {
|
||||
active()
|
||||
channelDown()
|
||||
}
|
||||
|
||||
@@ -504,6 +546,7 @@ class MainActivity : FragmentActivity(), Request.RequestListener {
|
||||
}
|
||||
|
||||
KeyEvent.KEYCODE_DPAD_LEFT -> {
|
||||
active()
|
||||
if (mainFragment.isHidden && !settingFragment.isVisible) {
|
||||
switchMainFragment()
|
||||
return true
|
||||
@@ -511,6 +554,7 @@ class MainActivity : FragmentActivity(), Request.RequestListener {
|
||||
}
|
||||
|
||||
KeyEvent.KEYCODE_DPAD_RIGHT -> {
|
||||
active()
|
||||
if (mainFragment.isHidden && !settingFragment.isVisible) {
|
||||
showSetting()
|
||||
return true
|
||||
@@ -539,6 +583,12 @@ class MainActivity : FragmentActivity(), Request.RequestListener {
|
||||
override fun onResume() {
|
||||
Log.i(TAG, "onResume")
|
||||
super.onResume()
|
||||
}
|
||||
|
||||
override fun onResumeFragments() {
|
||||
super.onResumeFragments()
|
||||
mainFragment.changeMenu()
|
||||
|
||||
if (!mainFragment.isHidden) {
|
||||
handler.postDelayed(hideMain, delayHideMain)
|
||||
}
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
package com.lizongying.mytv
|
||||
|
||||
import android.content.res.Resources
|
||||
import android.graphics.Color
|
||||
import android.os.Bundle
|
||||
import android.util.Log
|
||||
import android.view.KeyEvent
|
||||
@@ -162,8 +160,10 @@ class MainFragment : Fragment(), CardAdapter.ItemListener {
|
||||
if (tvViewModel.errInfo.value == "") {
|
||||
(activity as? MainActivity)?.showPlayerFragment()
|
||||
(activity as? MainActivity)?.hideErrorFragment()
|
||||
(activity as? MainActivity)?.hideLoadingFragment()
|
||||
} else {
|
||||
(activity as? MainActivity)?.hidePlayerFragment()
|
||||
(activity as? MainActivity)?.hideLoadingFragment()
|
||||
(activity as? MainActivity)?.showErrorFragment(tvViewModel.errInfo.value.toString())
|
||||
}
|
||||
}
|
||||
@@ -205,11 +205,11 @@ class MainFragment : Fragment(), CardAdapter.ItemListener {
|
||||
}
|
||||
}
|
||||
}
|
||||
(activity as MainActivity).fragmentReady("MainFragment")
|
||||
(activity as MainActivity).fragmentReady(TAG)
|
||||
}
|
||||
}
|
||||
|
||||
fun changeStyle() {
|
||||
fun changeMenu() {
|
||||
if (SP.grid) {
|
||||
for (i in rowList) {
|
||||
if (i is RecyclerView) {
|
||||
|
||||
@@ -93,7 +93,7 @@ class PlayerFragment : Fragment(), SurfaceHolder.Callback {
|
||||
})
|
||||
}
|
||||
})
|
||||
(activity as MainActivity).fragmentReady("PlayerFragment")
|
||||
(activity as MainActivity).fragmentReady(TAG)
|
||||
return _binding!!.root
|
||||
}
|
||||
|
||||
@@ -154,7 +154,7 @@ class PlayerFragment : Fragment(), SurfaceHolder.Callback {
|
||||
}
|
||||
|
||||
companion object {
|
||||
private const val TAG = "PlaybackVideoFragment"
|
||||
private const val TAG = "PlayerFragment"
|
||||
}
|
||||
|
||||
override fun surfaceCreated(holder: SurfaceHolder) {
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.lizongying.mytv
|
||||
|
||||
import android.os.Build
|
||||
import android.os.Bundle
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
@@ -23,6 +24,11 @@ class SettingFragment : DialogFragment() {
|
||||
dialog?.window?.apply {
|
||||
addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN)
|
||||
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
|
||||
|
||||
import android.content.res.Resources
|
||||
import android.os.Bundle
|
||||
import android.os.Handler
|
||||
import android.view.LayoutInflater
|
||||
@@ -36,27 +35,32 @@ class TimeFragment : Fragment() {
|
||||
binding.time.layoutParams = layoutParams
|
||||
|
||||
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.height = application.shouldHeightPx()
|
||||
|
||||
(activity as MainActivity).fragmentReady("TimeFragment")
|
||||
if (SP.time) {
|
||||
handler.removeCallbacks(showRunnable)
|
||||
handler.postDelayed(showRunnable, 0)
|
||||
} else {
|
||||
handler.removeCallbacks(showRunnable)
|
||||
}
|
||||
|
||||
(activity as MainActivity).fragmentReady(TAG)
|
||||
return binding.root
|
||||
}
|
||||
|
||||
override fun onResume() {
|
||||
super.onResume()
|
||||
if (view?.visibility == View.VISIBLE) {
|
||||
override fun onHiddenChanged(hidden: Boolean) {
|
||||
super.onHiddenChanged(hidden)
|
||||
if (!hidden) {
|
||||
handler.removeCallbacks(showRunnable)
|
||||
handler.postDelayed(showRunnable, 0)
|
||||
} else {
|
||||
handler.removeCallbacks(showRunnable)
|
||||
}
|
||||
}
|
||||
|
||||
override fun onPause() {
|
||||
super.onPause()
|
||||
handler.removeCallbacks(showRunnable)
|
||||
}
|
||||
|
||||
private val showRunnable: Runnable = Runnable {
|
||||
run {
|
||||
if (_binding == null) {
|
||||
@@ -67,17 +71,6 @@ class TimeFragment : Fragment() {
|
||||
}
|
||||
}
|
||||
|
||||
fun show() {
|
||||
view?.visibility = View.VISIBLE
|
||||
handler.removeCallbacks(showRunnable)
|
||||
handler.postDelayed(showRunnable, 0)
|
||||
}
|
||||
|
||||
fun hide() {
|
||||
view?.visibility = View.GONE
|
||||
handler.removeCallbacks(showRunnable)
|
||||
}
|
||||
|
||||
override fun onDestroyView() {
|
||||
handler.removeCallbacks(showRunnable)
|
||||
super.onDestroyView()
|
||||
|
||||
@@ -66,6 +66,10 @@ class TVViewModel(private var tv: TV) : ViewModel() {
|
||||
}
|
||||
|
||||
fun changed(from: String) {
|
||||
retryTimes = 0
|
||||
authYSPRetryTimes = 0
|
||||
tokenYSPRetryTimes = 0
|
||||
tokenFHRetryTimes = 0
|
||||
_change.value = from
|
||||
}
|
||||
|
||||
|
||||
@@ -119,7 +119,9 @@ object Request {
|
||||
if (!tvModel.getTV().mustToken) {
|
||||
fetchAuth(tvModel, cookie)
|
||||
} else {
|
||||
// TODO
|
||||
val err = "错误"
|
||||
Log.e(TAG, "$title $err")
|
||||
tvModel.setErrInfo(err)
|
||||
}
|
||||
}
|
||||
} else {
|
||||
@@ -144,7 +146,9 @@ object Request {
|
||||
if (!tvModel.getTV().mustToken) {
|
||||
fetchAuth(tvModel, cookie)
|
||||
} else {
|
||||
// TODO
|
||||
val err = "错误"
|
||||
Log.e(TAG, "$title $err")
|
||||
tvModel.setErrInfo(err)
|
||||
}
|
||||
}
|
||||
} else {
|
||||
@@ -171,7 +175,9 @@ object Request {
|
||||
if (!tvModel.getTV().mustToken) {
|
||||
fetchAuth(tvModel, cookie)
|
||||
} else {
|
||||
// TODO
|
||||
val err = "错误"
|
||||
Log.e(TAG, "$title $err")
|
||||
tvModel.setErrInfo(err)
|
||||
}
|
||||
}
|
||||
} else {
|
||||
@@ -241,19 +247,30 @@ object Request {
|
||||
if (needToken && tvModel.tokenYSPRetryTimes < tvModel.tokenYSPRetryMaxTimes) {
|
||||
tvModel.tokenYSPRetryTimes++
|
||||
tvModel.needGetToken = true
|
||||
fetchVideo(tvModel)
|
||||
// fetchAuth(tvModel)
|
||||
if (needAuth) {
|
||||
fetchAuth(tvModel)
|
||||
} else {
|
||||
fetchVideo(tvModel)
|
||||
}
|
||||
} else {
|
||||
if (!tvModel.getTV().mustToken) {
|
||||
fetchVideo(tvModel, cookie)
|
||||
// fetchAuth(tvModel, cookie)
|
||||
if (needAuth) {
|
||||
fetchAuth(tvModel, cookie)
|
||||
} else {
|
||||
fetchVideo(tvModel, cookie)
|
||||
}
|
||||
} else {
|
||||
// TODO
|
||||
val err = "错误"
|
||||
Log.e(TAG, "$title $err")
|
||||
tvModel.setErrInfo(err)
|
||||
}
|
||||
}
|
||||
} else {
|
||||
fetchVideo(tvModel, cookie)
|
||||
// fetchAuth(tvModel, cookie)
|
||||
if (needAuth) {
|
||||
fetchAuth(tvModel, cookie)
|
||||
} else {
|
||||
fetchVideo(tvModel, cookie)
|
||||
}
|
||||
}
|
||||
} else {
|
||||
val err = "结果错误"
|
||||
@@ -274,19 +291,30 @@ object Request {
|
||||
if (needToken && tvModel.tokenYSPRetryTimes < tvModel.tokenYSPRetryMaxTimes) {
|
||||
tvModel.tokenYSPRetryTimes++
|
||||
tvModel.needGetToken = true
|
||||
fetchVideo(tvModel)
|
||||
// fetchAuth(tvModel)
|
||||
if (needAuth) {
|
||||
fetchAuth(tvModel)
|
||||
} else {
|
||||
fetchVideo(tvModel)
|
||||
}
|
||||
} else {
|
||||
if (!tvModel.getTV().mustToken) {
|
||||
fetchVideo(tvModel, cookie)
|
||||
// fetchAuth(tvModel, cookie)
|
||||
if (needAuth) {
|
||||
fetchAuth(tvModel, cookie)
|
||||
} else {
|
||||
fetchVideo(tvModel, cookie)
|
||||
}
|
||||
} else {
|
||||
// TODO
|
||||
val err = "错误"
|
||||
Log.e(TAG, "$title $err")
|
||||
tvModel.setErrInfo(err)
|
||||
}
|
||||
}
|
||||
} else {
|
||||
fetchVideo(tvModel, cookie)
|
||||
// fetchAuth(tvModel, cookie)
|
||||
if (needAuth) {
|
||||
fetchAuth(tvModel, cookie)
|
||||
} else {
|
||||
fetchVideo(tvModel, cookie)
|
||||
}
|
||||
}
|
||||
} else {
|
||||
val err = "其他错误"
|
||||
@@ -303,19 +331,30 @@ object Request {
|
||||
if (needToken && tvModel.tokenYSPRetryTimes < tvModel.tokenYSPRetryMaxTimes) {
|
||||
tvModel.tokenYSPRetryTimes++
|
||||
tvModel.needGetToken = true
|
||||
fetchVideo(tvModel)
|
||||
// fetchAuth(tvModel)
|
||||
if (needAuth) {
|
||||
fetchAuth(tvModel, cookie)
|
||||
} else {
|
||||
fetchVideo(tvModel, cookie)
|
||||
}
|
||||
} else {
|
||||
if (!tvModel.getTV().mustToken) {
|
||||
fetchVideo(tvModel, cookie)
|
||||
// fetchAuth(tvModel, cookie)
|
||||
if (needAuth) {
|
||||
fetchAuth(tvModel, cookie)
|
||||
} else {
|
||||
fetchVideo(tvModel, cookie)
|
||||
}
|
||||
} else {
|
||||
// TODO
|
||||
val err = "错误"
|
||||
Log.e(TAG, "$title $err")
|
||||
tvModel.setErrInfo(err)
|
||||
}
|
||||
}
|
||||
} else {
|
||||
fetchVideo(tvModel, cookie)
|
||||
// fetchAuth(tvModel, cookie)
|
||||
if (needAuth) {
|
||||
fetchAuth(tvModel, cookie)
|
||||
} else {
|
||||
fetchVideo(tvModel, cookie)
|
||||
}
|
||||
}
|
||||
} else {
|
||||
val err = "状态错误"
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:gravity="center"
|
||||
@@ -10,22 +11,34 @@
|
||||
android:layout_height="match_parent"
|
||||
>
|
||||
|
||||
<FrameLayout
|
||||
<RelativeLayout
|
||||
android:id="@+id/channel"
|
||||
android:layout_width="90dp"
|
||||
android:layout_height="60dp"
|
||||
android:layout_gravity="end|top"
|
||||
android:layout_marginTop="20dp"
|
||||
android:layout_marginEnd="170dp">
|
||||
android:layout_marginTop="15dp"
|
||||
android:layout_marginEnd="170dp"
|
||||
android:gravity="end|bottom" >
|
||||
|
||||
<TextView
|
||||
android:id="@+id/content"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="end"
|
||||
android:layout_gravity="end|bottom"
|
||||
android:textColor="@color/white"
|
||||
android:textStyle="bold"
|
||||
android:textSize="40sp" />
|
||||
</FrameLayout>
|
||||
android:textSize="40sp"
|
||||
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>
|
||||
</LinearLayout>
|
||||
@@ -40,7 +40,6 @@
|
||||
android:id="@+id/check_version"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="10dp"
|
||||
android:textSize="14sp"
|
||||
android:text="@string/check_version"
|
||||
/>
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:gravity="center"
|
||||
@@ -10,23 +11,35 @@
|
||||
android:layout_height="match_parent"
|
||||
>
|
||||
|
||||
<FrameLayout
|
||||
<RelativeLayout
|
||||
android:id="@+id/time"
|
||||
android:layout_width="100dp"
|
||||
android:layout_height="40dp"
|
||||
android:layout_width="120dp"
|
||||
android:layout_height="60dp"
|
||||
android:layout_gravity="end|top"
|
||||
android:layout_marginTop="25dp"
|
||||
android:layout_marginEnd="50dp">
|
||||
android:layout_marginTop="15dp"
|
||||
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
|
||||
android:id="@+id/content"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="end"
|
||||
android:layout_gravity="end|bottom"
|
||||
android:textColor="@color/white"
|
||||
android:textStyle="bold"
|
||||
android:textSize="32sp" />
|
||||
</FrameLayout>
|
||||
android:textSize="32sp"
|
||||
tools:text="12:34" />
|
||||
</RelativeLayout>
|
||||
|
||||
</FrameLayout>
|
||||
</LinearLayout>
|
||||
@@ -6,5 +6,5 @@
|
||||
<string name="title_boot_startup">开机自启</string>
|
||||
<string name="title_grid">频道列表采用网格样式</string>
|
||||
<string name="title_time">显示时间</string>
|
||||
<string name="exit">退出</string>
|
||||
<string name="exit">退出应用</string>
|
||||
</resources>
|
||||
Reference in New Issue
Block a user