diff --git a/NEWS b/NEWS
index 4b2064c..c4b0622 100644
--- a/NEWS
+++ b/NEWS
@@ -3,6 +3,9 @@ In development:
* Improve and simplify audio playback to reduce dropped
audio samples
+ * A parent device may pair with a child device by entering
+ the child's IP address and port.
+
Mon Dec 28, 2015: Release 0.1
diff --git a/res/layout/activity_discover.xml b/res/layout/activity_discover.xml
index 2a2806b..03fa076 100644
--- a/res/layout/activity_discover.xml
+++ b/res/layout/activity_discover.xml
@@ -22,78 +22,38 @@
android:layout_width="match_parent"
android:layout_height="15dip" />
-
+ android:text="@string/discoverChild"
+ android:textSize="17sp" />
+
+
-
-
-
-
-
-
-
-
-
-
+ android:layout_width="match_parent"
+ android:layout_height="15dip" />
-
-
+ android:layout_height="wrap_content"
+ android:text="@string/enterChildAddress"
+ android:textSize="17sp" />
-
-
-
+ android:layout_height="wrap_content"
+ android:text="@string/enterChildAddressDescription"
+ android:textSize="14sp" />
\ No newline at end of file
diff --git a/res/layout/activity_discover_address.xml b/res/layout/activity_discover_address.xml
new file mode 100644
index 0000000..b3945d2
--- /dev/null
+++ b/res/layout/activity_discover_address.xml
@@ -0,0 +1,83 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/res/layout/activity_discover_mdns.xml b/res/layout/activity_discover_mdns.xml
new file mode 100644
index 0000000..386bbcf
--- /dev/null
+++ b/res/layout/activity_discover_mdns.xml
@@ -0,0 +1,41 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/res/values/strings.xml b/res/values/strings.xml
index fa6dfdb..36e036d 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -24,9 +24,14 @@
Port:Address and port that parent must pair toNot connected to a Wi-Fi network
- Enter the IP Address and port of a child and click Connect, or choose a child from the list below
+ Enter the IP Address and port of a child and click ConnectConnect192.168.1.210000Either no port was entered or it is invalid
+ The address field needs to be filled out
+ Discover Child on Network
+ Select child from a list of discovered children on the network
+ Select Child by Address
+ Enter the address and port of the child
diff --git a/src/protect/babymonitor/DiscoverActivity.java b/src/protect/babymonitor/DiscoverActivity.java
index e443823..69bc7be 100644
--- a/src/protect/babymonitor/DiscoverActivity.java
+++ b/src/protect/babymonitor/DiscoverActivity.java
@@ -50,6 +50,37 @@ public class DiscoverActivity extends Activity
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_discover);
+ final Button discoverChildButton = (Button) findViewById(R.id.discoverChildButton);
+ discoverChildButton.setOnClickListener(new View.OnClickListener()
+ {
+ @Override
+ public void onClick(View v)
+ {
+ loadDiscoveryViaMdns();
+ }
+ });
+
+ final Button enterChildAddressButton = (Button) findViewById(R.id.enterChildAddressButton);
+ enterChildAddressButton.setOnClickListener(new View.OnClickListener()
+ {
+ @Override
+ public void onClick(View v)
+ {
+ loadDiscoveryViaAddress();
+ }
+ });
+ }
+
+ private void loadDiscoveryViaMdns()
+ {
+ setContentView(R.layout.activity_discover_mdns);
+ startServiceDiscovery("_babymonitor._tcp.");
+ }
+
+ private void loadDiscoveryViaAddress()
+ {
+ setContentView(R.layout.activity_discover_address);
+
final Button connectButton = (Button) findViewById(R.id.connectViaAddressButton);
connectButton.setOnClickListener(new View.OnClickListener()
{
@@ -64,19 +95,27 @@ public class DiscoverActivity extends Activity
final String addressString = addressField.getText().toString();
final String portString = portField.getText().toString();
+ if(addressString.length() == 0)
+ {
+ Toast.makeText(DiscoverActivity.this, R.string.invalidAddress, Toast.LENGTH_LONG).show();
+ return;
+ }
+
+ int port = 0;
+
try
{
- final int port = Integer.parseInt(portString);
- connectToChild(addressString, port, addressString);
+ port = Integer.parseInt(portString);
}
catch(NumberFormatException e)
{
Toast.makeText(DiscoverActivity.this, R.string.invalidPort, Toast.LENGTH_LONG).show();
+ return;
}
+
+ connectToChild(addressString, port, addressString);
}
});
-
- startServiceDiscovery("_babymonitor._tcp.");
}
@Override