add retry
This commit is contained in:
parent
0bfac7d679
commit
c10d8b688f
|
|
@ -14,6 +14,11 @@
|
||||||
|
|
||||||
## 更新日志
|
## 更新日志
|
||||||
|
|
||||||
|
### v1.3.2
|
||||||
|
|
||||||
|
* 增加重试,减少因网络问题导致的播放失败
|
||||||
|
* 优化横幅banner
|
||||||
|
|
||||||
### v1.2.6
|
### v1.2.6
|
||||||
|
|
||||||
* 支持安卓4.2
|
* 支持安卓4.2
|
||||||
|
|
|
||||||
|
|
@ -12,12 +12,11 @@
|
||||||
android:icon="@mipmap/ic_launcher"
|
android:icon="@mipmap/ic_launcher"
|
||||||
android:label="@string/app_name"
|
android:label="@string/app_name"
|
||||||
android:supportsRtl="true"
|
android:supportsRtl="true"
|
||||||
android:usesCleartextTraffic="true"
|
|
||||||
android:theme="@style/Theme.MyTV">
|
android:theme="@style/Theme.MyTV">
|
||||||
<activity
|
<activity
|
||||||
android:keepScreenOn="true"
|
android:keepScreenOn="true"
|
||||||
android:name=".MainActivity"
|
android:name=".MainActivity"
|
||||||
android:banner="@drawable/logo"
|
android:banner="@drawable/banner"
|
||||||
android:exported="true"
|
android:exported="true"
|
||||||
android:icon="@drawable/logo"
|
android:icon="@drawable/logo"
|
||||||
android:logo="@drawable/logo"
|
android:logo="@drawable/logo"
|
||||||
|
|
|
||||||
|
|
@ -26,7 +26,6 @@ import retrofit2.Response
|
||||||
import javax.crypto.Cipher
|
import javax.crypto.Cipher
|
||||||
import javax.crypto.spec.IvParameterSpec
|
import javax.crypto.spec.IvParameterSpec
|
||||||
import javax.crypto.spec.SecretKeySpec
|
import javax.crypto.spec.SecretKeySpec
|
||||||
import kotlin.reflect.KFunction0
|
|
||||||
|
|
||||||
|
|
||||||
class Request {
|
class Request {
|
||||||
|
|
@ -93,27 +92,6 @@ class Request {
|
||||||
ysp = YSP(context)
|
ysp = YSP(context)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun fetchToken(fragmentReady: KFunction0<Unit>) {
|
|
||||||
yspTokenService.getInfo()
|
|
||||||
.enqueue(object : Callback<Info> {
|
|
||||||
override fun onResponse(call: Call<Info>, response: Response<Info>) {
|
|
||||||
if (response.isSuccessful) {
|
|
||||||
val info = response.body()
|
|
||||||
token = info?.data?.token
|
|
||||||
Log.i(TAG, "info success $token")
|
|
||||||
} else {
|
|
||||||
Log.e(TAG, "info status error")
|
|
||||||
}
|
|
||||||
fragmentReady()
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun onFailure(call: Call<Info>, t: Throwable) {
|
|
||||||
Log.e(TAG, "info request error $t")
|
|
||||||
fragmentReady()
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
fun fetchVideo(tvModel: TVViewModel, cookie: String) {
|
fun fetchVideo(tvModel: TVViewModel, cookie: String) {
|
||||||
if (::myRunnable.isInitialized) {
|
if (::myRunnable.isInitialized) {
|
||||||
handler.removeCallbacks(myRunnable)
|
handler.removeCallbacks(myRunnable)
|
||||||
|
|
@ -150,26 +128,38 @@ class Request {
|
||||||
Log.i(TAG, "$title url $url")
|
Log.i(TAG, "$title url $url")
|
||||||
tvModel.addVideoUrl(url)
|
tvModel.addVideoUrl(url)
|
||||||
tvModel.allReady()
|
tvModel.allReady()
|
||||||
|
tvModel.retryTimes = 0
|
||||||
myRunnable = MyRunnable(tvModel)
|
myRunnable = MyRunnable(tvModel)
|
||||||
handler.post(myRunnable)
|
handler.post(myRunnable)
|
||||||
} else {
|
} else {
|
||||||
Log.e(TAG, "$title key error")
|
Log.e(TAG, "$title key error")
|
||||||
tvModel.firstSource()
|
if (tvModel.retryTimes < tvModel.retryMaxTimes) {
|
||||||
|
tvModel.retryTimes++
|
||||||
|
fetchData(tvModel)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
Log.e(TAG, "$title url error $request")
|
Log.e(TAG, "$title url error $request")
|
||||||
tvModel.firstSource()
|
if (tvModel.retryTimes < tvModel.retryMaxTimes) {
|
||||||
|
tvModel.retryTimes++
|
||||||
|
fetchData(tvModel)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
Log.e(TAG, "$title status error")
|
Log.e(TAG, "$title status error")
|
||||||
tvModel.firstSource()
|
if (tvModel.retryTimes < tvModel.retryMaxTimes) {
|
||||||
|
tvModel.retryTimes++
|
||||||
|
fetchData(tvModel)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onFailure(call: Call<LiveInfo>, t: Throwable) {
|
override fun onFailure(call: Call<LiveInfo>, t: Throwable) {
|
||||||
Log.e(TAG, "$title request error")
|
Log.e(TAG, "$title request error")
|
||||||
tvModel.firstSource()
|
if (tvModel.retryTimes < tvModel.retryMaxTimes) {
|
||||||
|
tvModel.retryTimes++
|
||||||
|
fetchData(tvModel)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
@ -207,11 +197,19 @@ class Request {
|
||||||
fetchVideo(tvModel, cookie)
|
fetchVideo(tvModel, cookie)
|
||||||
} else {
|
} else {
|
||||||
Log.e(TAG, "info status error")
|
Log.e(TAG, "info status error")
|
||||||
|
if (tvModel.retryTimes < tvModel.retryMaxTimes) {
|
||||||
|
tvModel.retryTimes++
|
||||||
|
fetchData(tvModel)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onFailure(call: Call<Info>, t: Throwable) {
|
override fun onFailure(call: Call<Info>, t: Throwable) {
|
||||||
Log.e(TAG, "info request error $t")
|
Log.e(TAG, "info request error $t")
|
||||||
|
if (tvModel.retryTimes < tvModel.retryMaxTimes) {
|
||||||
|
tvModel.retryTimes++
|
||||||
|
fetchData(tvModel)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -251,7 +249,6 @@ class Request {
|
||||||
// Log.d(TAG, "$title kvcollect success")
|
// Log.d(TAG, "$title kvcollect success")
|
||||||
} else {
|
} else {
|
||||||
Log.e(TAG, "$title kvcollect status error")
|
Log.e(TAG, "$title kvcollect status error")
|
||||||
tvModel.firstSource()
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -19,6 +19,8 @@ class TVViewModel(private var tv: TV) : ViewModel() {
|
||||||
private var rowPosition: Int = 0
|
private var rowPosition: Int = 0
|
||||||
private var itemPosition: Int = 0
|
private var itemPosition: Int = 0
|
||||||
|
|
||||||
|
var retryTimes: Int = 0
|
||||||
|
var retryMaxTimes: Int = 3
|
||||||
var programUpdateTime: Long = 0
|
var programUpdateTime: Long = 0
|
||||||
|
|
||||||
private val _programId = MutableLiveData<String>()
|
private val _programId = MutableLiveData<String>()
|
||||||
|
|
|
||||||
Binary file not shown.
|
After Width: | Height: | Size: 13 KiB |
Loading…
Reference in New Issue