Skip to content

Commit b77979a

Browse files
authored
[Android] Fix QR Code parsing about vendor info (project-chip#33486)
* Fix QR Code parsing about vendor info * Update kotlin codestyle
1 parent 6bd80b0 commit b77979a

File tree

4 files changed

+14
-7
lines changed

4 files changed

+14
-7
lines changed

examples/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/setuppayloadscanner/CHIPDeviceDetailsFragment.kt

-1
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,6 @@ class CHIPDeviceDetailsFragment : Fragment() {
6161
binding.discriminatorEd.setText(deviceInfo.discriminator.toString())
6262
binding.serialNumberEd.setText(deviceInfo.serialNumber)
6363
binding.discoveryCapabilitiesTv.text = "${deviceInfo.discoveryCapabilities}"
64-
6564
if (deviceInfo.optionalQrCodeInfoMap.isEmpty()) {
6665
binding.vendorTagsLabelTv.visibility = View.GONE
6766
binding.vendorTagsContainer.visibility = View.GONE

examples/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/setuppayloadscanner/CHIPDeviceInfo.kt

+10-2
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ import kotlinx.parcelize.Parcelize
2424
import matter.onboardingpayload.DiscoveryCapability
2525
import matter.onboardingpayload.OnboardingPayload
2626
import matter.onboardingpayload.OnboardingPayloadException
27+
import matter.onboardingpayload.OptionalQRCodeInfoType
2728

2829
/** Class to hold the CHIP device information. */
2930
@Parcelize
@@ -57,6 +58,13 @@ data class CHIPDeviceInfo(
5758
if (serialNumber.isNotEmpty()) {
5859
onboardingPayload.addSerialNumber(serialNumber)
5960
}
61+
optionalQrCodeInfoMap.forEach { (_, info) ->
62+
if (info.type == OptionalQRCodeInfoType.TYPE_STRING && info.data != null) {
63+
onboardingPayload.addOptionalVendorData(info.tag, info.data)
64+
} else {
65+
onboardingPayload.addOptionalVendorData(info.tag, info.intDataValue)
66+
}
67+
}
6068
return onboardingPayload
6169
}
6270

@@ -78,8 +86,8 @@ data class CHIPDeviceInfo(
7886
setupPayload.getLongDiscriminatorValue(),
7987
setupPayload.setupPinCode,
8088
setupPayload.commissioningFlow,
81-
setupPayload.optionalQRCodeInfo.mapValues { (_, info) ->
82-
QrCodeInfo(info.tag, info.type, info.data, info.int32)
89+
setupPayload.getAllOptionalVendorData().associate { info ->
90+
info.tag to QrCodeInfo(info.tag, info.type, info.data, info.int32)
8391
},
8492
setupPayload.discoveryCapabilities,
8593
setupPayload.hasShortDiscriminator,

examples/android/CHIPTool/app/src/main/res/layout/chip_device_info_fragment.xml

+3-3
Original file line numberDiff line numberDiff line change
@@ -151,15 +151,15 @@
151151
android:layout_width="wrap_content"
152152
android:layout_height="wrap_content"
153153
android:layout_marginBottom="8dp"
154-
android:layout_below="@id/vendorTagsLabelTv"
154+
android:layout_below="@id/vendorTagsContainer"
155155
android:layout_alignParentStart="true"
156156
android:textSize="20sp"/>
157157
<EditText
158158
android:id="@+id/discoveryCapabilitiesEd"
159159
android:layout_width="wrap_content"
160160
android:layout_height="wrap_content"
161161
android:layout_marginStart="16dp"
162-
android:layout_below="@id/vendorTagsLabelTv"
162+
android:layout_below="@id/vendorTagsContainer"
163163
android:layout_toEndOf="@id/discoveryCapabilitiesLabelTv"
164164
android:layout_alignParentEnd="true"
165165
android:textSize="11sp"
@@ -260,6 +260,6 @@
260260
android:layout_below="@id/showQRCodeUriBtn"
261261
android:layout_alignParentBottom="true"
262262
android:layout_alignParentStart="true"
263-
android:textSize="20sp"/>
263+
android:textSize="12sp"/>
264264
</RelativeLayout>
265265
</ScrollView>

src/controller/java/src/matter/onboardingpayload/QRCodeBasicOnboardingPayloadGenerator.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -178,6 +178,6 @@ private fun populateTLVBits(
178178

179179
for (i in 0 until tlvBufSizeInBytes) {
180180
val value = tlvBuf[i]
181-
populateBits(bits, offset, value.toLong(), 8, totalPayloadDataSizeInBits)
181+
populateBits(bits, offset, value.toUByte().toLong(), 8, totalPayloadDataSizeInBits)
182182
}
183183
}

0 commit comments

Comments
 (0)