Move ServiceConnector job timeouts to the job handler thread
Prior to this change, the response timeout was assigned via `orTimeout`
to the AndroidFuture, which has the default behavior of creating a
timeout task assigned to the main Looper (the application thread).
Callers that consumed the returned Future via a blocking call like
`Future.get()` would prevent the timeout from firing, leading to a block
in the main application thread.
This change explicitly sets the timeout handler to the job handler,
where the completion tasks of all jobs are handled.
Bug: 281589918
Test: Reproduced issue on aosp_cf_riscv64_phone (happens reliably due to
service bind failure) and confirmed that patch now successfully fires
the timeout and recovers.
Change-Id: Iee6736554904eaf59c22cdd252e0e1f8730b0643
1 file changed