Rationalize download failure

This commit is contained in:
Viktor De Pasquale 2019-10-22 16:26:28 +02:00
parent a230d63cf9
commit 93edf72993

View File

@ -42,11 +42,7 @@ abstract class RemoteFileService : NotificationService() {
.doOnSubscribe { update(subject.hashCode()) { it.setContentTitle(subject.title) } } .doOnSubscribe { update(subject.hashCode()) { it.setContentTitle(subject.title) } }
.subscribeK(onError = { .subscribeK(onError = {
Timber.e(it) Timber.e(it)
finishNotify(subject.hashCode()) { notification -> failNotify(subject)
notification.setContentText(getString(R.string.download_file_error))
.setSmallIcon(android.R.drawable.stat_notify_error)
.setOngoing(false)
}
}) { }) {
val newId = finishNotify(subject) val newId = finishNotify(subject)
if (get<Activity>() !is NullActivity) { if (get<Activity>() !is NullActivity) {
@ -76,7 +72,7 @@ abstract class RemoteFileService : NotificationService() {
}.doOnComplete { }.doOnComplete {
if (subject is Manager) if (subject is Manager)
handleAPK(subject) handleAPK(subject)
}.doOnError { send(0f, subject) } }
private fun ResponseBody.toStream(id: Int, subject: DownloadSubject): InputStream { private fun ResponseBody.toStream(id: Int, subject: DownloadSubject): InputStream {
val maxRaw = contentLength() val maxRaw = contentLength()
@ -97,6 +93,13 @@ abstract class RemoteFileService : NotificationService() {
} }
} }
private fun failNotify(subject: DownloadSubject) = finishNotify(subject.hashCode()) {
send(0f, subject)
it.setContentText(getString(R.string.download_file_error))
.setSmallIcon(android.R.drawable.stat_notify_error)
.setOngoing(false)
}
private fun finishNotify(subject: DownloadSubject) = finishNotify(subject.hashCode()) { private fun finishNotify(subject: DownloadSubject) = finishNotify(subject.hashCode()) {
send(1f, subject) send(1f, subject)
it.addActions(subject) it.addActions(subject)