stripe/stripe-terminal-ios

Timeout not working

Closed this issue · 6 comments

When discovering readers, no matter what I set for a timeout value on the discovery config, the scan never calls the completion handler. I've tested numerous timeout values in the low single and double digit values without a reader turned on and the scanning never completes. Turning on a reader after more than a minute still provides results in didUpdateDiscoveredReaders, showing the scan is still active.

The docs say:
/**
The timeout (in seconds) after which discoverReeaders should fail. If the
value is 0 (the default), discoverReaders will never timeout.
*/

Hi @adamstener ,

If you're using the reader simulator, or the "bluetooth proximity" discovery method, the timeout will not apply. (Supporting timeout for these cases is in our backlog).

Thanks for flagging – we'll update docs in the next release!

Ben

@bg-stripe

This still seems to be the case in v 2.20... Any update on when iOS SDK will have parity with Android (the timeout is honored by Android SDK)?

We are currently implementing a timeout in application code to call SCPCancelable.Cancel() to enforce a timeout as workaround on iOS.

Should I open a new issue?

@jasells hi, yeah please open a new issue with some more details (what reader and discovery method type? what timeout value?). Thanks

Ok, just clarifying: "bluetooth proximity" does appear to honor timeout now (v 2.20.0), but simulator (READER sim, not iOS-Device sim) still does not. This does add a minor discrepancy between testing and real use-cases, but not the end of the world. I can still add a new issue if this is not in the backlog already

but simulator (READER sim, not iOS-Device sim) still does not

ah, good catch. Yes, please file a new issue for that so we can track it. I'll keep an eye out for it. Thanks for reporting.