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 ff668a9ac5a53c47717976c73435da8069233b4d..7536b1ae60fd276413ee53d04e7f7e805f43e6e0 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 @@ -191,16 +191,18 @@ public class MainActivity extends AppCompatActivity implements topic = MQTT_TOPIC_POLAR_BRIGHTNESS; break; case SUB_KEY_LINEAR_ACCELERATION: - float[] accelerationData = new float[3]; - writeFloatArray(ByteBuffer.wrap(messageEvent.getData()), accelerationData); - updatedValue = Arrays.toString(accelerationData); +// float[] accelerationData = new float[3]; +// writeFloatArray(ByteBuffer.wrap(messageEvent.getData()), accelerationData); +// updatedValue = Arrays.toString(accelerationData); + updatedValue = formatByteFloatArray(ByteBuffer.wrap(messageEvent.getData())); textViewToUpdate = findViewById(R.id.value_wear_acceleration); topic = MQTT_TOPIC_POLAR_ACCELERATION; break; case SUB_KEY_ROTATION_VECTOR: - float[] rotationData = new float[3]; - writeFloatArray(ByteBuffer.wrap(messageEvent.getData()), rotationData); - updatedValue = Arrays.toString(rotationData); +// float[] rotationData = new float[3]; +// writeFloatArray(ByteBuffer.wrap(messageEvent.getData()), rotationData); +// updatedValue = Arrays.toString(rotationData); + updatedValue = formatByteFloatArray(ByteBuffer.wrap(messageEvent.getData())); textViewToUpdate = findViewById(R.id.value_wear_rotation); topic = MQTT_TOPIC_POLAR_ROTATION; break; @@ -219,6 +221,20 @@ public class MainActivity extends AppCompatActivity implements } } + private String formatByteFloatArray(ByteBuffer buffer) { + StringBuilder sb = new StringBuilder(); + final int length = 3; + boolean notFirst = false; + for (int i = 0; i < length; i++) { + if (notFirst) { + sb.append(" : "); + } + notFirst = true; + sb.append(String.format(Locale.getDefault(), "%.2f", buffer.getFloat())); + } + return sb.toString(); + } + private void writeFloatArray(ByteBuffer input, float[] output) { for (int i = 0; i < output.length; i++) { output[i] = input.getFloat();