diff --git a/mobile/src/main/java/de/tudresden/inf/st/sensorsharing/MainActivity.java b/mobile/src/main/java/de/tudresden/inf/st/sensorsharing/MainActivity.java
index a1e40f929357246e2fde0e2062cd5aa3ac5245ae..ce87db8f787f80d3c4e99e23f00df481f0ec1ef5 100644
--- a/mobile/src/main/java/de/tudresden/inf/st/sensorsharing/MainActivity.java
+++ b/mobile/src/main/java/de/tudresden/inf/st/sensorsharing/MainActivity.java
@@ -13,6 +13,7 @@ import android.support.v7.app.AppCompatActivity;
 import android.util.Log;
 import android.view.View;
 import android.widget.CheckBox;
+import android.widget.CompoundButton;
 import android.widget.EditText;
 import android.widget.TextView;
 import android.widget.Toast;
@@ -49,10 +50,6 @@ public class MainActivity extends AppCompatActivity implements
         MessageClient.OnMessageReceivedListener {
 
     private static final String TAG = "SensorSharing";
-    private static final String MQTT_TOPIC_POLAR_BASE = "sensors/polar/";
-    private static final String MQTT_TOPIC_POLAR_BRIGHTNESS = MQTT_TOPIC_POLAR_BASE + "brightness";
-    private static final String MQTT_TOPIC_POLAR_ACCELERATION = MQTT_TOPIC_POLAR_BASE + "acceleration";
-    private static final String MQTT_TOPIC_POLAR_ROTATION = MQTT_TOPIC_POLAR_BASE + "rotation";
     private static final String MQTT_TOPIC_SAMSUNG = "sensors/samsung/brightness";
     private static final int MQTT_DEFAULT_QOS = 0;
     /** Delay in milliseconds after which the wearable is assumed to be offline */
@@ -63,9 +60,11 @@ public class MainActivity extends AppCompatActivity implements
     private TextView mValueWearBrightness;
     private MqttAndroidClient mqttAndroidClient;
     private int sensorChangedCounter = 0;
-    private long lastMessageFromWearable;
+    private Date lastMessageFromWearable;
     private DateFormat dateTimeFormat = DateFormat.getDateTimeInstance(
             DateFormat.SHORT, android.icu.text.DateFormat.SHORT);
+    private boolean sendMqttUpdates;
+    private MqttTopics wearTopics;
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
@@ -85,22 +84,52 @@ public class MainActivity extends AppCompatActivity implements
         mLight = mSensorManager.getDefaultSensor(Sensor.TYPE_LIGHT);
         mValueWearBrightness = findViewById(R.id.value_wear_brightness);
 
-        setChecked(false);
+        updateWearStatus(false);
         connectMqtt(null);
 
+        // repeating connectivity check
         final Handler handler = new Handler();
         Runnable runnable = new Runnable() {
             @Override
             public void run() {
                 long now = System.currentTimeMillis();
-                if (now - lastMessageFromWearable > DELAY_WEARABLE_ASSUMED_OFFLINE) {
-                    setChecked(false);
+                if (now - lastMessageFromWearable.getTime() > DELAY_WEARABLE_ASSUMED_OFFLINE) {
+                    updateWearStatus(false);
                 }
-                // repeat after 30 seconds
+                // repeat after delay
                 handler.postDelayed(this, DELAY_WEARABLE_ASSUMED_OFFLINE);
             }
         };
         handler.post(runnable);
+
+        setupSendUpdatesCheckbox();
+        updateMqttTopics("unknown");
+    }
+
+    private void updateMqttTopics(String wearableName) {
+        // moto: "Moto 360"
+        // polar: ??
+        String subTopic;
+        switch (wearableName) {
+            case "Moto 360":
+                subTopic = "moto360";
+                break;
+            default:
+                // should be a specific name for the Polar, once the app runs again
+                subTopic = "polar";
+        }
+        wearTopics = new MqttTopics(subTopic);
+    }
+
+    private void setupSendUpdatesCheckbox() {
+        final CheckBox sendUpdates = findViewById(R.id.checkBox_send_updates);
+        sendMqttUpdates = sendUpdates.isChecked();
+        sendUpdates.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
+            @Override
+            public void onCheckedChanged(CompoundButton compoundButton, boolean isChecked) {
+                sendMqttUpdates = isChecked;
+            }
+        });
     }
 
     private void setName() {
@@ -167,9 +196,15 @@ public class MainActivity extends AppCompatActivity implements
         }
     }
 
