@NonNull
	public AwaitingRequest<T> trigger(@NonNull final Operation trigger) {
		if (trigger instanceof Request) {
			this.trigger = (Request) trigger;
			this.triggerStatus = NOT_STARTED;
			// The trigger will never receive invalid request event.
			// If the BluetoothDevice wasn't set, the whole WaitForValueChangedRequest would be invalid.
			/*this.trigger.invalid(() -> {
				// never called
			});*/
			this.trigger.internalBefore(device -> triggerStatus = STARTED);
			this.trigger.internalSuccess(device -> triggerStatus = BluetoothGatt.GATT_SUCCESS);
			this.trigger.internalFail((device, status) -> {
				triggerStatus = status;
				syncLock.open();
				notifyFail(device, status);
			});
		}
		return this;
	}
Sets an optional request that is suppose to trigger the notification or indication.
This is to ensure that the characteristic value won't change before the callback was set.

@param trigger the operation that triggers the notification, usually a write characteristic
               request that write some OP CODE.
@return The request.
ble/src/main/java/no/nordicsemi/android/ble/AwaitingRequest.java