Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit c66a80d

Browse files
committed
Merge branch 'task/matter_onboarding_rainmaker_validation' into 'master'
Added Matter onboarding RainMaker validation See merge request app-frameworks/esp-rainmaker-android!123
2 parents 12c71e9 + 598032b commit c66a80d

File tree

4 files changed

+37
-37
lines changed

4 files changed

+37
-37
lines changed

app/src/main/java/com/espressif/AppConstants.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -487,6 +487,7 @@ class AppConstants {
487487
const val KEY_THREAD_SCAN_AVAILABLE = "thread_scan_available"
488488
const val KEY_THREAD_DATASET = "thread_dataset"
489489
const val KEY_DEPENDENCIES = "dependencies"
490+
const val KEY_IS_RAINMAKER_NODE = "is_rainmaker_node"
490491

491492
const val CERT_BEGIN = "-----BEGIN CERTIFICATE REQUEST-----"
492493
const val CERT_END = "-----END CERTIFICATE REQUEST-----"

app/src/main/java/com/espressif/cloudapi/ApiManager.java

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -972,7 +972,6 @@ public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response)
972972
NodeMetadata metadata = new NodeMetadata();
973973
metadata.setDeviceName(matterMetadataJson.optString(AppConstants.KEY_DEVICENAME));
974974
metadata.setGroupId(matterMetadataJson.optString(AppConstants.KEY_GROUP_ID));
975-
metadata.setRainMaker(matterMetadataJson.optBoolean(AppConstants.KEY_IS_RAINMAKER));
976975
metadata.setServersData(matterMetadataJson.optString(AppConstants.KEY_SERVERS_DATA));
977976
espNode.setNodeMetadata(metadata);
978977
}
@@ -3142,10 +3141,10 @@ private void setFabricGroupDetails(String jsonResponse) {
31423141
}
31433142
}
31443143

