Skip to content

Commit c10d8b6

Browse files
committed
add retry
1 parent 0bfac7d commit c10d8b6

File tree

5 files changed

+33
-30
lines changed

5 files changed

+33
-30
lines changed

README.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,11 @@
1414

1515
## 更新日志
1616

17+
### v1.3.2
18+
19+
* 增加重试,减少因网络问题导致的播放失败
20+
* 优化横幅banner
21+
1722
### v1.2.6
1823

1924
* 支持安卓4.2

app/src/main/AndroidManifest.xml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,11 @@
1212
android:icon="@mipmap/ic_launcher"
1313
android:label="@string/app_name"
1414
android:supportsRtl="true"
15-
android:usesCleartextTraffic="true"
1615
android:theme="@style/Theme.MyTV">
1716
<activity
1817
android:keepScreenOn="true"
1918
android:name=".MainActivity"
20-
android:banner="@drawable/logo"
19+
android:banner="@drawable/banner"
2120
android:exported="true"
2221
android:icon="@drawable/logo"
2322
android:logo="@drawable/logo"

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

Lines changed: 25 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@ import retrofit2.Response
2626
import javax.crypto.Cipher
2727
import javax.crypto.spec.IvParameterSpec
2828
import javax.crypto.spec.SecretKeySpec
29-
import kotlin.reflect.KFunction0
3029

3130

3231
class Request {
@@ -93,27 +92,6 @@ class Request {
9392
ysp = YSP(context)
9493
}
9594

96-
fun fetchToken(fragmentReady: KFunction0<Unit>) {
97-
yspTokenService.getInfo()
98-
.enqueue(object : Callback<Info> {
99-
override fun onResponse(call: Call<Info>, response: Response<Info>) {
100-
if (response.isSuccessful) {
101-
val info = response.body()
102-
token = info?.data?.token
103-
Log.i(TAG, "info success $token")
104-
} else {
105-
Log.e(TAG, "info status error")
106-
}
107-
fragmentReady()
108-
}
109-
110-
override fun onFailure(call: Call<Info>, t: Throwable) {
111-
Log.e(TAG, "info request error $t")
112-
fragmentReady()
113-
}
114-
})
115-
}
116-
11795
fun fetchVideo(tvModel: TVViewModel, cookie: String) {
11896
if (::myRunnable.isInitialized) {
11997
handler.removeCallbacks(myRunnable)
@@ -150,26 +128,38 @@ class Request {
150128
Log.i(TAG, "$title url $url")
151129
tvModel.addVideoUrl(url)
152130
tvModel.allReady()
153-
131+
tvModel.retryTimes = 0
154132
myRunnable = MyRunnable(tvModel)
155133
handler.post(myRunnable)
156134
} else {
157135
Log.e(TAG, "$title key error")
158-
tvModel.firstSource()
136+
if (tvModel.retryTimes < tvModel.retryMaxTimes) {
137+
tvModel.retryTimes++
138+
fetchData(tvModel)
139+
}
159140
}
160141
} else {
161142
Log.e(TAG, "$title url error $request")
162-
tvModel.firstSource()
143+
if (tvModel.retryTimes < tvModel.retryMaxTimes) {
144+
tvModel.retryTimes++
145+
fetchData(tvModel)
146+
}
163147
}
164148
} else {
165149
Log.e(TAG, "$title status error")
166-
tvModel.firstSource()
150+
if (tvModel.retryTimes < tvModel.retryMaxTimes) {
151+
tvModel.retryTimes++
152+
fetchData(tvModel)
153+
}
167154
}
168155
}
169156

170157
override fun onFailure(call: Call<LiveInfo>, t: Throwable) {
171158
Log.e(TAG, "$title request error")
172-
tvModel.firstSource()
159+
if (tvModel.retryTimes < tvModel.retryMaxTimes) {
160+
tvModel.retryTimes++
161+
fetchData(tvModel)
162+
}
173163
}
174164
})
175165
}
@@ -207,11 +197,19 @@ class Request {
207197
fetchVideo(tvModel, cookie)
208198
} else {
209199
Log.e(TAG, "info status error")
200+
if (tvModel.retryTimes < tvModel.retryMaxTimes) {
201+
tvModel.retryTimes++
202+
fetchData(tvModel)
203+
}
210204
}
211205
}
212206

213207
override fun onFailure(call: Call<Info>, t: Throwable) {
214208
Log.e(TAG, "info request error $t")
209+
if (tvModel.retryTimes < tvModel.retryMaxTimes) {
210+
tvModel.retryTimes++
211+
fetchData(tvModel)
212+
}
215213
}
216214
})
217215
} else {
@@ -251,7 +249,6 @@ class Request {
251249
// Log.d(TAG, "$title kvcollect success")
252250
} else {
253251
Log.e(TAG, "$title kvcollect status error")
254-
tvModel.firstSource()
255252
}
256253
}
257254

app/src/main/java/com/lizongying/mytv/models/TVViewModel.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ class TVViewModel(private var tv: TV) : ViewModel() {
1919
private var rowPosition: Int = 0
2020
private var itemPosition: Int = 0
2121

22+
var retryTimes: Int = 0
23+
var retryMaxTimes: Int = 3
2224
var programUpdateTime: Long = 0
2325

2426
private val _programId = MutableLiveData<String>()
12.8 KB
Loading

0 commit comments

Comments
 (0)