private void enqueueFirst(@NonNull final Request request) {
		final RequestQueue rq = requestQueue;
		if (rq == null) {
			final Deque<Request> queue = initialization && initQueue != null ? initQueue : taskQueue;
			queue.addFirst(request);
		} else {
			rq.addFirst(request);
		}
		request.enqueued = true;
		// This ensures that the request that was put as first will be executed.
		// The reason this was added is stated in
		// https://github.com/NordicSemiconductor/Android-BLE-Library/issues/200
		// Basically, an operation done in several requests (like WriteRequest with split())
		// must be able to be performed despite awaiting request.
		operationInProgress = false;
		// nextRequest(...) must be called after enqueuing this request.
	}
Enqueues the given request at the front of the the init or task queue, depending
on whether the initialization is in progress, or not.
<p>
This method sets the {@link #operationInProgress} to false, assuming the newly added
request will be executed immediately after this method ends.

@param request the request to be added.
ble/src/main/java/no/nordicsemi/android/ble/BleManagerHandler.java