mirror of
https://codeberg.org/OpenTracksApp/OpenTracks.git
synced 2026-10-04 02:13:07 +02:00
sync from main
This commit is contained in:
@@ -1221,18 +1221,18 @@ limitations under the License.
|
|||||||
</string>
|
</string>
|
||||||
<string name="settings_display_track_color_dynamic_medium"
|
<string name="settings_display_track_color_dynamic_medium"
|
||||||
translation_description="In the Display settings, under the 'Dynamic thresholds' configurations,
|
translation_description="In the Display settings, under the 'Dynamic thresholds' configurations,
|
||||||
the option for configuring the medium speed percentage. It is the percentage from the average
|
the option for configuring the percentage from the average speed to be considered as the
|
||||||
speed to be considered as the medium speed. The track color mode will use different colors to
|
medium speed. The track color mode will use different colors to color a track depending on
|
||||||
color a track depending on whether the speed is above, in, or below the medium speed range.">
|
whether the speed is above, in, or below the medium speed range.">
|
||||||
Medium speed percentage
|
Medium percentage
|
||||||
</string>
|
</string>
|
||||||
<string name="settings_display_track_color_dynamic_medium_summary"
|
<string name="settings_display_track_color_dynamic_medium_summary"
|
||||||
translation_description="In the Display settings, under the 'Dynamic thresholds' configurations,
|
translation_description="In the Display settings, under the 'Dynamic thresholds' configurations,
|
||||||
the summary for the 'Medium speed percentage' option explaining that it sets a percentage from
|
the summary for the 'Medium percentage' option explaining that it sets the percentage from
|
||||||
the average speed to be considered as the medium speed color. The track color mode will use
|
the average speed to be considered as the medium speed. The track color mode will use
|
||||||
different colors to color a track depending on whether the speed is above, in, or below the
|
different colors to color a track depending on whether the speed is above, in, or below the
|
||||||
medium speed range.">
|
medium speed range.">
|
||||||
Percentage from the average speed for the medium speed color.
|
Percentage from the average speed for the medium speed range.
|
||||||
</string>
|
</string>
|
||||||
<string name="settings_display_track_color_fixed"
|
<string name="settings_display_track_color_fixed"
|
||||||
translation_description="In the Display settings, for the 'Track color mode' dropdown, the
|
translation_description="In the Display settings, for the 'Track color mode' dropdown, the
|
||||||
@@ -1273,7 +1273,7 @@ limitations under the License.
|
|||||||
<string name="settings_display_track_color_summary"
|
<string name="settings_display_track_color_summary"
|
||||||
translation_description="In the Display settings, the summary for the 'Track color mode'
|
translation_description="In the Display settings, the summary for the 'Track color mode'
|
||||||
dropdown explaining that it configures how colors are used to color a track based on speed.">
|
dropdown explaining that it configures how colors are used to color a track based on speed.">
|
||||||
The way to color a track based on speed.
|
The way to color a track based on slow, medium, and high speed.
|
||||||
</string>
|
</string>
|
||||||
<string name="settings_not_while_recording"
|
<string name="settings_not_while_recording"
|
||||||
translation_description="In the Settings page, the summary for an option that is not available
|
translation_description="In the Settings page, the summary for an option that is not available
|
||||||
|
|||||||
@@ -25,8 +25,8 @@ public class AntMessage {
|
|||||||
|
|
||||||
/** Build a short value from its constituent bytes */
|
/** Build a short value from its constituent bytes */
|
||||||
protected static short decodeShort(byte b0, byte b1) {
|
protected static short decodeShort(byte b0, byte b1) {
|
||||||
short value = b0;
|
int value = b0 & 0xFF;
|
||||||
value |= ((short) b1) << 8;
|
value |= (b1 & 0xFF) << 8;
|
||||||
return value;
|
return (short)value;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+23
-12
@@ -92,7 +92,7 @@ public abstract class AntSensorManager extends SensorManager {
|
|||||||
String antAction = intent.getAction();
|
String antAction = intent.getAction();
|
||||||
Log.i(TAG, "enter data onReceive" + antAction);
|
Log.i(TAG, "enter data onReceive" + antAction);
|
||||||
|
|
||||||
if (antAction.equals(AntInterfaceIntent.ANT_RX_MESSAGE_ACTION)) {
|
if (antAction != null && antAction.equals(AntInterfaceIntent.ANT_RX_MESSAGE_ACTION)) {
|
||||||
byte[] antMessage = intent.getByteArrayExtra(AntInterfaceIntent.ANT_MESSAGE);
|
byte[] antMessage = intent.getByteArrayExtra(AntInterfaceIntent.ANT_MESSAGE);
|
||||||
if (DEBUGGING) {
|
if (DEBUGGING) {
|
||||||
Log.d(TAG, "Received RX message " + messageToString(antMessage));
|
Log.d(TAG, "Received RX message " + messageToString(antMessage));
|
||||||
@@ -185,22 +185,23 @@ public abstract class AntSensorManager extends SensorManager {
|
|||||||
* Cleans up the ANT+ receiver interface, by releasing the interface
|
* Cleans up the ANT+ receiver interface, by releasing the interface
|
||||||
* and destroying it.
|
* and destroying it.
|
||||||
*/
|
*/
|
||||||
private void cleanAntInterface()
|
private void cleanAntInterface() {
|
||||||
{
|
|
||||||
Log.i(TAG, "Destroying AntSensorManager");
|
Log.i(TAG, "Destroying AntSensorManager");
|
||||||
|
|
||||||
if (antReceiver != null) {
|
try {
|
||||||
try {
|
if (antReceiver == null) {
|
||||||
antReceiver.releaseInterface();
|
Log.e(TAG, "no ANT receiver");
|
||||||
} catch (AntServiceNotConnectedException e) {
|
return;
|
||||||
Log.i(TAG, "ANT service not connected", e);
|
|
||||||
} catch (AntInterfaceException e) {
|
|
||||||
Log.e(TAG, "failed to release ANT interface", e);
|
|
||||||
}
|
}
|
||||||
|
antReceiver.releaseInterface();
|
||||||
antReceiver.destroy();
|
antReceiver.destroy();
|
||||||
|
|
||||||
antReceiver = null;
|
antReceiver = null;
|
||||||
|
} catch (AntServiceNotConnectedException e) {
|
||||||
|
Log.i(TAG, "ANT service not connected", e);
|
||||||
|
} catch (AntInterfaceException e) {
|
||||||
|
Log.e(TAG, "failed to release ANT interface", e);
|
||||||
|
} catch (RuntimeException e) {
|
||||||
|
Log.e(TAG, "run-time exception when cleaning the ANT interface", e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -213,6 +214,11 @@ public abstract class AntSensorManager extends SensorManager {
|
|||||||
Log.d(TAG, "ANT service connected");
|
Log.d(TAG, "ANT service connected");
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
if (antReceiver == null) {
|
||||||
|
Log.e(TAG, "no ANT receiver");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (!antReceiver.claimInterface()) {
|
if (!antReceiver.claimInterface()) {
|
||||||
Log.e(TAG, "failed to claim ANT interface");
|
Log.e(TAG, "failed to claim ANT interface");
|
||||||
return;
|
return;
|
||||||
@@ -300,6 +306,11 @@ public abstract class AntSensorManager extends SensorManager {
|
|||||||
byte radioFreq, byte proxSearch) {
|
byte radioFreq, byte proxSearch) {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
if (antReceiver == null) {
|
||||||
|
Log.e(TAG, "no ANT receiver");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
// Assign as slave channel on selected network (0 = public, 1 = ANT+, 2 =
|
// Assign as slave channel on selected network (0 = public, 1 = ANT+, 2 =
|
||||||
// ANTFS)
|
// ANTFS)
|
||||||
antReceiver.ANTAssignChannel(channelNumber, AntDefine.PARAMETER_RX_NOT_TX, networkNumber);
|
antReceiver.ANTAssignChannel(channelNumber, AntDefine.PARAMETER_RX_NOT_TX, networkNumber);
|
||||||
|
|||||||
Reference in New Issue
Block a user