3145-
public @Nullable String confirmMatterNode(@NotNull JsonObject body, String groupId) {
3144+
public @Nullable Bundle confirmMatterNode(@NotNull JsonObject body, String groupId) {
31463145
Log.d(TAG, "Confirming matter node ===========================");
31473146
String url = getBaseUrl() + AppConstants.URL_USER_NODE_GROUP;
3148-
String result = "";
3147+
Bundle result = new Bundle();
31493148
try {
31503149
Response<ResponseBody> response = apiInterface.confirmPureMatterNode(url, accessToken, groupId, body).execute();
31513150

@@ -3156,17 +3155,19 @@ private void setFabricGroupDetails(String jsonResponse) {
31563155
Log.d(TAG, "Confirming matter node, Response : " + jsonResponse);
31573156

31583157
JSONObject jsonObject = new JSONObject(jsonResponse);
3159-
result = jsonObject.optString(AppConstants.KEY_DESCRIPTION);
3158+
String status = jsonObject.optString(AppConstants.KEY_STATUS);
3159+
String description = jsonObject.optString(AppConstants.KEY_DESCRIPTION);
3160+
boolean isRainMakerNode = jsonObject.optBoolean(AppConstants.KEY_IS_RAINMAKER_NODE);
3161+
result.putString(AppConstants.KEY_STATUS, status);
3162+
result.putString(AppConstants.KEY_DESCRIPTION, description);
3163+
result.putBoolean(AppConstants.KEY_IS_RAINMAKER_NODE, isRainMakerNode);
31603164
} else {
31613165
Log.e(TAG, "Failed to confirm matter node");
31623166
}
3163-
31643167
} catch (IOException e) {
31653168
e.printStackTrace();
3166-
throw new RuntimeException(e);
31673169
} catch (JSONException e) {
31683170
e.printStackTrace();
3169-
throw new RuntimeException(e);
31703171
}
31713172
return result;
31723173
}

app/src/main/java/com/espressif/matter/ChipClient.kt

Lines changed: 28 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -610,21 +610,6 @@ class ChipClient constructor(
610610

611611
body.addProperty(AppConstants.KEY_RAINMAKER_NODE_ID, rmNodeId)
612612
body.addProperty(AppConstants.KEY_CHALLENGE, challenge)
613-
614-
if (isControllerClusterAvailable) {
615-
616-
Log.d(TAG, "Controller cluster available")
617-
val sharedPreferences =
618-
context.getSharedPreferences(
619-
AppConstants.ESP_PREFERENCES,
620-
Context.MODE_PRIVATE
621-
)
622-
val editor = sharedPreferences.edit()
623-
editor.putBoolean(rmNodeId, true)
624-
val key = "ctrl_setup_$rmNodeId"
625-
editor.putBoolean(key, false)
626-
editor.apply()
627-
}
628613
} else {
629614
// Nothing to do
630615
}
@@ -637,10 +622,34 @@ class ChipClient constructor(
637622
body.addProperty(AppConstants.KEY_STATUS, "success")
638623
body.add(AppConstants.KEY_METADATA, matterMetadataJson)
639624

640-
var description: String? =
641-
ApiManager.getInstance(context)
642-
.confirmMatterNode(body, groupId)
643-
Log.d(TAG, "Confirming matter node, response : $description")
625+
val responseData: Bundle? =
626+
ApiManager.getInstance(context).confirmMatterNode(body, groupId)
627+
var isRainMaker: Boolean = isRmClusterAvailable
628+
629+
responseData.let {
630+
isRainMaker =
631+
it?.getBoolean(AppConstants.KEY_IS_RAINMAKER_NODE, false)
632+
?: false
633+
val status: String? =
634+
it?.getString(AppConstants.KEY_STATUS)
635+
val description: String? =
636+
it?.getString(AppConstants.KEY_DESCRIPTION)
637+
}
638+
639+
if (isControllerClusterAvailable && isRainMaker) {
640+
641+
Log.d(TAG, "Controller cluster available")
642+
val sharedPreferences =
643+
context.getSharedPreferences(
644+
AppConstants.ESP_PREFERENCES,
645+
Context.MODE_PRIVATE
646+
)
647+
val editor = sharedPreferences.edit()
648+
editor.putBoolean(rmNodeId, true)
649+
val key = "ctrl_setup_$rmNodeId"
650+
editor.putBoolean(key, false)
651+
editor.apply()
652+
}
644653

645654
var aclClusterHelper = AccessControlClusterHelper(this@ChipClient)
646655
var aclAttr: MutableList<ChipStructs.AccessControlClusterAccessControlEntryStruct>? =

app/src/main/java/com/espressif/ui/models/NodeMetadata.java

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@ public class NodeMetadata implements Parcelable {
2727
private String groupId;
2828
private String productId;
2929
private String vendorId;
30-
private boolean isRainMaker;
3130
private String serversData;
3231
private ArrayList<String> endpointsData;
3332

@@ -41,7 +40,6 @@ protected NodeMetadata(Parcel in) {
4140
groupId = in.readString();
4241
productId = in.readString();
4342
vendorId = in.readString();
44-
isRainMaker = in.readByte() != 0;
4543
serversData = in.readString();
4644
endpointsData = in.createStringArrayList();
4745
}
@@ -106,14 +104,6 @@ public void setVendorId(String vendorId) {
106104
this.vendorId = vendorId;
107105
}
108106

109-
public boolean isRainMaker() {
110-
return isRainMaker;
111-
}
112-
113-
public void setRainMaker(boolean rainMaker) {
114-
isRainMaker = rainMaker;
115-
}
116-
117107
public String getServersData() {
118108
return serversData;
119109
}
@@ -143,7 +133,6 @@ public void writeToParcel(Parcel dest, int flags) {
143133
dest.writeString(groupId);
144134
dest.writeString(productId);
145135
dest.writeString(vendorId);
146-
dest.writeByte((byte) (isRainMaker ? 1 : 0));
147136
dest.writeString(serversData);
148137
dest.writeStringList(endpointsData);
149138
}

0 commit comments

Comments
 (0)