Adding accuracy to the CTS Verifier for HRM
Change-Id: Iba4d9e728c05994a48a6c1324976d785d30de515
diff --git a/apps/CtsVerifier/res/layout/snsr_hrm.xml b/apps/CtsVerifier/res/layout/snsr_hrm.xml
index 612b424..506ba9f 100644
--- a/apps/CtsVerifier/res/layout/snsr_hrm.xml
+++ b/apps/CtsVerifier/res/layout/snsr_hrm.xml
@@ -27,6 +27,21 @@
<TextView android:id="@+id/sensor_value"
android:background="@drawable/gray_bubble"
android:drawablePadding="10dip"
+ android:layout_above="@+id/sensor_accuracy_value"
+ android:layout_centerInParent="true"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginBottom="10dip"
+ android:paddingLeft="10dip"
+ android:paddingRight="10dip"
+ android:paddingTop="5dip"
+ android:paddingBottom="5dip"
+ android:textSize="28dip"
+ />
+
+ <TextView android:id="@+id/sensor_accuracy_value"
+ android:background="@drawable/gray_bubble"
+ android:drawablePadding="10dip"
android:layout_above="@+id/pass_fail_buttons"
android:layout_centerInParent="true"
android:layout_width="wrap_content"
diff --git a/apps/CtsVerifier/res/values/strings.xml b/apps/CtsVerifier/res/values/strings.xml
index b6c846f..d93649e 100644
--- a/apps/CtsVerifier/res/values/strings.xml
+++ b/apps/CtsVerifier/res/values/strings.xml
@@ -412,7 +412,7 @@
<!-- Heart Rate -->
<string name="snsr_heartrate_test">Heart Rate Test</string>
- <string name="snsr_heartrate_test_info">This test verifies that the heart rate monitor is working properly.\n\nVerify that the resting heart rate is between 0 and 100.</string>
+ <string name="snsr_heartrate_test_info">This test verifies that the heart rate monitor is working properly.\n\nWait for at least 1 minute before verifying.\n\nVerify that the resting heart rate is between 0 and 100.</string>
<string name="snsr_heartrate_test_no_heartrate_title">No heart rate monitor?</string>
<string name="snsr_heartrate_test_no_heartrate_message">It doesn\'t seem like you have a heart rate monitor, so you don\'t need to run this test.</string>
diff --git a/apps/CtsVerifier/src/com/android/cts/verifier/PassFailButtons.java b/apps/CtsVerifier/src/com/android/cts/verifier/PassFailButtons.java
index e7bf70d..ef80b5d 100644
--- a/apps/CtsVerifier/src/com/android/cts/verifier/PassFailButtons.java
+++ b/apps/CtsVerifier/src/com/android/cts/verifier/PassFailButtons.java
@@ -23,8 +23,11 @@
import android.content.Context;
import android.content.DialogInterface;
import android.content.DialogInterface.OnCancelListener;
+import android.content.pm.PackageManager;
import android.database.Cursor;
import android.os.Bundle;
+import android.os.PowerManager;
+import android.os.PowerManager.WakeLock;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
@@ -86,6 +89,25 @@
}
public static class Activity extends android.app.Activity implements PassFailActivity {
+ private WakeLock mWakeLock;
+
+ @Override
+ protected void onResume() {
+ super.onResume();
+ if (getPackageManager().hasSystemFeature(PackageManager.FEATURE_WATCH)) {
+ mWakeLock = ((PowerManager) getSystemService(Context.POWER_SERVICE))
+ .newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, "PassFailButtons");
+ mWakeLock.acquire();
+ }
+ }
+
+ @Override
+ protected void onPause() {
+ super.onPause();
+ if (getPackageManager().hasSystemFeature(PackageManager.FEATURE_WATCH)) {
+ mWakeLock.release();
+ }
+ }
@Override
public void setPassFailButtonClickListeners() {
diff --git a/apps/CtsVerifier/src/com/android/cts/verifier/sensors/HeartRateMonitorTestActivity.java b/apps/CtsVerifier/src/com/android/cts/verifier/sensors/HeartRateMonitorTestActivity.java
index d0cf41f..3a48e3c 100644
--- a/apps/CtsVerifier/src/com/android/cts/verifier/sensors/HeartRateMonitorTestActivity.java
+++ b/apps/CtsVerifier/src/com/android/cts/verifier/sensors/HeartRateMonitorTestActivity.java
@@ -23,7 +23,6 @@
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.os.Bundle;
-import android.util.Log;
import android.view.View;
import android.widget.TextView;
@@ -93,20 +92,23 @@
public void onSensorChanged(SensorEvent sensorEvent) {
float value = sensorEvent.values[0];
if (value > MAX_HEART_RATE || value < MIN_HEART_RATE) {
- updateWidgets(value, R.drawable.fs_error);
+ updateWidgets(value, sensorEvent.accuracy, R.drawable.fs_error);
} else {
- updateWidgets(value, R.drawable.fs_good);
+ updateWidgets(value, sensorEvent.accuracy, R.drawable.fs_good);
}
}
- void updateWidgets(float sensorValue, int icon) {
- mSensorText.setText(String.format("%+.2f", sensorValue));
- mSensorText.setCompoundDrawablesWithIntrinsicBounds(0, 0, icon, 0);
+ void updateWidgets(float value, float accuracy, int icon) {
+ TextView sensorText = (TextView) findViewById(R.id.sensor_value);
+ TextView sensorAccuracyText = (TextView) findViewById(R.id.sensor_accuracy_value);
+
+ sensorText.setText(String.format("%+.2f", value));
+ sensorText.setCompoundDrawablesWithIntrinsicBounds(0, 0, icon, 0);
+ sensorAccuracyText.setText(String.format("%+.2f", accuracy));
}
@Override
public void onAccuracyChanged(Sensor sensor, int i) {
-
}
}
}