Skip to content

Commit 8cc4612

Browse files
authored
Merge branch 'master' into feature/fix-cluster-revisions
2 parents fed38e2 + 20e4359 commit 8cc4612

File tree

10 files changed

+434
-9
lines changed

10 files changed

+434
-9
lines changed

examples/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/provisioning/AddressCommissioningFragment.kt

+6-2
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ class AddressCommissioningFragment : Fragment() {
5151
val address = binding.addressEditText.text.toString()
5252
val discriminator = binding.discriminatorEditText.text.toString()
5353
val pincode = binding.pincodeEditText.text.toString()
54+
val port = binding.portEditText.text.toString()
5455

5556
if (address.isEmpty() || discriminator.isEmpty() || pincode.isEmpty()) {
5657
Log.e(TAG, "Address, discriminator, or pincode was empty: $address $discriminator $pincode")
@@ -62,7 +63,8 @@ class AddressCommissioningFragment : Fragment() {
6263
CHIPDeviceInfo(
6364
discriminator = discriminator.toInt(),
6465
setupPinCode = pincode.toLong(),
65-
ipAddress = address
66+
ipAddress = address,
67+
port = port.toInt()
6668
)
6769
)
6870
}
@@ -169,7 +171,7 @@ class AddressCommissioningFragment : Fragment() {
169171
val deviceController = ChipClient.getDeviceController(requireContext())
170172
for (i in 0..10) {
171173
val device = deviceController.getDiscoveredDevice(i) ?: break
172-
ipAddressList.add("${device.ipAddress}, ${device.discriminator}")
174+
ipAddressList.add("${device.ipAddress}, ${device.discriminator}, ${device.port}")
173175
}
174176
requireActivity().runOnUiThread {
175177
binding.discoverListSpinner.adapter =
@@ -179,9 +181,11 @@ class AddressCommissioningFragment : Fragment() {
179181
override fun onItemSelected(parent: AdapterView<*>, view: View, position: Int, id: Long) {
180182
val address = ipAddressList[position].split(",")[0].trim()
181183
val discriminator = ipAddressList[position].split(",")[1].trim()
184+
val port = ipAddressList[position].split(",")[2].trim()
182185

183186
binding.addressEditText.setText(address)
184187
binding.discriminatorEditText.setText(discriminator)
188+
binding.portEditText.setText(port)
185189
}
186190

187191
override fun onNothingSelected(parent: AdapterView<*>) {}

examples/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/provisioning/DeviceProvisioningFragment.kt

+1-2
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,6 @@ class DeviceProvisioningFragment : Fragment() {
160160

161161
private fun pairDeviceWithAddress() {
162162
// IANA CHIP port
163-
val port = 5540
164163
val id = DeviceIdUtil.getNextAvailableId(requireContext())
165164

166165
DeviceIdUtil.setNextAvailableId(requireContext(), id + 1)
@@ -171,7 +170,7 @@ class DeviceProvisioningFragment : Fragment() {
171170
deviceController.pairDeviceWithAddress(
172171
id,
173172
deviceInfo.ipAddress,
174-
port,
173+
deviceInfo.port,
175174
deviceInfo.discriminator,
176175
deviceInfo.setupPinCode,
177176
null

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

+1
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ data class CHIPDeviceInfo(
3636
val discoveryCapabilities: MutableSet<DiscoveryCapability> = mutableSetOf(),
3737
val isShortDiscriminator: Boolean = false,
3838
val ipAddress: String? = null,
39+
val port: Int = 5540
3940
) : Parcelable {
4041

4142
companion object {

examples/android/CHIPTool/app/src/main/res/layout/address_commissioning_fragment.xml

+17-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
android:id="@+id/address_commissioning_fragment_flow"
2020
android:layout_width="0dp"
2121
android:layout_height="wrap_content"
22-
app:constraint_referenced_ids="addressLabel,addressEditText,discriminatorLabel,discriminatorEditText,pincodeLabel,pincodeEditText"
22+
app:constraint_referenced_ids="addressLabel,addressEditText,discriminatorLabel,discriminatorEditText,pincodeLabel,pincodeEditText,portLabel,portEditText"
2323
app:flow_horizontalStyle="packed"
2424
app:flow_wrapMode="aligned"
2525
app:flow_maxElementsWrap="2"
@@ -75,6 +75,22 @@
7575
android:inputType="number"
7676
android:text="@string/default_pincode" />
7777

78+
<TextView
79+
android:id="@+id/portLabel"
80+
android:layout_width="wrap_content"
81+
android:layout_height="wrap_content"
82+
android:padding="8dp"
83+
android:textSize="16sp"
84+
android:text="@string/enter_port_label_text" />
85+
86+
<EditText
87+
android:id="@+id/portEditText"
88+
android:layout_width="0dp"
89+
android:layout_height="wrap_content"
90+
android:layout_margin="16dp"
91+
android:inputType="number"
92+
android:text="@string/default_port" />
93+
7894
<LinearLayout
7995
android:layout_width="match_parent"
8096
android:layout_height="wrap_content"

examples/android/CHIPTool/app/src/main/res/values/strings.xml

+2
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,11 @@
3535
<string name="address_commissioning_title_text">Commission with IP address</string>
3636
<string name="default_discriminator">3840</string>
3737
<string name="default_pincode">20202021</string>
38+
<string name="default_port">5540</string>
3839
<string name="enter_device_address_label_text">Device address</string>
3940
<string name="enter_discriminator_label_text">Discriminator</string>
4041
<string name="enter_pincode_label_text">Pincode</string>
42+
<string name="enter_port_label_text">Port</string>
4143
<string name="commission_btn_text">Commission</string>
4244
<string name="dns_discover_btn_text">Discover</string>
4345
<string name="wifi_scan_btn_text">Wi-Fi Scan</string>

src/controller/java/CHIPDeviceController-JNI.cpp

+4-4
Original file line numberDiff line numberDiff line change
@@ -1910,6 +1910,7 @@ JNI_METHOD(jobject, getDiscoveredDevice)(JNIEnv * env, jobject self, jlong handl
19101910

19111911
if (data == nullptr)
19121912
{
1913+
ChipLogError(Controller, "GetDiscoveredDevice - not found");
19131914
return nullptr;
19141915
}
19151916

@@ -1918,6 +1919,7 @@ JNI_METHOD(jobject, getDiscoveredDevice)(JNIEnv * env, jobject self, jlong handl
19181919

19191920
jfieldID discrminatorID = env->GetFieldID(discoveredDeviceCls, "discriminator", "J");
19201921
jfieldID ipAddressID = env->GetFieldID(discoveredDeviceCls, "ipAddress", "Ljava/lang/String;");
1922+
jfieldID portID = env->GetFieldID(discoveredDeviceCls, "port", "I");
19211923

19221924
jobject discoveredObj = env->NewObject(discoveredDeviceCls, constructor);
19231925

@@ -1926,12 +1928,10 @@ JNI_METHOD(jobject, getDiscoveredDevice)(JNIEnv * env, jobject self, jlong handl
19261928
char ipAddress[100];
19271929
data->resolutionData.ipAddress[0].ToString(ipAddress, 100);
19281930
jstring jniipAdress = env->NewStringUTF(ipAddress);
1931+
19291932
env->SetObjectField(discoveredObj, ipAddressID, jniipAdress);
1933+
env->SetIntField(discoveredObj, portID, static_cast<jint>(data->resolutionData.port));
19301934

1931-
if (data == nullptr)
1932-
{
1933-
ChipLogError(Controller, "GetDiscoveredDevice - not found");
1934-
}
19351935
return discoveredObj;
19361936
}
19371937

src/controller/java/src/chip/devicecontroller/DiscoveredDevice.java

+1
Original file line numberDiff line numberDiff line change
@@ -20,4 +20,5 @@
2020
public class DiscoveredDevice {
2121
public long discriminator;
2222
public String ipAddress;
23+
public int port;
2324
}

0 commit comments

Comments
 (0)