mirror of
https://github.com/lizongying/my-tv.git
synced 2026-10-26 22:26:29 +08:00
lt23 test
This commit is contained in:
@@ -23,6 +23,7 @@ class InfoFragment : Fragment() {
|
||||
savedInstanceState: Bundle?
|
||||
): View {
|
||||
_binding = InfoBinding.inflate(inflater, container, false)
|
||||
(activity as MainActivity).fragmentReady()
|
||||
return binding.root
|
||||
}
|
||||
|
||||
@@ -34,7 +35,6 @@ class InfoFragment : Fragment() {
|
||||
}
|
||||
|
||||
fun show(tvViewModel: TVViewModel) {
|
||||
Log.i(TAG, "show")
|
||||
binding.textView.text = tvViewModel.title.value
|
||||
Glide.with(this)
|
||||
.load(tvViewModel.logo.value)
|
||||
@@ -57,7 +57,6 @@ class InfoFragment : Fragment() {
|
||||
}
|
||||
|
||||
private val removeRunnable = Runnable {
|
||||
Log.i(TAG, "hide")
|
||||
view?.visibility = View.GONE
|
||||
}
|
||||
|
||||
|
||||
@@ -85,7 +85,7 @@ class MainActivity : FragmentActivity() {
|
||||
val transaction = supportFragmentManager.beginTransaction()
|
||||
|
||||
if (mainFragment.isHidden) {
|
||||
focusMainFragment()
|
||||
// focusMainFragment()
|
||||
transaction.show(mainFragment)
|
||||
} else {
|
||||
transaction.hide(mainFragment)
|
||||
@@ -110,6 +110,10 @@ class MainActivity : FragmentActivity() {
|
||||
}
|
||||
}
|
||||
|
||||
fun fragmentReady() {
|
||||
mainFragment.fragmentReady()
|
||||
}
|
||||
|
||||
override fun onTouchEvent(event: MotionEvent?): Boolean {
|
||||
if (event != null) {
|
||||
gestureDetector.onTouchEvent(event)
|
||||
|
||||
@@ -6,6 +6,7 @@ import android.os.Bundle
|
||||
import android.os.Handler
|
||||
import android.os.Looper
|
||||
import android.util.Log
|
||||
import android.view.View
|
||||
import androidx.leanback.app.BrowseSupportFragment
|
||||
import androidx.leanback.widget.ArrayObjectAdapter
|
||||
import androidx.leanback.widget.HeaderItem
|
||||
@@ -41,6 +42,8 @@ class MainFragment : BrowseSupportFragment() {
|
||||
private val handler = Handler(Looper.getMainLooper())
|
||||
private lateinit var mUpdateProgramRunnable: UpdateProgramRunnable
|
||||
|
||||
private var ready = 0
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
headersState = HEADERS_DISABLED
|
||||
@@ -52,16 +55,14 @@ class MainFragment : BrowseSupportFragment() {
|
||||
sharedPref = activity?.getPreferences(Context.MODE_PRIVATE)
|
||||
|
||||
request = activity?.let { Request(it) }
|
||||
|
||||
loadRows()
|
||||
mUpdateProgramRunnable = UpdateProgramRunnable()
|
||||
handler.post(mUpdateProgramRunnable)
|
||||
|
||||
setupEventListeners()
|
||||
|
||||
view?.post {
|
||||
// request?.fetchPage()
|
||||
// tvListViewModel.getTVViewModel(0)?.let { request?.fetchProgram(it) }
|
||||
}
|
||||
mUpdateProgramRunnable = UpdateProgramRunnable()
|
||||
handler.post(mUpdateProgramRunnable)
|
||||
|
||||
tvListViewModel.getTVListViewModel().value?.forEach { tvViewModel ->
|
||||
tvViewModel.ready.observe(viewLifecycleOwner) { _ ->
|
||||
|
||||
@@ -102,6 +103,12 @@ class MainFragment : BrowseSupportFragment() {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fragmentReady()
|
||||
}
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
}
|
||||
|
||||
override fun onDestroy() {
|
||||
@@ -197,11 +204,6 @@ class MainFragment : BrowseSupportFragment() {
|
||||
itemPosition = 0
|
||||
savePosition(0)
|
||||
}
|
||||
|
||||
val tvViewModel = tvListViewModel.getTVViewModel(itemPosition)
|
||||
tvViewModel?.changed()
|
||||
|
||||
(activity as? MainActivity)?.switchMainFragment()
|
||||
}
|
||||
|
||||
fun focus() {
|
||||
@@ -210,6 +212,21 @@ class MainFragment : BrowseSupportFragment() {
|
||||
}
|
||||
}
|
||||
|
||||
fun fragmentReady() {
|
||||
ready++
|
||||
Log.i(TAG, "ready $ready")
|
||||
if (ready == 3) {
|
||||
|
||||
// request?.fetchPage()
|
||||
// tvListViewModel.getTVViewModel(0)?.let { request?.fetchProgram(it) }
|
||||
|
||||
val tvViewModel = tvListViewModel.getTVViewModel(itemPosition)
|
||||
tvViewModel?.changed()
|
||||
|
||||
(activity as? MainActivity)?.switchMainFragment()
|
||||
}
|
||||
}
|
||||
|
||||
fun savePosition(position: Int) {
|
||||
tvListViewModel.setItemPosition(position)
|
||||
with(sharedPref!!.edit()) {
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
package com.lizongying.mytv
|
||||
|
||||
import android.os.Bundle
|
||||
import android.util.Log
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
@@ -9,7 +8,6 @@ import android.view.ViewTreeObserver
|
||||
import androidx.annotation.OptIn
|
||||
import androidx.fragment.app.Fragment
|
||||
import androidx.media3.common.MediaItem
|
||||
import androidx.media3.common.PlaybackException
|
||||
import androidx.media3.common.Player
|
||||
import androidx.media3.common.VideoSize
|
||||
import androidx.media3.common.util.UnstableApi
|
||||
@@ -23,7 +21,6 @@ class PlayerFragment : Fragment() {
|
||||
|
||||
private var _binding: PlayerBinding? = null
|
||||
private var playerView: PlayerView? = null
|
||||
private var videoUrl: String? = null
|
||||
private var tvViewModel: TVViewModel? = null
|
||||
|
||||
override fun onCreateView(
|
||||
@@ -55,16 +52,9 @@ class PlayerFragment : Fragment() {
|
||||
// super.onPlayerError(error)
|
||||
// }
|
||||
})
|
||||
if (videoUrl !== null) {
|
||||
playerView!!.player?.run {
|
||||
videoUrl?.let { MediaItem.fromUri(it) }?.let { setMediaItem(it) }
|
||||
prepare()
|
||||
}
|
||||
videoUrl = null
|
||||
}
|
||||
}
|
||||
})
|
||||
Log.i(TAG, "PlayerFragment onCreateView")
|
||||
(activity as MainActivity).fragmentReady()
|
||||
return _binding!!.root
|
||||
}
|
||||
|
||||
@@ -73,18 +63,12 @@ class PlayerFragment : Fragment() {
|
||||
this.tvViewModel = tvViewModel
|
||||
val videoUrlCurrent =
|
||||
tvViewModel.videoIndex.value?.let { tvViewModel.videoUrl.value?.get(it) }
|
||||
if (playerView == null || playerView?.player == null) {
|
||||
Log.i(TAG, "playerView not ready $view}")
|
||||
videoUrl = videoUrlCurrent
|
||||
} else {
|
||||
Log.i(TAG, "playerView ok")
|
||||
playerView?.player?.run {
|
||||
val mediaItem = MediaItem.Builder()
|
||||
tvViewModel.id.value?.let { mediaItem.setMediaId(it.toString()) }
|
||||
videoUrlCurrent?.let { mediaItem.setUri(it) }
|
||||
setMediaItem(mediaItem.build())
|
||||
prepare()
|
||||
}
|
||||
playerView?.player?.run {
|
||||
val mediaItem = MediaItem.Builder()
|
||||
tvViewModel.id.value?.let { mediaItem.setMediaId(it.toString()) }
|
||||
videoUrlCurrent?.let { mediaItem.setUri(it) }
|
||||
setMediaItem(mediaItem.build())
|
||||
prepare()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -180,7 +180,7 @@ class Request(var context: Context) {
|
||||
?.enqueue(object : Callback<Void> {
|
||||
override fun onResponse(call: Call<Void>, response: Response<Void>) {
|
||||
if (response.isSuccessful) {
|
||||
Log.d(TAG, "$title kvcollect success")
|
||||
// Log.d(TAG, "$title kvcollect success")
|
||||
} else {
|
||||
Log.e(TAG, "$title kvcollect status error")
|
||||
tvModel.firstSource()
|
||||
|
||||
@@ -80,6 +80,7 @@ class YSP(var context: Context) {
|
||||
encryptor!!.encrypt(cnlid, timeStr, appVer, guid, platform)
|
||||
signature = getSignature()
|
||||
return """{"cnlid":"$cnlid","livepid":"$livepid","stream":"$stream","guid":"$guid","cKey":"$cKey","adjust":$adjust,"sphttps":"$sphttps","platform":"$platform","cmd":"$cmd","encryptVer":"$encryptVer","dtype":"$dtype","devid":"$devid","otype":"$otype","appVer":"$appVer","app_version":"$appVersion","rand_str":"$randStr","channel":"$channel","defn":"$defn","signature":"$signature"}"""
|
||||
// return """{"cnlid":"2000203803","livepid":"600001801","stream":"2","guid":"lq1y36mb_ccfwmja9zan","cKey":"--01A9F5E89BB86A0C61F4025BEDE15309B6913A79FD1AF1EE7F5EC9C7605F377D1D2281488385C32DEB9E7D0DD3559CB700BD7AF44DD5C9DE0AE14D94B8214027B5D664C108AEE23532348DCC61B86F7C8FBB6CF14D588E6093A25E97DF6D66F4882AB28F17016472DD43D45EF076B7F505176A5E8DEDF2662E5F9AB12B69CB20BCE1579BE724091F3AF6826AE34B713906F3FE139C3783F80EECBD08416DC525E1","adjust":1,"sphttps":"1","platform":"5910204","cmd":"2","encryptVer":"8.1","dtype":"1","devid":"devid","otype":"ojson","appVer":"V1.0.0","app_version":"V1.0.0","rand_str":"IOS2soOw44","channel":"ysp_tx","defn":"fhd","signature":"6ca945f651817de8c6e6910457ceafd6"}"""
|
||||
}
|
||||
|
||||
private fun getTimeStr(): String {
|
||||
|
||||
@@ -18,4 +18,15 @@ interface YSPApiService {
|
||||
fun getLiveInfo(
|
||||
@Body request: LiveInfoRequest,
|
||||
): Call<LiveInfo>
|
||||
|
||||
@POST("v1/player/get_live_info")
|
||||
@Headers(
|
||||
"content-type: application/json;charset=UTF-8",
|
||||
"referer: https://www.yangshipin.cn/",
|
||||
"yspappid: 519748109",
|
||||
"cookie: guid=1; vplatform=109; yspopenid=vu0-8lgGV2LW9QjDeuBFsX8yMnzs37Q3_HZF6XyVDpGR_I; vusession=mTIVXnDeVUg0FcP6Xo4kaXd9fxlc70a558kySW4phQU"
|
||||
)
|
||||
fun getLiveInfo2(
|
||||
@Body request: LiveInfoRequest,
|
||||
): Call<LiveInfo>
|
||||
}
|
||||
Reference in New Issue
Block a user