@Nullable
	public Long getLongValue(@LongFormat final int formatType,
							 @IntRange(from = 0) final int offset) {
		if ((offset + getTypeLen(formatType)) > size()) return null;

		return switch (formatType) {
			case FORMAT_UINT32_LE -> unsignedBytesToLong(
					mValue[offset],
					mValue[offset + 1],
					mValue[offset + 2],
					mValue[offset + 3]
			);
			case FORMAT_UINT32_BE -> unsignedBytesToLong(
					mValue[offset + 3],
					mValue[offset + 2],
					mValue[offset + 1],
					mValue[offset]
			);
			case FORMAT_SINT32_LE -> unsignedToSigned(unsignedBytesToLong(
					mValue[offset],
					mValue[offset + 1],
					mValue[offset + 2],
					mValue[offset + 3]
			), 32);
			case FORMAT_SINT32_BE -> unsignedToSigned(unsignedBytesToLong(
					mValue[offset + 3],
					mValue[offset + 2],
					mValue[offset + 1],
					mValue[offset]
			), 32);
			default -> null;
		};

	}
Returns a long value from the byte array.
<p>Only {@link #FORMAT_UINT32_LE} and {@link #FORMAT_SINT32_LE} are supported.
<p>The formatType parameter determines how the value
is to be interpreted. For example, setting formatType to
{@link #FORMAT_UINT32_LE} specifies that the first four bytes of the
value at the given offset are interpreted to generate the
return value.

@param formatType The format type used to interpret the value.
@param offset     Offset at which the integer value can be found.
@return Cached value or null of offset exceeds value size.
ble/src/main/java/no/nordicsemi/android/ble/data/Data.java