Skip to content

Commit 40a17dc

Browse files
[Android] Fix handling manual code in CHIPTool (project-chip#29255)
* [Android] Fix handling manual code in CHIPTool * [Android] Fix handling manual code in CHIPTool * Re-run kotlin formatter via scriptsd/helpers/kotlin-format.sh --------- Co-authored-by: Andrei Litvin <andreilitvin@google.com>
1 parent 820e925 commit 40a17dc

File tree

1 file changed

+21
-23
lines changed
  • examples/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/setuppayloadscanner

1 file changed

+21
-23
lines changed

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

+21-23
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,6 @@ import androidx.camera.lifecycle.ProcessCameraProvider
3636
import androidx.core.content.ContextCompat
3737
import androidx.core.content.ContextCompat.checkSelfPermission
3838
import androidx.fragment.app.Fragment
39-
import chip.onboardingpayload.OnboardingPayload
40-
import chip.onboardingpayload.OnboardingPayloadException
4139
import chip.onboardingpayload.OnboardingPayloadParser
4240
import chip.onboardingpayload.UnrecognizedQrCodeException
4341
import com.google.chip.chiptool.R
@@ -139,9 +137,9 @@ class BarcodeFragment : Fragment() {
139137

140138
// workaround: can not use gms to scan the code in China, added a EditText to debug
141139
binding.manualCodeBtn.setOnClickListener {
142-
val qrCode = binding.manualCodeEditText.text.toString()
143-
Log.d(TAG, "Submit Code:$qrCode")
144-
handleInputQrCode(qrCode)
140+
val code = binding.manualCodeEditText.text.toString()
141+
Log.d(TAG, "Submit Code:$code")
142+
handleInputCode(code)
145143
}
146144
}
147145

@@ -178,39 +176,39 @@ class BarcodeFragment : Fragment() {
178176
}
179177
}
180178

181-
private fun handleInputQrCode(qrCode: String) {
182-
lateinit var payload: OnboardingPayload
179+
private fun handleInputCode(code: String) {
183180
try {
184-
payload = OnboardingPayloadParser().parseQrCode(qrCode)
185-
} catch (ex: OnboardingPayloadException) {
186-
try {
187-
payload = OnboardingPayloadParser().parseManualPairingCode(qrCode)
188-
} catch (ex: Exception) {
189-
Log.e(TAG, "Unrecognized Manual Pairing Code", ex)
190-
Toast.makeText(requireContext(), "Unrecognized Manual Pairing Code", Toast.LENGTH_SHORT)
191-
.show()
192-
}
181+
val payload =
182+
if (code.startsWith("MT:")) {
183+
OnboardingPayloadParser().parseQrCode(code)
184+
} else {
185+
OnboardingPayloadParser().parseManualPairingCode(code)
186+
}
187+
188+
FragmentUtil.getHost(this@BarcodeFragment, Callback::class.java)
189+
?.onCHIPDeviceInfoReceived(CHIPDeviceInfo.fromSetupPayload(payload))
193190
} catch (ex: UnrecognizedQrCodeException) {
194-
Log.e(TAG, "Unrecognized QR Code", ex)
191+
Log.e(TAG, "Unrecognized Code", ex)
195192
Toast.makeText(requireContext(), "Unrecognized QR Code", Toast.LENGTH_SHORT).show()
193+
} catch (ex: Exception) {
194+
Log.e(TAG, "Exception, $ex")
195+
Toast.makeText(requireContext(), "Occur Exception, $ex", Toast.LENGTH_SHORT).show()
196196
}
197-
FragmentUtil.getHost(this@BarcodeFragment, Callback::class.java)
198-
?.onCHIPDeviceInfoReceived(CHIPDeviceInfo.fromSetupPayload(payload))
199197
}
200198

201199
private fun handleScannedQrCode(barcode: Barcode) {
202200
Handler(Looper.getMainLooper()).post {
203-
lateinit var payload: OnboardingPayload
204201
try {
205-
payload =
202+
val payload =
206203
barcode.displayValue?.let { OnboardingPayloadParser().parseQrCode(it) } ?: return@post
204+
205+
FragmentUtil.getHost(this@BarcodeFragment, Callback::class.java)
206+
?.onCHIPDeviceInfoReceived(CHIPDeviceInfo.fromSetupPayload(payload))
207207
} catch (ex: UnrecognizedQrCodeException) {
208208
Log.e(TAG, "Unrecognized QR Code", ex)
209209
Toast.makeText(requireContext(), "Unrecognized QR Code", Toast.LENGTH_SHORT).show()
210210
return@post
211211
}
212-
FragmentUtil.getHost(this@BarcodeFragment, Callback::class.java)
213-
?.onCHIPDeviceInfoReceived(CHIPDeviceInfo.fromSetupPayload(payload))
214212
}
215213
}
216214

0 commit comments

Comments
 (0)