diff --git a/app/src/main/java/com/huanchengfly/tieba/post/services/OKSignService.kt b/app/src/main/java/com/huanchengfly/tieba/post/services/OKSignService.kt
index b7841183..b42a31bb 100644
--- a/app/src/main/java/com/huanchengfly/tieba/post/services/OKSignService.kt
+++ b/app/src/main/java/com/huanchengfly/tieba/post/services/OKSignService.kt
@@ -36,6 +36,8 @@ class OKSignService : IntentService(TAG), CoroutineScope, ProgressListener {
override val coroutineContext: CoroutineContext
get() = Dispatchers.Main + job
+ private var lastSignData: SignDataBean? = null
+
private val notificationManager: NotificationManagerCompat by lazy {
NotificationManagerCompat.from(this)
}
@@ -165,6 +167,7 @@ class OKSignService : IntentService(TAG), CoroutineScope, ProgressListener {
}
override fun onProgressStart(signDataBean: SignDataBean, current: Int, total: Int) {
+ lastSignData = signDataBean
updateNotification(
getString(
R.string.title_signing_progress,
@@ -217,8 +220,22 @@ class OKSignService : IntentService(TAG), CoroutineScope, ProgressListener {
}
override fun onFailure(current: Int, total: Int, errorCode: Int, errorMsg: String) {
- ServiceCompat.stopForeground(this, ServiceCompat.STOP_FOREGROUND_DETACH)
- updateNotification(getString(R.string.title_oksign_fail), errorMsg)
+ lastSignData.let {
+ if (it == null) {
+ ServiceCompat.stopForeground(this, ServiceCompat.STOP_FOREGROUND_DETACH)
+ updateNotification(getString(R.string.title_oksign_fail), errorMsg)
+ } else {
+ updateNotification(
+ getString(
+ R.string.title_signing_progress,
+ it.userName,
+ current + 1,
+ total
+ ),
+ getString(R.string.text_singing_progress_fail, it.forumName, errorMsg)
+ )
+ }
+ }
}
companion object {
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 4d75db11..93e9c634 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -436,6 +436,7 @@
粉丝
字体大小
%1$s吧 ✓
+ %1$s吧 × %2$s
%1$s吧 ✓ 经验 +%2$s
即将开始签到
签到已开始,可在通知栏查看进度