summaryrefslogtreecommitdiff
path: root/service/java/com/android/server/uwb/params/CccDecoder.java
diff options
context:
space:
mode:
Diffstat (limited to 'service/java/com/android/server/uwb/params/CccDecoder.java')
-rw-r--r--service/java/com/android/server/uwb/params/CccDecoder.java14
1 files changed, 8 insertions, 6 deletions
diff --git a/service/java/com/android/server/uwb/params/CccDecoder.java b/service/java/com/android/server/uwb/params/CccDecoder.java
index 2761e580..8a94c160 100644
--- a/service/java/com/android/server/uwb/params/CccDecoder.java
+++ b/service/java/com/android/server/uwb/params/CccDecoder.java
@@ -62,7 +62,6 @@ import android.util.Log;
import com.android.server.uwb.config.ConfigParam;
import com.google.uwb.support.base.Params;
-import com.google.uwb.support.ccc.CccParams;
import com.google.uwb.support.ccc.CccProtocolVersion;
import com.google.uwb.support.ccc.CccPulseShapeCombo;
import com.google.uwb.support.ccc.CccRangingStartedParams;
@@ -162,11 +161,14 @@ public class CccDecoder extends TlvDecoder {
if (isBitSet(chapsPerslot, CCC_CHAPS_PER_SLOT_24)) {
builder.addChapsPerSlot(CHAPS_PER_SLOT_24);
}
- // Don't use TlvDecodeBuffer#getInt() to avoid conversion to little endian.
- int syncCodes = ByteBuffer.wrap(tlvs.getByteArray(CCC_SUPPORTED_SYNC_CODES)).getInt();
- for (int i = 0; i < 32; i++) {
- if (isBitSet(syncCodes, 1 << i)) {
- builder.addSyncCode(i + 1);
+ byte[] syncCodes = tlvs.getByteArray(CCC_SUPPORTED_SYNC_CODES);
+ for (int byteIndex = 0; byteIndex < syncCodes.length; byteIndex++) {
+ byte syncCodeByte = syncCodes[byteIndex];
+ for (int bitIndex = 0; bitIndex < 8; bitIndex++) {
+ if ((syncCodeByte & (1 << bitIndex)) != 0) {
+ int syncCodeValue = (byteIndex * 8) + bitIndex + 1;
+ builder.addSyncCode(syncCodeValue);
+ }
}
}