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 即将开始签到 签到已开始,可在通知栏查看进度