Minor fixes.

This commit is contained in:
Sandor Dornbush
2010-12-01 17:28:22 -08:00
parent 06a00e6482
commit 7e4c01937f
8 changed files with 97 additions and 151 deletions
+1
View File
@@ -4,6 +4,7 @@
<classpathentry kind="lib" path="libs/googleloginclient-helper.jar"/> <classpathentry kind="lib" path="libs/googleloginclient-helper.jar"/>
<classpathentry kind="lib" path="libs/google-common.jar"/> <classpathentry kind="lib" path="libs/google-common.jar"/>
<classpathentry kind="lib" path="libs/accounts.jar"/> <classpathentry kind="lib" path="libs/accounts.jar"/>
<classpathentry kind="lib" path="libs/protobuf-java-2.3.0-lite.jar"/>
<classpathentry kind="src" path="src"/> <classpathentry kind="src" path="src"/>
<classpathentry kind="src" path="gen"/> <classpathentry kind="src" path="gen"/>
<classpathentry kind="output" path="bin"/> <classpathentry kind="output" path="bin"/>
Binary file not shown.

Before

Width:  |  Height:  |  Size: 358 B

After

Width:  |  Height:  |  Size: 1.8 KiB

+29 -82
View File
@@ -63,100 +63,47 @@ limitations under the License.
style="@style/StatsRegister" /> style="@style/StatsRegister" />
</TableRow> </TableRow>
<!-- Power meter status --> <!-- Power meter -->
<TableRow
android:padding="1dip">
<CheckBox android:id="@+id/power_meter_enabled"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/power_meter_enabled"
android:checked="true"
android:enabled="false"
android:layout_column="1"
android:layout_span="3" />
<TextView
android:id="@+id/power_meter_state_register"
android:textSize="20dip"
android:gravity="right"
android:layout_column="4"
android:layout_span="2"
android:text="@string/unknown" />
</TableRow>
<!-- Power and Cadence -->
<TableRow <TableRow
android:padding="1dip"> android:padding="1dip">
<TextView <TextView
android:id="@+id/power_label" android:id="@+id/power_label"
android:textSize="20dip"
android:layout_column="1" android:layout_column="1"
android:layout_span="3" android:layout_span="3"
android:text="@string/power" /> android:text="@string/power" />
</TableRow>
<TableRow
android:background="@color/stat_label_background">
<TextView <TextView
android:id="@+id/cadence_label" style="@style/StatsRegister.Big"
android:layout_column="4" android:id="@+id/power_state_register"
android:layout_span="2" android:layout_column="1"
android:layout_span="4" />
<TextView
style="@style/StatsUnitSolo" />
android:layout_column="5"
android:text="@string/watts" />
</TableRow>
<!-- Cadence -->
<TableRow
android:padding="1dip">
<TextView
android:layout_column="1"
android:layout_span="3"
android:text="@string/cadence" /> android:text="@string/cadence" />
</TableRow> </TableRow>
<TableRow <TableRow
android:background="@color/stat_label_background"> android:background="@color/stat_label_background">
<TextView <TextView
android:gravity="right" style="@style/StatsRegister.Big"
android:id="@+id/power_state_register"
android:layout_column="1"
android:layout_marginBottom="-9dip"
android:layout_marginTop="-9dip"
android:text="@string/unknown"
android:textColor="@color/stat_label_text"
android:textSize="40sp" />
<TextView
android:gravity="left"
android:layout_column="2"
android:layout_marginBottom="-9dip"
android:layout_marginTop="-9dip"
android:text="@string/watts"
android:textColor="@color/stat_label_text" />
<TextView
android:background="@color/black"
android:layout_column="3"
android:layout_marginBottom="-9dip"
android:layout_marginTop="-9dip"
android:layout_width="5dip"
android:textSize="40sp" />
<TextView
android:gravity="right"
android:id="@+id/cadence_state_register" android:id="@+id/cadence_state_register"
android:layout_column="4" android:layout_column="4" />
android:layout_marginBottom="-9dip"
android:layout_marginTop="-9dip"
android:text="@string/unknown"
android:textColor="@color/stat_label_text"
android:textSize="40sp" />
<TextView <TextView
android:gravity="left" style="@style/StatsUnitSolo" />
android:layout_column="2" android:layout_column="2"
android:layout_marginBottom="-9dip" android:text="@string/revolutions_per_minute" />
android:layout_marginTop="-9dip"
android:text="@string/revolutions_per_minute"
android:textColor="@color/stat_label_text" />
</TableRow>
<!-- Heart rate monitor -->
<TableRow>
<CheckBox android:id="@+id/heart_rate_monitor_enabled"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/heart_rate_monitor_enabled"
android:checked="true"
android:enabled="false"
android:layout_column="1"
android:layout_span="3" />
<TextView
android:id="@+id/heart_rate_monitor_state_register"
android:gravity="right"
android:textSize="20dip"
android:layout_column="4"
android:layout_span="2"
android:text="@string/unknown" />
</TableRow> </TableRow>
<!-- Heart Rate --> <!-- Heart Rate -->
@@ -170,14 +117,14 @@ limitations under the License.
<TableRow <TableRow
android:background="@color/stat_label_background"> android:background="@color/stat_label_background">
<TextView <TextView
style="@style/StatsRegister.Big"
android:id="@+id/heart_rate_register" android:id="@+id/heart_rate_register"
android:layout_column="1" android:layout_column="1"
android:layout_span="4" android:layout_span="4" />
style="@style/StatsRegister" />
<TextView <TextView
style="@style/StatsUnitSolo"
android:layout_column="5" android:layout_column="5"
android:text="@string/bpm" android:text="@string/bpm" />
style="@style/StatsUnitSolo" />
</TableRow> </TableRow>
</TableLayout> </TableLayout>
+1
View File
@@ -26,6 +26,7 @@
android:title="@string/aggregated_stats"/> android:title="@string/aggregated_stats"/>
<item android:id="@+id/menu_sensor_state" <item android:id="@+id/menu_sensor_state"
android:icon="@drawable/menu_sensor_status"
android:orderInCategory="1000" android:orderInCategory="1000"
android:title="@string/sensor_state"/> android:title="@string/sensor_state"/>
@@ -15,6 +15,7 @@
*/ */
package com.google.android.apps.mytracks; package com.google.android.apps.mytracks;
import static com.google.android.apps.mytracks.MyTracksConstants.TAG;
import com.google.android.apps.mytracks.content.Sensor; import com.google.android.apps.mytracks.content.Sensor;
import com.google.android.apps.mytracks.services.ITrackRecordingService; import com.google.android.apps.mytracks.services.ITrackRecordingService;
import com.google.android.apps.mytracks.services.sensors.SensorUtils; import com.google.android.apps.mytracks.services.sensors.SensorUtils;
@@ -25,7 +26,6 @@ import android.app.Activity;
import android.os.Bundle; import android.os.Bundle;
import android.os.RemoteException; import android.os.RemoteException;
import android.util.Log; import android.util.Log;
import android.widget.CheckBox;
import android.widget.TextView; import android.widget.TextView;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
@@ -69,11 +69,13 @@ public class SensorStateActivity extends Activity {
public SensorStateActivity() { public SensorStateActivity() {
utils = new StatsUtilities(this); utils = new StatsUtilities(this);
Log.w(TAG, "SensorStateActivity()");
} }
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
Log.w(TAG, "SensorStateActivity.onCreate");
setContentView(R.layout.sensor_state); setContentView(R.layout.sensor_state);
@@ -98,7 +100,8 @@ public class SensorStateActivity extends Activity {
protected void updateState() { protected void updateState() {
MyTracks mt = MyTracks.getInstance(); MyTracks mt = MyTracks.getInstance();
ITrackRecordingService service = mt.getTrackRecordingService(); ITrackRecordingService service =
mt == null ? null : mt.getTrackRecordingService();
if (service == null) { if (service == null) {
Log.d(MyTracksConstants.TAG, "Could not get track recording service."); Log.d(MyTracksConstants.TAG, "Could not get track recording service.");
updateSensorState(Sensor.SensorState.NONE); updateSensorState(Sensor.SensorState.NONE);
@@ -134,21 +137,12 @@ public class SensorStateActivity extends Activity {
sensorTime.setText(SensorUtils.getStateAsString(state, this)); sensorTime.setText(SensorUtils.getStateAsString(state, this));
} }
private void updateSensorData(Sensor.SensorDataSet sds) { protected void updateSensorData(Sensor.SensorDataSet sds) {
CheckBox heartRateMonitor =
(CheckBox) findViewById(R.id.heart_rate_monitor_enabled);
CheckBox powerMeter =
(CheckBox) findViewById(R.id.power_meter_enabled);
if (sds == null) { if (sds == null) {
utils.setUnknown(R.id.sensor_data_time_register); utils.setUnknown(R.id.sensor_data_time_register);
utils.setUnknown(R.id.cadence_state_register); utils.setUnknown(R.id.cadence_state_register);
utils.setUnknown(R.id.power_state_register); utils.setUnknown(R.id.power_state_register);
utils.setUnknown(R.id.power_meter_state_register);
powerMeter.setChecked(false);
utils.setUnknown(R.id.heart_rate_register); utils.setUnknown(R.id.heart_rate_register);
utils.setUnknown(R.id.heart_rate_monitor_state_register);
heartRateMonitor.setChecked(false);
return; return;
} }
@@ -156,46 +150,44 @@ public class SensorStateActivity extends Activity {
((TextView) findViewById(R.id.sensor_data_time_register)); ((TextView) findViewById(R.id.sensor_data_time_register));
sensorTime.setText( sensorTime.setText(
TIMESTAMP_FORMAT.format(new Date(sds.getCreationTime()))); TIMESTAMP_FORMAT.format(new Date(sds.getCreationTime())));
/*
sensorTime.setTextColor(sd.isValid()
? R.color.stat_label_text
: R.color.red);
*/
utils.setText(R.id.power_meter_state_register, if (sds.hasPower() && sds.getPower().hasValue()
SensorUtils.getStateAsString( && sds.getPower().getState() == Sensor.SensorState.SENDING) {
sds.hasPower() utils.setText(R.id.power_state_register,
? sds.getPower().getState() Integer.toString(sds.getPower().getValue()));
: Sensor.SensorState.NONE,
this));
boolean power = sds.hasPower() && sds.getPower().hasValue();
powerMeter.setChecked(power);
if (power) {
utils.setText(R.id.power_state_register, "" + sds.getPower().getValue());
} else { } else {
utils.setUnknown(R.id.power_state_register); utils.setText(R.id.power_state_register,
SensorUtils.getStateAsString(
sds.hasPower()
? sds.getPower().getState()
: Sensor.SensorState.NONE,
this));
} }
boolean cadence = sds.hasCadence() && sds.getCadence().hasValue(); if (sds.hasCadence() && sds.getCadence().hasValue()
if (cadence) { && sds.getCadence().getState() == Sensor.SensorState.SENDING) {
utils.setText(R.id.cadence_state_register, utils.setText(R.id.cadence_state_register,
Integer.toString(sds.getCadence().getValue())); Integer.toString(sds.getCadence().getValue()));
} else { } else {
utils.setUnknown(R.id.cadence_state_register); utils.setText(R.id.cadence_state_register,
SensorUtils.getStateAsString(
sds.hasCadence()
? sds.getCadence().getState()
: Sensor.SensorState.NONE,
this));
} }
boolean heartRate = sds.hasHeartRate() && sds.getHeartRate().hasValue(); if (sds.hasHeartRate() && sds.getHeartRate().hasValue()
heartRateMonitor.setChecked(heartRate); && sds.getHeartRate().getState() == Sensor.SensorState.SENDING) {
utils.setText(R.id.heart_rate_monitor_state_register, utils.setText(R.id.heart_rate_register,
SensorUtils.getStateAsString( Integer.toString(sds.getHeartRate().getValue()));
sds.hasHeartRate()
? sds.getHeartRate().getState()
: Sensor.SensorState.NONE,
this));
if (heartRate) {
utils.setText(R.id.heart_rate_register, "" + sds.getHeartRate().getValue());
} else { } else {
utils.setUnknown(R.id.heart_rate_register); utils.setText(R.id.heart_rate_register,
SensorUtils.getStateAsString(
sds.hasHeartRate()
? sds.getHeartRate().getState()
: Sensor.SensorState.NONE,
this));
} }
} }
} }
@@ -1044,33 +1044,33 @@ public class TrackRecordingService extends Service implements LocationListener {
} }
service.onLocationChanged(loc); service.onLocationChanged(loc);
} }
@Override
public byte[] getSensorData() {
if (service.sensorManager == null) {
Log.d(MyTracksConstants.TAG, "No sensor manager for data.");
return null;
}
if (service.sensorManager.getSensorDataSet() == null) {
Log.d(MyTracksConstants.TAG, "Sensor data set is null.");
return null;
}
return service.sensorManager.getSensorDataSet().toByteArray();
}
@Override @Override
public int getSensorState() { public byte[] getSensorData() {
if (service.sensorManager == null) { if (service.sensorManager == null) {
Log.d(MyTracksConstants.TAG, "No sensor manager for data."); Log.d(MyTracksConstants.TAG, "No sensor manager for data.");
return Sensor.SensorState.NONE.getNumber(); return null;
} }
return service.sensorManager.getSensorState().getNumber(); if (service.sensorManager.getSensorDataSet() == null) {
} Log.d(MyTracksConstants.TAG, "Sensor data set is null.");
return null;
}
return service.sensorManager.getSensorDataSet().toByteArray();
}
@Override
public int getSensorState() {
if (service.sensorManager == null) {
Log.d(MyTracksConstants.TAG, "No sensor manager for data.");
return Sensor.SensorState.NONE.getNumber();
}
return service.sensorManager.getSensorState().getNumber();
}
} }
public long startNewTrack() { public long startNewTrack() {
Log.d(MyTracksConstants.TAG, "TrackRecordingService.startNewTrack"); Log.d(MyTracksConstants.TAG, "TrackRecordingService.startNewTrack");
if (recordingTrackId != -1 || isRecording) { if (recordingTrackId != -1 || isRecording) { throw new IllegalStateException("A track is already in progress!");
throw new IllegalStateException("A track is already in progress!");
} }
long startTime = System.currentTimeMillis(); long startTime = System.currentTimeMillis();
@@ -1138,6 +1138,11 @@ public class TrackRecordingService extends Service implements LocationListener {
} }
showNotification(); showNotification();
prefManager.setRecordingTrack(recordingTrackId = -1); prefManager.setRecordingTrack(recordingTrackId = -1);
if (sensorManager != null) {
sensorManager.shutdown();
}
releaseWakeLock(); releaseWakeLock();
} }
+5 -4
View File
@@ -1,14 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<classpath> <classpath>
<classpathentry combineaccessrules="false" kind="src" path="/MyTracks"/>
<classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/> <classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
<classpathentry kind="src" path="src"/>
<classpathentry kind="src" path="gen"/>
<classpathentry kind="lib" path="libs/AndroidMockRuntime.jar"/>
<classpathentry kind="src" path=".apt_generated"> <classpathentry kind="src" path=".apt_generated">
<attributes> <attributes>
<attribute name="optional" value="true"/> <attribute name="optional" value="true"/>
</attributes> </attributes>
</classpathentry> </classpathentry>
<classpathentry combineaccessrules="false" kind="src" path="/MyTracks"/>
<classpathentry kind="src" path="src"/>
<classpathentry kind="src" path="gen"/>
<classpathentry kind="lib" path="libs/AndroidMockRuntime.jar"/>
<classpathentry kind="lib" path="libs/protobuf-java-2.3.0-lite.jar"/>
<classpathentry kind="output" path="bin"/> <classpathentry kind="output" path="bin"/>
</classpath> </classpath>
@@ -6,7 +6,6 @@ import com.google.android.apps.mytracks.content.Sensor;
import com.google.android.apps.mytracks.content.Track; import com.google.android.apps.mytracks.content.Track;
import com.google.android.apps.mytracks.content.Waypoint; import com.google.android.apps.mytracks.content.Waypoint;
import android.location.Location;
import android.test.AndroidTestCase; import android.test.AndroidTestCase;
import org.w3c.dom.Document; import org.w3c.dom.Document;