-    private void setChecked(boolean checked) {
-        CheckBox checkBox = findViewById(R.id.checkBox);
-        checkBox.setChecked(checked);
+    private void updateWearStatus(boolean connected) {
+        String text;
+        if (connected) {
+            text = "Connected (last contact: %s)";
+        } else {
+            text = "Disconnected since %s";
+        }
+        TextView wearStatus = findViewById(R.id.value_wear_status);
+        wearStatus.setText(String.format(text, dateTimeFormat.format(lastMessageFromWearable)));
     }
 
     @Override
@@ -209,8 +244,7 @@ public class MainActivity extends AppCompatActivity implements
         String path = messageEvent.getPath();
         if (path == null) return;
         if (path.startsWith(BASE_KEY)) {
-            final Date contactTime = new Date();
-            lastMessageFromWearable = contactTime.getTime();
+            lastMessageFromWearable = new Date();
             final String updatedValue;
             String topic = null;
             final TextView textViewToUpdate;
@@ -220,7 +254,7 @@ public class MainActivity extends AppCompatActivity implements
                     float mWearBrightness = ByteBuffer.wrap(messageEvent.getData()).getFloat();
                     updatedValue = Float.toString(mWearBrightness);
                     textViewToUpdate = mValueWearBrightness;
-                    topic = MQTT_TOPIC_POLAR_BRIGHTNESS;
+                    topic = wearTopics.mqtt_topic_brightness;
                     break;
                 case SUB_KEY_LINEAR_ACCELERATION:
 //                    float[] accelerationData = new float[3];
@@ -228,7 +262,7 @@ public class MainActivity extends AppCompatActivity implements
 //                    updatedValue = Arrays.toString(accelerationData);
                     updatedValue = formatByteFloatArray(ByteBuffer.wrap(messageEvent.getData()));
                     textViewToUpdate = findViewById(R.id.value_wear_acceleration);
-                    topic = MQTT_TOPIC_POLAR_ACCELERATION;
+                    topic = wearTopics.mqtt_topic_acceleration;
                     break;
                 case SUB_KEY_ROTATION_VECTOR:
 //                    float[] rotationData = new float[3];
@@ -236,11 +270,12 @@ public class MainActivity extends AppCompatActivity implements
 //                    updatedValue = Arrays.toString(rotationData);
                     updatedValue = formatByteFloatArray(ByteBuffer.wrap(messageEvent.getData()));
                     textViewToUpdate = findViewById(R.id.value_wear_rotation);
-                    topic = MQTT_TOPIC_POLAR_ROTATION;
+                    topic = wearTopics.mqtt_topic_rotation;
                     break;
                 case SUB_KEY_NAME:
                     updatedValue = new String(messageEvent.getData(), MQTT_CHARSET);
                     textViewToUpdate = findViewById(R.id.value_wear_name);
+                    updateMqttTopics(updatedValue);
                     break;
                 default:
                     Log.w(TAG, "Unknown path: " + path);
@@ -249,9 +284,7 @@ public class MainActivity extends AppCompatActivity implements
             runOnUiThread(new Runnable() {
                 @Override
                 public void run() {
-                    setChecked(true);
-                    TextView lastContact = findViewById(R.id.value_last_contact);
-                    lastContact.setText(dateTimeFormat.format(contactTime));
+                    updateWearStatus(true);
                     textViewToUpdate.setText(updatedValue);
 
                 }
@@ -291,6 +324,9 @@ public class MainActivity extends AppCompatActivity implements
     }
 
     private void sendUpdate(String topic, String newValue) {
+        if (!sendMqttUpdates) {
+            return;
+        }
         if (mqttAndroidClient == null) {
             Log.d(TAG, "mqtt client is null");
             return;
diff --git a/mobile/src/main/java/de/tudresden/inf/st/sensorsharing/MqttTopics.java b/mobile/src/main/java/de/tudresden/inf/st/sensorsharing/MqttTopics.java
new file mode 100644
index 0000000000000000000000000000000000000000..a1ef5eb2df94943437080b943d659325f7c63812
--- /dev/null
+++ b/mobile/src/main/java/de/tudresden/inf/st/sensorsharing/MqttTopics.java
@@ -0,0 +1,14 @@
+package de.tudresden.inf.st.sensorsharing;
+
+public class MqttTopics {
+    private static final String MQTT_TOPIC_BASE = "sensors/";
+    public final String mqtt_topic_brightness;
+    public final String mqtt_topic_acceleration;
+    public final String mqtt_topic_rotation;
+
+    public MqttTopics(String subTopic) {
+        mqtt_topic_brightness = MQTT_TOPIC_BASE + subTopic + "/brightness";
+        mqtt_topic_acceleration = MQTT_TOPIC_BASE + subTopic + "/acceleration";
+        mqtt_topic_rotation = MQTT_TOPIC_BASE + subTopic + "/rotation";
+    }
+}
diff --git a/mobile/src/main/res/layout/activity_main.xml b/mobile/src/main/res/layout/activity_main.xml
index 98a00dc4d9b419c6427b6c54c69f846bf271e97a..9ad48d1b09c0aa4a381b51066108d598ab3831ef 100644
--- a/mobile/src/main/res/layout/activity_main.xml
+++ b/mobile/src/main/res/layout/activity_main.xml
@@ -10,12 +10,12 @@
         android:id="@+id/label_wear_name"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
-        android:layout_marginStart="16dp"
+        android:layout_marginStart="8dp"
         android:layout_marginTop="8dp"
         android:text="@string/text_name"
         app:layout_constraintLeft_toLeftOf="parent"
         app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toBottomOf="@+id/checkBox" />
+        app:layout_constraintTop_toBottomOf="@+id/label_wear_status" />
 
     <TextView
         android:id="@+id/value_wear_name"
@@ -25,7 +25,7 @@
         android:layout_marginTop="8dp"
         android:text="@android:string/unknownName"
         app:layout_constraintStart_toEndOf="@+id/label_wear_name"
-        app:layout_constraintTop_toBottomOf="@+id/checkBox" />
+        app:layout_constraintTop_toBottomOf="@+id/label_wear_status" />
 
     <TextView
         android:id="@+id/label_own_name"
@@ -113,7 +113,7 @@
         android:id="@+id/label_wear_brightness"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
-        android:layout_marginStart="16dp"
+        android:layout_marginStart="8dp"
         android:layout_marginTop="8dp"
         android:text="@string/text_wear_brightness"
         app:layout_constraintStart_toStartOf="parent"
@@ -123,7 +123,7 @@
         android:id="@+id/label_wear_acceleration"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
-        android:layout_marginStart="16dp"
+        android:layout_marginStart="8dp"
         android:layout_marginTop="8dp"
         android:text="@string/text_wear_acceleration"
         app:layout_constraintStart_toStartOf="parent"
@@ -133,7 +133,7 @@
         android:id="@+id/label_wear_rotation"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
-        android:layout_marginStart="16dp"
+        android:layout_marginStart="8dp"
         android:layout_marginTop="8dp"
         android:text="@string/text_wear_rotation"
         app:layout_constraintStart_toStartOf="parent"
@@ -179,19 +179,6 @@
         app:layout_constraintStart_toEndOf="@+id/label_wear_rotation"
         app:layout_constraintTop_toBottomOf="@+id/label_wear_acceleration" />
 
-    <CheckBox
-        android:id="@+id/checkBox"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_marginLeft="16dp"
-        android:layout_marginTop="8dp"
-        android:checked="false"
-        android:clickable="false"
-        android:duplicateParentState="false"
-        android:text="@string/text_connected"
-        app:layout_constraintLeft_toLeftOf="parent"
-        app:layout_constraintTop_toBottomOf="@+id/separator_wear" />
-
     <EditText
         android:id="@+id/value_server_uri"
         android:layout_width="128dp"
@@ -218,13 +205,33 @@
         app:layout_constraintTop_toBottomOf="@+id/separator_mqtt" />
 
     <TextView
-        android:id="@+id/value_last_contact"
+        android:id="@+id/value_wear_status"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_marginStart="8dp"
-        android:layout_marginTop="16dp"
+        android:layout_marginTop="8dp"
         android:text="@android:string/unknownName"
-        app:layout_constraintStart_toEndOf="@+id/checkBox"
+        app:layout_constraintStart_toEndOf="@+id/label_wear_status"
+        app:layout_constraintTop_toBottomOf="@+id/separator_wear" />
+
+    <CheckBox
+        android:id="@+id/checkBox_send_updates"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_marginStart="8dp"
+        android:layout_marginTop="16dp"
+        android:text="@string/text_send_updates"
+        app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintTop_toBottomOf="@+id/label_server_uri" />
+
+    <TextView
+        android:id="@+id/label_wear_status"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_marginStart="8dp"
+        android:layout_marginTop="8dp"
+        android:text="Status"
+        app:layout_constraintStart_toStartOf="parent"
         app:layout_constraintTop_toBottomOf="@+id/separator_wear" />
 
 </android.support.constraint.ConstraintLayout>
diff --git a/mobile/src/main/res/values/strings.xml b/mobile/src/main/res/values/strings.xml
index 96cdfc471d6653babebdd44d33edc9898f1ea59c..d3d2f34651087cdd3e42ace93a30c294fbf8717c 100644
--- a/mobile/src/main/res/values/strings.xml
+++ b/mobile/src/main/res/values/strings.xml
@@ -11,4 +11,5 @@
     <string name="text_separator_smartphone_values">Smartphone Values</string>
     <string name="text_separator_wear_values">Wear Values</string>
     <string name="text_separator_mqtt_settings">MQTT Settings</string>
+    <string name="text_send_updates">Send updates</string>
 </resources>