diff --git a/myTracks/src/androidTest/java/com/google/android/apps/mytracks/services/sensors/PolarMessageParserTest.java b/myTracks/src/androidTest/java/com/google/android/apps/mytracks/services/sensors/PolarMessageParserTest.java deleted file mode 100644 index db1172b87..000000000 --- a/myTracks/src/androidTest/java/com/google/android/apps/mytracks/services/sensors/PolarMessageParserTest.java +++ /dev/null @@ -1,70 +0,0 @@ -package com.google.android.apps.mytracks.services.sensors; - -import com.google.android.apps.mytracks.content.Sensor; - -import junit.framework.TestCase; - -import java.util.Arrays; - -public class PolarMessageParserTest extends TestCase { - - PolarMessageParser parser = new PolarMessageParser(); - // A complete and valid Polar HxM packet - // FE08F701D1001104FE08F702D1001104 - private final byte[] originalBuf = - {(byte) 0xFE, 0x08, (byte) 0xF7, 0x01, (byte) 0xD1, 0x00, 0x11, 0x04, (byte) 0xFE, 0x08, - (byte) 0xF7, 0x02, (byte) 0xD1, 0x00, 0x11, 0x04}; - private byte[] buf; - - public void setUp() { - buf = Arrays.copyOfRange(originalBuf, 0, originalBuf.length); - } - - public void testIsValid() { - assertTrue(parser.isValid(buf)); - } - - public void testIsValid_invalidHeader() { - // Invalidate header. - buf[0] = 0x03; - assertFalse(parser.isValid(buf)); - } - - public void testIsValid_invalidCheckbyte() { - // Invalidate checkbyte. - buf[2] = 0x03; - assertFalse(parser.isValid(buf)); - } - - public void testIsValid_invalidSequence() { - // Invalidate sequence. - buf[3] = 0x11; - assertFalse(parser.isValid(buf)); - } - - public void testParseBuffer() { - buf[5] = 70; - Sensor.SensorDataSet sds = parser.parseBuffer(buf); - assertTrue(sds.hasHeartRate()); - assertTrue(sds.getHeartRate().getState() == Sensor.SensorState.SENDING); - assertEquals(70, sds.getHeartRate().getValue()); - } - - public void testFindNextAlignment_offset() { - // The first 4 bytes are garbage - buf = new byte[originalBuf.length + 4]; - buf[0] = 4; - buf[1] = 2; - buf[2] = 4; - buf[3] = 2; - - // Then the valid message. - System.arraycopy(originalBuf, 0, buf, 4, originalBuf.length); - assertEquals(4, parser.findNextAlignment(buf)); - } - - public void testFindNextAlignment_invalid() { - buf[0] = 0; - assertEquals(-1, parser.findNextAlignment(buf)); - } -} diff --git a/myTracks/src/androidTest/java/com/google/android/apps/mytracks/services/sensors/StrideReadingsTest.java b/myTracks/src/androidTest/java/com/google/android/apps/mytracks/services/sensors/StrideReadingsTest.java deleted file mode 100644 index 43e186208..000000000 --- a/myTracks/src/androidTest/java/com/google/android/apps/mytracks/services/sensors/StrideReadingsTest.java +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Copyright 2011 Google Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not - * use this file except in compliance with the License. You may obtain a copy of - * the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * License for the specific language governing permissions and limitations under - * the License. - */ -package com.google.android.apps.mytracks.services.sensors; - -import junit.framework.TestCase; - -/** - * @author Dominik Rottsches - */ -public class StrideReadingsTest extends TestCase { - - public void testNoReadingOnStartup() { - StrideReadings strideReadings = new StrideReadings(); - assertEquals(StrideReadings.CADENCE_NOT_AVAILABLE, strideReadings.getCadence()); - } - - public void testAverageCadenceAvailable() { - StrideReadings strideReadings = new StrideReadings(); - // 2 steps / second => Cadence is 120 / minute - for (int i = 1; i <= 30; i++) { - strideReadings.updateStrideReading(i*2); - if (i >= StrideReadings.MIN_READINGS_FOR_AVERAGE) { - assertEquals(120, strideReadings.getCadence()); - } else { - assertEquals(StrideReadings.CADENCE_NOT_AVAILABLE, strideReadings.getCadence()); - } - } - } - - /** - * Tests for correct calculation after rolling over at 128 strides, - * just like the HxM seems to do it. - */ - public void testRollover() { - StrideReadings strideReadings = new StrideReadings(); - // 1 step per second => Cadence is 60 / minute - // Updating readings counting upwards from initialStrides - - // initialStrides set to a value below 128 to ensure rollover. - int initialStrides = 128 - StrideReadings.NUM_READINGS_FOR_AVERAGE - 5; - - for (int i = 1; i <= StrideReadings.NUM_READINGS_FOR_AVERAGE + 10; i++) { - strideReadings.updateStrideReading((initialStrides + i) % 128); - if (i >= StrideReadings.MIN_READINGS_FOR_AVERAGE) { - assertEquals(60, strideReadings.getCadence()); - } else { - assertEquals(StrideReadings.CADENCE_NOT_AVAILABLE, strideReadings.getCadence()); - } - } - } -} diff --git a/myTracks/src/androidTest/java/com/google/android/apps/mytracks/services/sensors/ZephyrMessageParserTest.java b/myTracks/src/androidTest/java/com/google/android/apps/mytracks/services/sensors/ZephyrMessageParserTest.java deleted file mode 100644 index 61d99167a..000000000 --- a/myTracks/src/androidTest/java/com/google/android/apps/mytracks/services/sensors/ZephyrMessageParserTest.java +++ /dev/null @@ -1,55 +0,0 @@ -package com.google.android.apps.mytracks.services.sensors; - -import com.google.android.apps.mytracks.content.Sensor; - -import junit.framework.TestCase; - -public class ZephyrMessageParserTest extends TestCase { - - ZephyrMessageParser parser = new ZephyrMessageParser(); - - public void testIsValid() { - byte[] smallBuf = new byte[59]; - assertFalse(parser.isValid(smallBuf)); - // A complete and valid Zephyr HxM packet - byte[] buf = { 2,38,55,26,0,49,101,80,0,49,98,100,42,113,120,-53,-24,-60,-123,-61,117,-69,42,-75,74,-78,51,-79,27,-83,28,-88,28,-93,29,-98,25,-103,26,-108,26,-113,59,-118,0,0,0,0,0,0,-22,3,125,1,48,0,96,4,30,0 }; - // Make buffer invalid - buf[0] = buf[58] = buf[59] = 0; - assertFalse(parser.isValid(buf)); - buf[0] = 0x02; - assertFalse(parser.isValid(buf)); - buf[58] = 0x1E; - assertFalse(parser.isValid(buf)); - buf[59] = 0x03; - assertTrue(parser.isValid(buf)); - } - - public void testParseBuffer() { - byte[] buf = new byte[60]; - // Heart Rate (-1 =^ 255 unsigned byte) - buf[12] = -1; - // Battery Level - buf[11] = 51; - // Cadence (=^ 255*16 strides/min) - buf[56] = -1; - buf[57] = 15; - Sensor.SensorDataSet sds = parser.parseBuffer(buf); - assertTrue(sds.hasHeartRate()); - assertTrue(sds.getHeartRate().getState() == Sensor.SensorState.SENDING); - assertEquals(255, sds.getHeartRate().getValue()); - assertTrue(sds.hasBatteryLevel()); - assertTrue(sds.getBatteryLevel().getState() == Sensor.SensorState.SENDING); - assertEquals(51, sds.getBatteryLevel().getValue()); - assertTrue(sds.hasCadence()); - assertTrue(sds.getCadence().getState() == Sensor.SensorState.SENDING); - assertEquals(255, sds.getCadence().getValue()); - } - - public void testFindNextAlignment() { - byte[] buf = new byte[60]; - assertEquals(-1, parser.findNextAlignment(buf)); - buf[10] = 0x03; - buf[11] = 0x02; - assertEquals(10, parser.findNextAlignment(buf)); - } -} diff --git a/myTracks/src/main/java/com/google/android/apps/mytracks/services/sensors/PolarMessageParser.java b/myTracks/src/main/java/com/google/android/apps/mytracks/services/sensors/PolarMessageParser.java deleted file mode 100644 index 1a5f606d5..000000000 --- a/myTracks/src/main/java/com/google/android/apps/mytracks/services/sensors/PolarMessageParser.java +++ /dev/null @@ -1,138 +0,0 @@ -/* - * Copyright 2011 Google Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not - * use this file except in compliance with the License. You may obtain a copy of - * the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * License for the specific language governing permissions and limitations under - * the License. - */ -package com.google.android.apps.mytracks.services.sensors; - -import com.google.android.apps.mytracks.content.Sensor; - -/** - * An implementation of a Sensor MessageParser for Polar Wearlink Bluetooth HRM. - * - * Polar Bluetooth Wearlink packet example; - * Hdr Len Chk Seq Status HeartRate RRInterval_16-bits - * FE 08 F7 06 F1 48 03 64 - * where; - * Hdr always = 254 (0xFE), - * Chk = 255 - Len - * Seq range 0 to 15 - * Status = Upper nibble may be battery voltage - * bit 0 is Beat Detection flag. - * - * Additional packet examples; - * FE 08 F7 06 F1 48 03 64 - * FE 0A F5 06 F1 48 03 64 03 70 - * - * @author John R. Gerthoffer - */ -public class PolarMessageParser implements MessageParser { - - private int lastHeartRate = 0; - - /** - * Applies Polar packet validation rules to buffer. - * Polar packets are checked for following; - * offset 0 = header byte, 254 (0xFE). - * offset 1 = packet length byte, 8, 10, 12, 14. - * offset 2 = check byte, 255 - packet length. - * offset 3 = sequence byte, range from 0 to 15. - * - * @param buffer an array of bytes to parse - * @param i buffer offset to beginning of packet. - * @return whether buffer has a valid packet at offset i - */ - private boolean packetValid (byte[] buffer, int i) { - boolean headerValid = (buffer[i] & 0xFF) == 0xFE; - boolean checkbyteValid = (buffer[i + 2] & 0xFF) == (0xFF - (buffer[i + 1] & 0xFF)); - boolean sequenceValid = (buffer[i + 3] & 0xFF) < 16; - - return headerValid && checkbyteValid && sequenceValid; - } - - @Override - public Sensor.SensorDataSet parseBuffer(byte[] buffer) { - - int heartRate = 0; - boolean heartrateValid = false; - - // Minimum length Polar packets is 8, so stop search 8 bytes before buffer ends. - for (int i = 0; i < buffer.length - 8; i++) { - heartrateValid = packetValid(buffer,i); - if (heartrateValid) { - heartRate = buffer[i + 5] & 0xFF; - break; - } - } - - // If our buffer is corrupted, use decaying last good value. - if(!heartrateValid) { - heartRate = (int) (lastHeartRate * 0.8); - if(heartRate < 50) - heartRate = 0; - } - - lastHeartRate = heartRate; // Remember good value for next time. - - // Heart Rate - Sensor.SensorData.Builder b = Sensor.SensorData.newBuilder() - .setValue(heartRate) - .setState(Sensor.SensorState.SENDING); - - return Sensor.SensorDataSet.newBuilder() - .setCreationTime(System.currentTimeMillis()) - .setHeartRate(b) - .build(); - } - - /** - * Applies packet validation rules to buffer - * - * @param buffer an array of bytes to parse - * @return whether buffer has a valid packet starting at index zero - */ - @Override - public boolean isValid(byte[] buffer) { - return packetValid(buffer,0); - } - - /** - * Polar uses variable packet sizes; 8, 10, 12, 14 and rarely 16. - * The most frequent are 8 and 10. - * We will wait for 16 bytes. - * This way, we are assured of getting one good one. - * - * @return the size of buffer needed to parse a good packet - */ - @Override - public int getFrameSize() { - return 16; - } - - /** - * Searches buffer for the beginning of a valid packet. - * - * @param buffer an array of bytes to parse - * @return index to beginning of good packet, or -1 if none found. - */ - @Override - public int findNextAlignment(byte[] buffer) { - // Minimum length Polar packets is 8, so stop search 8 bytes before buffer ends. - for (int i = 0; i < buffer.length - 8; i++) { - if (packetValid(buffer,i)) { - return i; - } - } - return -1; - } -} diff --git a/myTracks/src/main/java/com/google/android/apps/mytracks/services/sensors/PolarSensorManager.java b/myTracks/src/main/java/com/google/android/apps/mytracks/services/sensors/PolarSensorManager.java deleted file mode 100644 index 37aa18832..000000000 --- a/myTracks/src/main/java/com/google/android/apps/mytracks/services/sensors/PolarSensorManager.java +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Copyright 2011 Google Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not - * use this file except in compliance with the License. You may obtain a copy of - * the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * License for the specific language governing permissions and limitations under - * the License. - */ - -package com.google.android.apps.mytracks.services.sensors; - -import android.content.Context; - -/** - * A Polar heart rate sensor manager. - * - * @author John R. Gerthoffer - */ -public class PolarSensorManager extends BluetoothSensorManager { - public PolarSensorManager(Context context) { - super(context, new PolarMessageParser()); - } -} diff --git a/myTracks/src/main/java/com/google/android/apps/mytracks/services/sensors/SensorManagerFactory.java b/myTracks/src/main/java/com/google/android/apps/mytracks/services/sensors/SensorManagerFactory.java index c070d2a56..328aa2d07 100644 --- a/myTracks/src/main/java/com/google/android/apps/mytracks/services/sensors/SensorManagerFactory.java +++ b/myTracks/src/main/java/com/google/android/apps/mytracks/services/sensors/SensorManagerFactory.java @@ -91,13 +91,8 @@ public class SensorManagerFactory { * @param context the context */ private static SensorManager getSensorManager(Context context) { - String sensorType = PreferencesUtils.getString( - context, R.string.sensor_type_key, PreferencesUtils.SENSOR_TYPE_DEFAULT); + //TODO Implement Bluetooth LE Sensor manager - switch (sensorType) { - case "ZEPHYR": return new ZephyrSensorManager(context); - case "POLAR": return new PolarSensorManager(context); - } return null; } } diff --git a/myTracks/src/main/java/com/google/android/apps/mytracks/services/sensors/StrideReadings.java b/myTracks/src/main/java/com/google/android/apps/mytracks/services/sensors/StrideReadings.java deleted file mode 100644 index 232f9489a..000000000 --- a/myTracks/src/main/java/com/google/android/apps/mytracks/services/sensors/StrideReadings.java +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Copyright 2011 Google Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not - * use this file except in compliance with the License. You may obtain a copy of - * the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * License for the specific language governing permissions and limitations under - * the License. - */ -package com.google.android.apps.mytracks.services.sensors; - -import java.util.LinkedList; -import java.util.List; - -/** - * A history of Zephyr stride counter reading. - * These can be used as an alternate method to calculate the correct cadence. - * This is a work around for an issue with some HxM firmware. - * - * @author Dominik Rottsches - */ -public class StrideReadings { - - // visible for testing - protected static final int NUM_READINGS_FOR_AVERAGE = 10; - protected static final int MIN_READINGS_FOR_AVERAGE = 5; - - protected static final int CADENCE_NOT_AVAILABLE = -1; - - // TODO: Check whether 1Hz assumption is okay for cadence calculation - // otherwise add heart beat timestamp to this list and compute - // cadence from these timestamps. - private final List strideReadingsHistory; - - public StrideReadings() { - strideReadingsHistory = new LinkedList<>(); - } - - public void updateStrideReading(int numStrides) { - // HRM/HxM documentation says, transmission frequency is 1 Hz, - // let's keep last NUM_READINGS_FOR_AVERAGE readings. - // TODO: Calibrate this using a reliable footpod / cadence sensor, - // otherwise use heartbeat timestamp for calculation. - strideReadingsHistory.add(0, numStrides); - while (strideReadingsHistory.size() > NUM_READINGS_FOR_AVERAGE) { - strideReadingsHistory.remove(strideReadingsHistory.size()-1); - } - } - - public int getCadence() { - if (strideReadingsHistory.size() < MIN_READINGS_FOR_AVERAGE) { - // Bail out if we cannot really get a meaningful average yet. - return CADENCE_NOT_AVAILABLE; - } - // Compute assuming 1 stride reading/second. - int timeSinceOldestReadingSecs = strideReadingsHistory.size() - 1; - int stridesThen = strideReadingsHistory.get(strideReadingsHistory.size()-1); - int stridesNow = strideReadingsHistory.get(0); - // Contrary to documentation stride value seems to roll over at 128. - return Math.round( (float)(mod((stridesNow - stridesThen), 128)) / - timeSinceOldestReadingSecs * 60); - } - - /** - * Modulo operation with positive return values, Java's remainder operator doesn't change sign. - * - * @return x mod y - */ - private static int mod(int x, int y) - { - int result = x % y; - return result < 0 ? result + y : result; - } -} diff --git a/myTracks/src/main/java/com/google/android/apps/mytracks/services/sensors/ZephyrMessageParser.java b/myTracks/src/main/java/com/google/android/apps/mytracks/services/sensors/ZephyrMessageParser.java deleted file mode 100644 index 9ddbecfcf..000000000 --- a/myTracks/src/main/java/com/google/android/apps/mytracks/services/sensors/ZephyrMessageParser.java +++ /dev/null @@ -1,108 +0,0 @@ -/* - * Copyright 2010 Google Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not - * use this file except in compliance with the License. You may obtain a copy of - * the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * License for the specific language governing permissions and limitations under - * the License. - */ -package com.google.android.apps.mytracks.services.sensors; - -import com.google.android.apps.mytracks.content.Sensor; - -import java.util.Arrays; - -/** - * An implementation of a Sensor MessageParser for Zephyr. - * - * @author Sandor Dornbush - * @author Dominik Ršttsches - */ -public class ZephyrMessageParser implements MessageParser { - - public static final int ZEPHYR_HXM_BYTE_STX = 0; - public static final int ZEPHYR_HXM_BYTE_CRC = 58; - public static final int ZEPHYR_HXM_BYTE_ETX = 59; - - private static final byte[] CADENCE_BUG_FW_ID = {0x1A, 0x00, 0x31, 0x65, 0x50, 0x00, 0x31, 0x62}; - - private StrideReadings strideReadings; - - @Override - public Sensor.SensorDataSet parseBuffer(byte[] buffer) { - Sensor.SensorDataSet.Builder sds = - Sensor.SensorDataSet.newBuilder() - .setCreationTime(System.currentTimeMillis()); - - Sensor.SensorData.Builder heartrate = Sensor.SensorData.newBuilder() - .setValue(buffer[12] & 0xFF) - .setState(Sensor.SensorState.SENDING); - sds.setHeartRate(heartrate); - - Sensor.SensorData.Builder batteryLevel = Sensor.SensorData.newBuilder() - .setValue(buffer[11]) - .setState(Sensor.SensorState.SENDING); - sds.setBatteryLevel(batteryLevel); - - setCadence(sds, buffer); - - return sds.build(); - } - - private void setCadence(Sensor.SensorDataSet.Builder sds, byte[] buffer) { - // Device Firmware ID, Firmware Version, Hardware ID, Hardware Version - // 0x1A00316550003162 produces erroneous values for Cadence and needs - // a workaround based on the stride counter. - // Firmware values range from field 3 to 10 (inclusive) of the byte buffer. - byte[] hardwareFirmwareId = Arrays.copyOfRange(buffer, 3, 11); - Sensor.SensorData.Builder cadence = Sensor.SensorData.newBuilder(); - - if (Arrays.equals(hardwareFirmwareId, CADENCE_BUG_FW_ID)) { - if (strideReadings == null) { - strideReadings = new StrideReadings(); - } - strideReadings.updateStrideReading(buffer[54] & 0xFF); - - if (strideReadings.getCadence() != StrideReadings.CADENCE_NOT_AVAILABLE) { - cadence.setValue(strideReadings.getCadence()).setState(Sensor.SensorState.SENDING); - } - } else { - cadence - .setValue(SensorUtils.unsignedShortToIntLittleEndian(buffer, 56) / 16) - .setState(Sensor.SensorState.SENDING); - } - sds.setCadence(cadence); - } - - @Override - public boolean isValid(byte[] buffer) { - // Check STX (Start of Text), ETX (End of Text) and CRC Checksum - return buffer.length > ZEPHYR_HXM_BYTE_ETX - && buffer[ZEPHYR_HXM_BYTE_STX] == 0x02 - && buffer[ZEPHYR_HXM_BYTE_ETX] == 0x03 - && SensorUtils.getCrc8(buffer, 3, 55) == buffer[ZEPHYR_HXM_BYTE_CRC]; - } - - @Override - public int getFrameSize() { - return 60; - } - - @Override - public int findNextAlignment(byte[] buffer) { - // TODO test or understand this code. - for (int i = 0; i < buffer.length - 1; i++) { - if (buffer[i] == 0x03 && buffer[i+1] == 0x02) { - return i; - } - } - return -1; - } -} diff --git a/myTracks/src/main/java/com/google/android/apps/mytracks/services/sensors/ZephyrSensorManager.java b/myTracks/src/main/java/com/google/android/apps/mytracks/services/sensors/ZephyrSensorManager.java deleted file mode 100644 index b818c3cba..000000000 --- a/myTracks/src/main/java/com/google/android/apps/mytracks/services/sensors/ZephyrSensorManager.java +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Copyright 2010 Google Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not - * use this file except in compliance with the License. You may obtain a copy of - * the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * License for the specific language governing permissions and limitations under - * the License. - */ - -package com.google.android.apps.mytracks.services.sensors; - -import android.content.Context; - -/** - * A Zephyr heart rate sensor manager. - * - * @author Jimmy Shih - */ -public class ZephyrSensorManager extends BluetoothSensorManager { - - public ZephyrSensorManager(Context context) { - super(context, new ZephyrMessageParser()); - } -} diff --git a/myTracks/src/main/java/com/google/android/apps/mytracks/settings/SensorSettingsActivity.java b/myTracks/src/main/java/com/google/android/apps/mytracks/settings/SensorSettingsActivity.java index cd75329b4..605c7faac 100644 --- a/myTracks/src/main/java/com/google/android/apps/mytracks/settings/SensorSettingsActivity.java +++ b/myTracks/src/main/java/com/google/android/apps/mytracks/settings/SensorSettingsActivity.java @@ -44,8 +44,6 @@ public class SensorSettingsActivity extends AbstractSettingsActivity { super.onCreate(bundle); addPreferencesFromResource(R.xml.sensor_settings); - configSensorType(); - findPreference(getString(R.string.settings_sensor_bluetooth_pairing_key)) .setOnPreferenceClickListener(new OnPreferenceClickListener() { public boolean onPreferenceClick(Preference preference) { @@ -56,34 +54,6 @@ public class SensorSettingsActivity extends AbstractSettingsActivity { }); } - private void configSensorType() { - ListPreference preference = (ListPreference) findPreference(getString(R.string.sensor_type_key)); - String value = PreferencesUtils.getString( - this, R.string.sensor_type_key, PreferencesUtils.SENSOR_TYPE_DEFAULT); - String[] options = getResources().getStringArray(R.array.sensor_type_bluetooth_options); - String[] values = getResources().getStringArray( R.array.sensor_type_bluetooth_values); - - OnPreferenceChangeListener listener = new OnPreferenceChangeListener() { - @Override - public boolean onPreferenceChange(Preference pref, Object newValue) { - updateUiBySensorType((String) newValue); - return true; - } - }; - configureListPreference(preference, options, options, values, value, listener); - } - - /** - * Updates the UI based on the sensor type. - * - * @param sensorType the sensor type - */ - private void updateUiBySensorType(String sensorType) { - boolean isBluetooth = getString(R.string.sensor_type_value_polar).equals(sensorType) || getString(R.string.sensor_type_value_zephyr).equals(sensorType); - findPreference(getString(R.string.settings_sensor_bluetooth_key)).setEnabled(isBluetooth); - } - - @Override protected void onResume() { super.onResume(); diff --git a/myTracks/src/main/res/values/arrays_do_not_translate.xml b/myTracks/src/main/res/values/arrays_do_not_translate.xml index 7f331672a..24db7f982 100644 --- a/myTracks/src/main/res/values/arrays_do_not_translate.xml +++ b/myTracks/src/main/res/values/arrays_do_not_translate.xml @@ -167,16 +167,6 @@ limitations under the License. 1000 2000 - - @string/settings_sensor_type_polar - @string/settings_sensor_type_zephyr - @string/value_none - - - @string/sensor_type_value_polar - @string/sensor_type_value_zephyr - @string/sensor_type_value_none - @string/description_speed_imperial @string/description_pace_imperial