Skip to content

Commit 5f0d663

Browse files
committed
Add excetpion try-catch in getConnectedPointer
1 parent b8de5cc commit 5f0d663

10 files changed

+269
-64
lines changed

examples/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/clusterclient/BasicClientFragment.kt

+14-2
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,13 @@ class BasicClientFragment : Fragment() {
139139
val attributeId = BasicInformation.Attribute.valueOf(attributeName).id
140140

141141
val devicePtr =
142-
ChipClient.getConnectedDevicePointer(requireContext(), addressUpdateFragment.deviceId)
142+
try {
143+
ChipClient.getConnectedDevicePointer(requireContext(), addressUpdateFragment.deviceId)
144+
} catch (e: IllegalStateException) {
145+
Log.d(TAG, "getConnectedDevicePointer exception", e)
146+
showMessage("Get DevicePointer fail!")
147+
return
148+
}
143149

144150
ChipClient.getDeviceController(requireContext())
145151
.readPath(
@@ -182,7 +188,13 @@ class BasicClientFragment : Fragment() {
182188
private suspend fun sendWriteAttribute(attribute: BasicInformation.Attribute, tlv: ByteArray) {
183189
val clusterId = BasicInformation.ID
184190
val devicePtr =
185-
ChipClient.getConnectedDevicePointer(requireContext(), addressUpdateFragment.deviceId)
191+
try {
192+
ChipClient.getConnectedDevicePointer(requireContext(), addressUpdateFragment.deviceId)
193+
} catch (e: IllegalStateException) {
194+
Log.d(TAG, "getConnectedDevicePointer exception", e)
195+
showMessage("Get DevicePointer fail!")
196+
return
197+
}
186198

187199
ChipClient.getDeviceController(requireContext())
188200
.write(

examples/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/clusterclient/GroupSettingFragment.kt

+47-25
Original file line numberDiff line numberDiff line change
@@ -271,11 +271,16 @@ class GroupSettingFragment : Fragment() {
271271
private suspend fun sendKeySetWrite(
272272
groupKeySetStruct: GroupKeyManagementClusterGroupKeySetStruct
273273
) {
274-
val cluster =
275-
ChipClusters.GroupKeyManagementCluster(
276-
ChipClient.getConnectedDevicePointer(requireContext(), addressUpdateFragment.deviceId),
277-
0
278-
)
274+
val devicePtr =
275+
try {
276+
ChipClient.getConnectedDevicePointer(requireContext(), addressUpdateFragment.deviceId)
277+
} catch (e: IllegalStateException) {
278+
Log.d(TAG, "getConnectedDevicePointer exception", e)
279+
showMessage("Get DevicePointer fail!")
280+
return
281+
}
282+
val cluster = ChipClusters.GroupKeyManagementCluster(devicePtr, 0)
283+
279284
cluster.keySetWrite(
280285
object : ChipClusters.DefaultClusterCallback {
281286
override fun onError(e: Exception?) {
@@ -311,11 +316,15 @@ class GroupSettingFragment : Fragment() {
311316
}
312317

313318
private suspend fun writeGroupKeyMap(groupId: UInt, groupKeySetId: UInt) {
314-
val cluster =
315-
ChipClusters.GroupKeyManagementCluster(
316-
ChipClient.getConnectedDevicePointer(requireContext(), addressUpdateFragment.deviceId),
317-
0
318-
)
319+
val devicePtr =
320+
try {
321+
ChipClient.getConnectedDevicePointer(requireContext(), addressUpdateFragment.deviceId)
322+
} catch (e: IllegalStateException) {
323+
Log.d(TAG, "getConnectedDevicePointer exception", e)
324+
showMessage("Get DevicePointer fail!")
325+
return
326+
}
327+
val cluster = ChipClusters.GroupKeyManagementCluster(devicePtr, 0)
319328
cluster.writeGroupKeyMapAttribute(
320329
object : ChipClusters.DefaultClusterCallback {
321330
override fun onError(e: Exception?) {
@@ -356,11 +365,16 @@ class GroupSettingFragment : Fragment() {
356365
}
357366

358367
private suspend fun sendAddGroup(groupId: UInt, groupName: String) {
359-
val cluster =
360-
ChipClusters.GroupsCluster(
361-
ChipClient.getConnectedDevicePointer(requireContext(), addressUpdateFragment.deviceId),
362-
0
363-
)
368+
val devicePtr =
369+
try {
370+
ChipClient.getConnectedDevicePointer(requireContext(), addressUpdateFragment.deviceId)
371+
} catch (e: IllegalStateException) {
372+
Log.d(TAG, "getConnectedDevicePointer exception", e)
373+
showMessage("Get DevicePointer fail!")
374+
return
375+
}
376+
val cluster = ChipClusters.GroupsCluster(devicePtr, 0)
377+
364378
cluster.addGroup(
365379
object : ChipClusters.GroupsCluster.AddGroupResponseCallback {
366380
override fun onError(e: Exception?) {
@@ -379,11 +393,15 @@ class GroupSettingFragment : Fragment() {
379393
}
380394

381395
private suspend fun readAccessControl() {
382-
val cluster =
383-
ChipClusters.AccessControlCluster(
384-
ChipClient.getConnectedDevicePointer(requireContext(), addressUpdateFragment.deviceId),
385-
0
386-
)
396+
val devicePtr =
397+
try {
398+
ChipClient.getConnectedDevicePointer(requireContext(), addressUpdateFragment.deviceId)
399+
} catch (e: IllegalStateException) {
400+
Log.d(TAG, "getConnectedDevicePointer exception", e)
401+
showMessage("Get DevicePointer fail!")
402+
return
403+
}
404+
val cluster = ChipClusters.AccessControlCluster(devicePtr, 0)
387405
cluster.readAclAttribute(
388406
object : ChipClusters.AccessControlCluster.AclAttributeCallback {
389407
override fun onError(e: Exception?) {
@@ -437,12 +455,16 @@ class GroupSettingFragment : Fragment() {
437455
groupId: UInt,
438456
privilege: UInt
439457
) {
458+
val devicePtr =
459+
try {
460+
ChipClient.getConnectedDevicePointer(requireContext(), addressUpdateFragment.deviceId)
461+
} catch (e: IllegalStateException) {
462+
Log.d(TAG, "getConnectedDevicePointer exception", e)
463+
showMessage("Get DevicePointer fail!")
464+
return
465+
}
440466
// If GroupID is already added to AccessControl, do not add it.
441-
val cluster =
442-
ChipClusters.AccessControlCluster(
443-
ChipClient.getConnectedDevicePointer(requireContext(), addressUpdateFragment.deviceId),
444-
0
445-
)
467+
val cluster = ChipClusters.AccessControlCluster(devicePtr, 0)
446468
val sendEntry = ArrayList<AccessControlClusterAccessControlEntryStruct>()
447469
for (entry in value) {
448470
if (

examples/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/clusterclient/MultiAdminClientFragment.kt

+36-8
Original file line numberDiff line numberDiff line change
@@ -121,8 +121,16 @@ class MultiAdminClientFragment : Fragment() {
121121

122122
private suspend fun sendBasicCommissioningCommandClick() {
123123
val testDuration = binding.timeoutEd.text.toString().toInt()
124+
val devicePtr =
125+
try {
126+
ChipClient.getConnectedDevicePointer(requireContext(), addressUpdateFragment.deviceId)
127+
} catch (e: IllegalStateException) {
128+
Log.d(TAG, "getConnectedDevicePointer exception", e)
129+
showMessage("Get DevicePointer fail!")
130+
return
131+
}
124132
deviceController.openPairingWindowCallback(
125-
ChipClient.getConnectedDevicePointer(requireContext(), addressUpdateFragment.deviceId),
133+
devicePtr,
126134
testDuration,
127135
object : OpenCommissioningCallback {
128136
override fun onError(status: Int, deviceId: Long) {
@@ -140,7 +148,13 @@ class MultiAdminClientFragment : Fragment() {
140148
val testDuration = binding.timeoutEd.text.toString().toInt()
141149
val testIteration = 1000
142150
val devicePointer =
143-
ChipClient.getConnectedDevicePointer(requireContext(), addressUpdateFragment.deviceId)
151+
try {
152+
ChipClient.getConnectedDevicePointer(requireContext(), addressUpdateFragment.deviceId)
153+
} catch (e: IllegalStateException) {
154+
Log.d(TAG, "getConnectedDevicePointer exception", e)
155+
showMessage("Get DevicePointer fail!")
156+
return
157+
}
144158

145159
var setupPinCode: Long? = null
146160
if (!binding.setupPinCodeEd.text.toString().isEmpty()) {
@@ -181,6 +195,14 @@ class MultiAdminClientFragment : Fragment() {
181195
null
182196
)
183197

198+
val devicePointer =
199+
try {
200+
ChipClient.getConnectedDevicePointer(requireContext(), addressUpdateFragment.deviceId)
201+
} catch (e: IllegalStateException) {
202+
Log.d(TAG, "getConnectedDevicePointer exception", e)
203+
showMessage("Get DevicePointer fail!")
204+
return
205+
}
184206
deviceController.invoke(
185207
object : InvokeCallback {
186208
override fun onError(ex: Exception?) {
@@ -193,7 +215,7 @@ class MultiAdminClientFragment : Fragment() {
193215
showMessage("Revoke Commissioning success")
194216
}
195217
},
196-
getConnectedDevicePointer(),
218+
devicePointer,
197219
invokeElement,
198220
timedInvokeTimeout,
199221
0
@@ -208,6 +230,16 @@ class MultiAdminClientFragment : Fragment() {
208230
val attributeId = attribute.id
209231
val attributeName = attribute.name
210232
val attributePath = ChipAttributePath.newInstance(endpointId, clusterId, attributeId)
233+
234+
val devicePointer =
235+
try {
236+
ChipClient.getConnectedDevicePointer(requireContext(), addressUpdateFragment.deviceId)
237+
} catch (e: IllegalStateException) {
238+
Log.d(TAG, "getConnectedDevicePointer exception", e)
239+
showMessage("Get DevicePointer fail!")
240+
return
241+
}
242+
211243
deviceController.readAttributePath(
212244
object : ReportCallback {
213245
override fun onReport(nodeState: NodeState?) {
@@ -230,16 +262,12 @@ class MultiAdminClientFragment : Fragment() {
230262
showMessage("read $attributeName - error : ${e?.message}")
231263
}
232264
},
233-
getConnectedDevicePointer(),
265+
devicePointer,
234266
listOf(attributePath),
235267
0
236268
)
237269
}
238270

239-
private suspend fun getConnectedDevicePointer(): Long {
240-
return ChipClient.getConnectedDevicePointer(requireContext(), addressUpdateFragment.deviceId)
241-
}
242-
243271
private fun showMessage(msg: String) {
244272
requireActivity().runOnUiThread { binding.multiAdminClusterCommandStatus.text = msg }
245273
}

examples/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/clusterclient/OnOffClientFragment.kt

+40-8
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,15 @@ class OnOffClientFragment : Fragment() {
105105

106106
val attributePath = ChipAttributePath.newInstance(endpointId, clusterId, attributeId)
107107

108+
val devicePointer =
109+
try {
110+
ChipClient.getConnectedDevicePointer(requireContext(), addressUpdateFragment.deviceId)
111+
} catch (e: IllegalStateException) {
112+
Log.d(TAG, "getConnectedDevicePointer exception", e)
113+
showMessage("Get DevicePointer fail!")
114+
return
115+
}
116+
108117
ChipClient.getDeviceController(requireContext())
109118
.readPath(
110119
object : ReportCallback {
@@ -128,7 +137,7 @@ class OnOffClientFragment : Fragment() {
128137
showMessage("On/Off attribute value: $value")
129138
}
130139
},
131-
getConnectedDevicePointer(),
140+
devicePointer,
132141
listOf(attributePath),
133142
null,
134143
false,
@@ -181,6 +190,15 @@ class OnOffClientFragment : Fragment() {
181190
)
182191
}
183192

193+
val devicePointer =
194+
try {
195+
ChipClient.getConnectedDevicePointer(requireContext(), addressUpdateFragment.deviceId)
196+
} catch (e: IllegalStateException) {
197+
Log.d(TAG, "getConnectedDevicePointer exception", e)
198+
showMessage("Get DevicePointer fail!")
199+
return
200+
}
201+
184202
deviceController.subscribeToPath(
185203
subscriptionEstablishedCallback,
186204
resubscriptionAttemptCallback,
@@ -211,7 +229,7 @@ class OnOffClientFragment : Fragment() {
211229
showReportMessage(message)
212230
}
213231
},
214-
getConnectedDevicePointer(),
232+
devicePointer,
215233
listOf(attributePath),
216234
null,
217235
minInterval,
@@ -265,6 +283,15 @@ class OnOffClientFragment : Fragment() {
265283
null
266284
)
267285

286+
val devicePointer =
287+
try {
288+
ChipClient.getConnectedDevicePointer(requireContext(), addressUpdateFragment.deviceId)
289+
} catch (e: IllegalStateException) {
290+
Log.d(TAG, "getConnectedDevicePointer exception", e)
291+
showMessage("Get DevicePointer fail!")
292+
return
293+
}
294+
268295
deviceController.invoke(
269296
object : InvokeCallback {
270297
override fun onError(ex: Exception?) {
@@ -277,7 +304,7 @@ class OnOffClientFragment : Fragment() {
277304
showMessage("MoveToLevel command success")
278305
}
279306
},
280-
getConnectedDevicePointer(),
307+
devicePointer,
281308
invokeElement,
282309
0,
283310
0
@@ -298,6 +325,15 @@ class OnOffClientFragment : Fragment() {
298325
null
299326
)
300327

328+
val devicePointer =
329+
try {
330+
ChipClient.getConnectedDevicePointer(requireContext(), addressUpdateFragment.deviceId)
331+
} catch (e: IllegalStateException) {
332+
Log.d(TAG, "getConnectedDevicePointer exception", e)
333+
showMessage("Get DevicePointer fail!")
334+
return
335+
}
336+
301337
deviceController.invoke(
302338
object : InvokeCallback {
303339
override fun onError(ex: Exception?) {
@@ -310,17 +346,13 @@ class OnOffClientFragment : Fragment() {
310346
showMessage("${commandId.name} command success")
311347
}
312348
},
313-
getConnectedDevicePointer(),
349+
devicePointer,
314350
invokeElement,
315351
0,
316352
0
317353
)
318354
}
319355

320-
private suspend fun getConnectedDevicePointer(): Long {
321-
return ChipClient.getConnectedDevicePointer(requireContext(), addressUpdateFragment.deviceId)
322-
}
323-
324356
private fun showMessage(msg: String) {
325357
requireActivity().runOnUiThread { binding.commandStatusTv.text = msg }
326358
}

examples/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/clusterclient/OpCredClientFragment.kt

+14-2
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,13 @@ class OpCredClientFragment : Fragment() {
100100
val attributeId = attribute.id
101101

102102
val devicePtr =
103-
ChipClient.getConnectedDevicePointer(requireContext(), addressUpdateFragment.deviceId)
103+
try {
104+
ChipClient.getConnectedDevicePointer(requireContext(), addressUpdateFragment.deviceId)
105+
} catch (e: IllegalStateException) {
106+
Log.d(TAG, "getConnectedDevicePointer exception", e)
107+
showMessage("Get DevicePointer fail!")
108+
return
109+
}
104110

105111
ChipClient.getDeviceController(requireContext())
106112
.readPath(
@@ -137,7 +143,13 @@ class OpCredClientFragment : Fragment() {
137143

138144
private suspend fun sendRemoveFabricsBtnClick(fabricIndex: UInt) {
139145
val devicePtr =
140-
ChipClient.getConnectedDevicePointer(requireContext(), addressUpdateFragment.deviceId)
146+
try {
147+
ChipClient.getConnectedDevicePointer(requireContext(), addressUpdateFragment.deviceId)
148+
} catch (e: IllegalStateException) {
149+
Log.d(TAG, "getConnectedDevicePointer exception", e)
150+
showMessage("Get DevicePointer fail!")
151+
return
152+
}
141153
// TODO : Need to be implement poj-to-tlv
142154
val tlvWriter = TlvWriter()
143155
tlvWriter.startStructure(AnonymousTag)

0 commit comments

Comments
 (0)