@Override
	void notifyFail(@NonNull final BluetoothDevice device, final int status) {
		if (timeoutCallback != null) {
			handler.removeCallbacks(timeoutCallback);
			timeoutCallback = null;
		}
		super.notifyFail(device, status);
	}
Synchronously waits, for as most as the given number of milliseconds, until the request
is ready.
<p>
When the timeout occurs, the {@link InterruptedException} will be thrown.
<p>
Callbacks set using {@link #done(SuccessCallback)} and {@link #fail(FailCallback)}
will be ignored.
<p>
This method may not be called from the main (UI) thread.

@param timeout optional timeout in milliseconds, 0 to disable timeout. This will
               override the timeout set using {@link #timeout(long)}.
@throws RequestFailedException      thrown when the BLE request finished with status other
                                    than {@link BluetoothGatt#GATT_SUCCESS}.
@throws InterruptedException        thrown if the timeout occurred before the request has
                                    finished.
@throws CancellationException       thrown when the request has been cancelled.
@throws IllegalStateException       thrown when you try to call this method from the main
                                    (UI) thread.
@throws DeviceDisconnectedException thrown when the device disconnected before the request
                                    was completed.
@throws BluetoothDisabledException  thrown when the Bluetooth adapter has been disabled.
@throws InvalidRequestException     thrown when the request was called before the device was
                                    connected at least once (unknown device).
@deprecated Use {@link #timeout(long)} and {@link #await()} instead.
ble/src/main/java/no/nordicsemi/android/ble/TimeoutableRequest.java