Slide 27
Slide 27 text
RetryWhenConfirmRetryAlert
extension ObservableType {
func retryWhenConfirmRetryAlert(wireframe: Wireframe) -> Observable {
return retryWhen { (errors: Observable) -> Observable in
return errors.flatMapWithIndex { (error, count) -> Observable in
let (title, message, canRetry) = createErrorAlertMessage(error)
if canRetry {
let retry = PromptAction(tr(.NetworkRetry))
return wireframe.promptFor(title: title,ɹmessage: message,ɹcancelAction: PromptAction(tr(.GlobalCancel)),
actions: [retry]).flatMap { (action) -> Observable in
return action == retry ? Observable.just(PromptRetryAction()) : Observable.error(Error.Ignore)
}
} else {
return wireframe.promptFor(title: title,ɹmessage: message, cancelAction: PromptAction(tr(.GlobalCancel)),
actions: []).flatMap { (action) -> Observable in
return Observable.error(Error.Ignore)
}
}
}
}
}
}