@@ -36,8 +36,6 @@ import androidx.camera.lifecycle.ProcessCameraProvider
36
36
import androidx.core.content.ContextCompat
37
37
import androidx.core.content.ContextCompat.checkSelfPermission
38
38
import androidx.fragment.app.Fragment
39
- import chip.onboardingpayload.OnboardingPayload
40
- import chip.onboardingpayload.OnboardingPayloadException
41
39
import chip.onboardingpayload.OnboardingPayloadParser
42
40
import chip.onboardingpayload.UnrecognizedQrCodeException
43
41
import com.google.chip.chiptool.R
@@ -139,9 +137,9 @@ class BarcodeFragment : Fragment() {
139
137
140
138
// workaround: can not use gms to scan the code in China, added a EditText to debug
141
139
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 )
145
143
}
146
144
}
147
145
@@ -178,39 +176,39 @@ class BarcodeFragment : Fragment() {
178
176
}
179
177
}
180
178
181
- private fun handleInputQrCode (qrCode : String ) {
182
- lateinit var payload: OnboardingPayload
179
+ private fun handleInputCode (code : String ) {
183
180
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))
193
190
} catch (ex: UnrecognizedQrCodeException ) {
194
- Log .e(TAG , " Unrecognized QR Code" , ex)
191
+ Log .e(TAG , " Unrecognized Code" , ex)
195
192
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()
196
196
}
197
- FragmentUtil .getHost(this @BarcodeFragment, Callback ::class .java)
198
- ?.onCHIPDeviceInfoReceived(CHIPDeviceInfo .fromSetupPayload(payload))
199
197
}
200
198
201
199
private fun handleScannedQrCode (barcode : Barcode ) {
202
200
Handler (Looper .getMainLooper()).post {
203
- lateinit var payload: OnboardingPayload
204
201
try {
205
- payload =
202
+ val payload =
206
203
barcode.displayValue?.let { OnboardingPayloadParser ().parseQrCode(it) } ? : return @post
204
+
205
+ FragmentUtil .getHost(this @BarcodeFragment, Callback ::class .java)
206
+ ?.onCHIPDeviceInfoReceived(CHIPDeviceInfo .fromSetupPayload(payload))
207
207
} catch (ex: UnrecognizedQrCodeException ) {
208
208
Log .e(TAG , " Unrecognized QR Code" , ex)
209
209
Toast .makeText(requireContext(), " Unrecognized QR Code" , Toast .LENGTH_SHORT ).show()
210
210
return @post
211
211
}
212
- FragmentUtil .getHost(this @BarcodeFragment, Callback ::class .java)
213
- ?.onCHIPDeviceInfoReceived(CHIPDeviceInfo .fromSetupPayload(payload))
214
212
}
215
213
}
216
214
0 commit comments