@@ -508,28 +508,44 @@ CHIP_ERROR AndroidDeviceControllerWrapper::ApplyICDRegistrationInfo(chip::Contro
508
508
VerifyOrReturnError (icdRegistrationInfo != nullptr , CHIP_ERROR_INVALID_ARGUMENT);
509
509
510
510
JNIEnv * env = chip::JniReferences::GetInstance ().GetEnvForCurrentThread ();
511
+ if (env == nullptr )
512
+ {
513
+ ChipLogError (Controller, " Failed to retrieve JNIEnv in %s." , __func__);
514
+ return CHIP_ERROR_INCORRECT_STATE;
515
+ }
516
+
517
+ jmethodID getICDStayActiveDurationMsecMethod;
518
+ err = chip::JniReferences::GetInstance ().FindMethod (env, icdRegistrationInfo, " getICDStayActiveDurationMsec" ,
519
+ " ()Ljava/lang/Long;" , &getICDStayActiveDurationMsecMethod);
520
+ ReturnErrorOnFailure (err);
521
+ jobject jStayActiveMsec = env->CallObjectMethod (icdRegistrationInfo, getICDStayActiveDurationMsecMethod);
522
+ if (jStayActiveMsec != 0 )
523
+ {
524
+ params.SetICDStayActiveDurationMsec (chip::JniReferences::GetInstance ().IntegerToPrimitive (jStayActiveMsec));
525
+ }
526
+
511
527
jmethodID getCheckInNodeIdMethod;
512
528
err = chip::JniReferences::GetInstance ().FindMethod (env, icdRegistrationInfo, " getCheckInNodeId" , " ()Ljava/lang/Long;" ,
513
529
&getCheckInNodeIdMethod);
514
- VerifyOrReturnError (err == CHIP_NO_ERROR, err);
530
+ ReturnErrorOnFailure ( err);
515
531
jobject jCheckInNodeId = env->CallObjectMethod (icdRegistrationInfo, getCheckInNodeIdMethod);
516
532
517
533
jmethodID getMonitoredSubjectMethod;
518
534
err = chip::JniReferences::GetInstance ().FindMethod (env, icdRegistrationInfo, " getMonitoredSubject" , " ()Ljava/lang/Long;" ,
519
535
&getMonitoredSubjectMethod);
520
- VerifyOrReturnError (err == CHIP_NO_ERROR, err);
536
+ ReturnErrorOnFailure ( err);
521
537
jobject jMonitoredSubject = env->CallObjectMethod (icdRegistrationInfo, getMonitoredSubjectMethod);
522
538
523
539
jmethodID getSymmetricKeyMethod;
524
540
err =
525
541
chip::JniReferences::GetInstance ().FindMethod (env, icdRegistrationInfo, " getSymmetricKey" , " ()[B" , &getSymmetricKeyMethod);
526
- VerifyOrReturnError (err == CHIP_NO_ERROR, err);
542
+ ReturnErrorOnFailure ( err);
527
543
jbyteArray jSymmetricKey = static_cast <jbyteArray>(env->CallObjectMethod (icdRegistrationInfo, getSymmetricKeyMethod));
528
544
529
545
jmethodID getClientTypeMethod;
530
546
err = chip::JniReferences::GetInstance ().FindMethod (env, icdRegistrationInfo, " getClientType" , " ()Ljava/lang/Integer;" ,
531
547
&getClientTypeMethod);
532
- VerifyOrReturnError (err == CHIP_NO_ERROR, err);
548
+ ReturnErrorOnFailure ( err);
533
549
jobject jClientType = env->CallObjectMethod (icdRegistrationInfo, getClientTypeMethod);
534
550
535
551
chip::NodeId checkInNodeId = chip::kUndefinedNodeId ;
0 commit comments