forked from upstream-mirrors/OpenTracks
add chronometer to each app widget item
This commit is contained in:
@@ -48,6 +48,9 @@ limitations under the License.
|
||||
<TextView
|
||||
android:id="@+id/track_widget_item1_unit"
|
||||
style="@style/TrackWidgetUnit" />
|
||||
<Chronometer
|
||||
android:id="@+id/track_widget_item1_chronometer"
|
||||
style="@style/TrackWidgetValue" />
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
@@ -78,6 +81,9 @@ limitations under the License.
|
||||
<TextView
|
||||
android:id="@+id/track_widget_item2_unit"
|
||||
style="@style/TrackWidgetUnit" />
|
||||
<Chronometer
|
||||
android:id="@+id/track_widget_item2_chronometer"
|
||||
style="@style/TrackWidgetValue" />
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
|
||||
@@ -37,6 +37,9 @@ limitations under the License.
|
||||
<TextView
|
||||
android:id="@+id/track_widget_item1_unit"
|
||||
style="@style/TrackWidgetUnit" />
|
||||
<Chronometer
|
||||
android:id="@+id/track_widget_item1_chronometer"
|
||||
style="@style/TrackWidgetValue" />
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
<!-- vertical separator -->
|
||||
@@ -62,6 +65,9 @@ limitations under the License.
|
||||
<TextView
|
||||
android:id="@+id/track_widget_item3_unit"
|
||||
style="@style/TrackWidgetUnit" />
|
||||
<Chronometer
|
||||
android:id="@+id/track_widget_item3_chronometer"
|
||||
style="@style/TrackWidgetValue" />
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
@@ -92,6 +98,9 @@ limitations under the License.
|
||||
<TextView
|
||||
android:id="@+id/track_widget_item2_unit"
|
||||
style="@style/TrackWidgetUnit" />
|
||||
<Chronometer
|
||||
android:id="@+id/track_widget_item2_chronometer"
|
||||
style="@style/TrackWidgetValue" />
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
<!-- vertical separator -->
|
||||
@@ -117,6 +126,9 @@ limitations under the License.
|
||||
<TextView
|
||||
android:id="@+id/track_widget_item4_unit"
|
||||
style="@style/TrackWidgetUnit" />
|
||||
<Chronometer
|
||||
android:id="@+id/track_widget_item4_chronometer"
|
||||
style="@style/TrackWidgetValue" />
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
|
||||
@@ -37,6 +37,9 @@ limitations under the License.
|
||||
<TextView
|
||||
android:id="@+id/track_widget_item1_unit"
|
||||
style="@style/TrackWidgetUnit4x3" />
|
||||
<Chronometer
|
||||
android:id="@+id/track_widget_item1_chronometer"
|
||||
style="@style/TrackWidgetValue4x3" />
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
<!-- vertical separator -->
|
||||
@@ -60,6 +63,9 @@ limitations under the License.
|
||||
<TextView
|
||||
android:id="@+id/track_widget_item3_unit"
|
||||
style="@style/TrackWidgetUnit4x3" />
|
||||
<Chronometer
|
||||
android:id="@+id/track_widget_item3_chronometer"
|
||||
style="@style/TrackWidgetValue4x3" />
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
@@ -90,6 +96,9 @@ limitations under the License.
|
||||
<TextView
|
||||
android:id="@+id/track_widget_item2_unit"
|
||||
style="@style/TrackWidgetUnit4x3" />
|
||||
<Chronometer
|
||||
android:id="@+id/track_widget_item2_chronometer"
|
||||
style="@style/TrackWidgetValue4x3" />
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
<!-- vertical separator -->
|
||||
@@ -113,6 +122,9 @@ limitations under the License.
|
||||
<TextView
|
||||
android:id="@+id/track_widget_item4_unit"
|
||||
style="@style/TrackWidgetUnit4x3" />
|
||||
<Chronometer
|
||||
android:id="@+id/track_widget_item4_chronometer"
|
||||
style="@style/TrackWidgetValue4x3" />
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
|
||||
@@ -37,6 +37,9 @@ limitations under the License.
|
||||
<TextView
|
||||
android:id="@+id/track_widget_item1_unit"
|
||||
style="@style/TrackWidgetUnit4x4" />
|
||||
<Chronometer
|
||||
android:id="@+id/track_widget_item1_chronometer"
|
||||
style="@style/TrackWidgetValue4x4" />
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
@@ -67,6 +70,9 @@ limitations under the License.
|
||||
<TextView
|
||||
android:id="@+id/track_widget_item3_unit"
|
||||
style="@style/TrackWidgetUnit4x4" />
|
||||
<Chronometer
|
||||
android:id="@+id/track_widget_item3_chronometer"
|
||||
style="@style/TrackWidgetValue4x4" />
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
@@ -96,6 +102,9 @@ limitations under the License.
|
||||
<TextView
|
||||
android:id="@+id/track_widget_item2_unit"
|
||||
style="@style/TrackWidgetUnit4x3" />
|
||||
<Chronometer
|
||||
android:id="@+id/track_widget_item2_chronometer"
|
||||
style="@style/TrackWidgetValue4x3" />
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
<!-- vertical separator -->
|
||||
@@ -121,6 +130,9 @@ limitations under the License.
|
||||
<TextView
|
||||
android:id="@+id/track_widget_item4_unit"
|
||||
style="@style/TrackWidgetUnit4x3" />
|
||||
<Chronometer
|
||||
android:id="@+id/track_widget_item4_chronometer"
|
||||
style="@style/TrackWidgetValue4x3" />
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
|
||||
@@ -22,21 +22,24 @@ limitations under the License.
|
||||
<TableLayout
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_width="fill_parent"
|
||||
android:padding="8dp" >
|
||||
android:padding="8dp"
|
||||
android:stretchColumns="0" >
|
||||
<TableRow style="@style/TrackWidgetConfigRow" >
|
||||
<Spinner
|
||||
android:id="@+id/track_widget_config_item1"
|
||||
style="@style/TrackWidgetConfigSpinner" />
|
||||
<LinearLayout style="@style/TrackWidgetConfigSpacer" />
|
||||
<Spinner
|
||||
android:id="@+id/track_widget_config_item3"
|
||||
style="@style/TrackWidgetConfigSpinner" />
|
||||
</TableRow>
|
||||
<TableRow style="@style/TrackWidgetConfigRow" >
|
||||
<Spinner
|
||||
android:id="@+id/track_widget_config_item2"
|
||||
style="@style/TrackWidgetConfigSpinner" />
|
||||
<LinearLayout style="@style/TrackWidgetConfigSpacer" />
|
||||
</TableRow>
|
||||
<TableRow style="@style/TrackWidgetConfigRow" >
|
||||
<Spinner
|
||||
android:id="@+id/track_widget_config_item3"
|
||||
style="@style/TrackWidgetConfigSpinner" />
|
||||
</TableRow>
|
||||
<TableRow style="@style/TrackWidgetConfigRow" >
|
||||
<Spinner
|
||||
android:id="@+id/track_widget_config_item4"
|
||||
style="@style/TrackWidgetConfigSpinner" />
|
||||
|
||||
@@ -231,23 +231,14 @@ limitations under the License.
|
||||
</style>
|
||||
<!-- track widget config row -->
|
||||
<style name="TrackWidgetConfigRow">
|
||||
<item name="android:layout_height">wrap_content</item>
|
||||
<item name="android:layout_width">wrap_content</item>
|
||||
<item name="android:paddingBottom">16dp</item>
|
||||
<item name="android:paddingTop">16dp</item>
|
||||
</style>
|
||||
<!-- track widget config spacer -->
|
||||
<style name="TrackWidgetConfigSpacer">
|
||||
<item name="android:layout_height">fill_parent</item>
|
||||
<item name="android:layout_weight">2</item>
|
||||
<item name="android:layout_width">0dp</item>
|
||||
<item name="android:paddingBottom">20dp</item>
|
||||
<item name="android:paddingTop">20dp</item>
|
||||
</style>
|
||||
<!-- track widget config spiner -->
|
||||
<style name="TrackWidgetConfigSpinner">
|
||||
<item name="android:gravity">left</item>
|
||||
<item name="android:layout_gravity">center_horizontal</item>
|
||||
<item name="android:layout_height">wrap_content</item>
|
||||
<item name="android:layout_weight">9</item>
|
||||
<item name="android:layout_width">0dp</item>
|
||||
<item name="android:layout_width">fill_parent</item>
|
||||
</style>
|
||||
<!-- Track widget frame -->
|
||||
<style name="TrackWidgetFrame">
|
||||
|
||||
@@ -35,6 +35,7 @@ import android.content.ComponentName;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.os.SystemClock;
|
||||
import android.support.v4.app.TaskStackBuilder;
|
||||
import android.util.SparseIntArray;
|
||||
import android.view.View;
|
||||
@@ -58,6 +59,19 @@ public class TrackWidgetProvider extends AppWidgetProvider {
|
||||
private static final SparseIntArray HEIGHT_SIZE = new SparseIntArray();
|
||||
private static final int DEFAULT_SIZE = 2;
|
||||
|
||||
private static final int[] ITEM1_IDS = { R.id.track_widget_item1_label,
|
||||
R.id.track_widget_item1_value, R.id.track_widget_item1_unit,
|
||||
R.id.track_widget_item1_chronometer };
|
||||
private static final int[] ITEM2_IDS = { R.id.track_widget_item2_label,
|
||||
R.id.track_widget_item2_value, R.id.track_widget_item2_unit,
|
||||
R.id.track_widget_item2_chronometer };
|
||||
private static final int[] ITEM3_IDS = { R.id.track_widget_item3_label,
|
||||
R.id.track_widget_item3_value, R.id.track_widget_item3_unit,
|
||||
R.id.track_widget_item3_chronometer };
|
||||
private static final int[] ITEM4_IDS = { R.id.track_widget_item4_label,
|
||||
R.id.track_widget_item4_value, R.id.track_widget_item4_unit,
|
||||
R.id.track_widget_item4_chronometer };
|
||||
|
||||
@Override
|
||||
public void onReceive(Context context, Intent intent) {
|
||||
super.onReceive(context, intent);
|
||||
@@ -68,7 +82,6 @@ public class TrackWidgetProvider extends AppWidgetProvider {
|
||||
|| context.getString(R.string.track_stopped_broadcast_action).equals(action)
|
||||
|| context.getString(R.string.track_update_broadcast_action).equals(action)) {
|
||||
long trackId = intent.getLongExtra(context.getString(R.string.track_id_broadcast_extra), -1L);
|
||||
|
||||
AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(context);
|
||||
int[] appWidgetIds = appWidgetManager.getAppWidgetIds(
|
||||
new ComponentName(context, TrackWidgetProvider.class));
|
||||
@@ -149,8 +162,8 @@ public class TrackWidgetProvider extends AppWidgetProvider {
|
||||
// Get the preferences
|
||||
long recordingTrackId = PreferencesUtils.getLong(context, R.string.recording_track_id_key);
|
||||
boolean isRecording = recordingTrackId != PreferencesUtils.RECORDING_TRACK_ID_DEFAULT;
|
||||
boolean recordingTrackPaused = PreferencesUtils.getBoolean(context,
|
||||
R.string.recording_track_paused_key, PreferencesUtils.RECORDING_TRACK_PAUSED_DEFAULT);
|
||||
boolean isPaused = PreferencesUtils.getBoolean(context, R.string.recording_track_paused_key,
|
||||
PreferencesUtils.RECORDING_TRACK_PAUSED_DEFAULT);
|
||||
boolean metricUnits = PreferencesUtils.getBoolean(
|
||||
context, R.string.metric_units_key, PreferencesUtils.METRIC_UNITS_DEFAULT);
|
||||
boolean reportSpeed = PreferencesUtils.getBoolean(
|
||||
@@ -170,23 +183,23 @@ public class TrackWidgetProvider extends AppWidgetProvider {
|
||||
TripStatistics tripStatistics = track == null ? null : track.getTripStatistics();
|
||||
|
||||
updateStatisticsContainer(context, remoteViews, track);
|
||||
setItem(context, remoteViews, R.id.track_widget_item1_label, R.id.track_widget_item1_value,
|
||||
R.id.track_widget_item1_unit, item1, tripStatistics, metricUnits, reportSpeed);
|
||||
setItem(context, remoteViews, R.id.track_widget_item2_label, R.id.track_widget_item2_value,
|
||||
R.id.track_widget_item2_unit, item2, tripStatistics, metricUnits, reportSpeed);
|
||||
setItem(context, remoteViews, ITEM1_IDS, item1, tripStatistics, isRecording, isPaused,
|
||||
metricUnits, reportSpeed);
|
||||
setItem(context, remoteViews, ITEM2_IDS, item2, tripStatistics, isRecording, isPaused,
|
||||
metricUnits, reportSpeed);
|
||||
|
||||
updateRecordButton(context, remoteViews, isRecording, recordingTrackPaused);
|
||||
updateRecordButton(context, remoteViews, isRecording, isPaused);
|
||||
updateStopButton(context, remoteViews, isRecording);
|
||||
if (heightSize > 1) {
|
||||
int item3 = PreferencesUtils.getInt(
|
||||
context, R.string.track_widget_item3, PreferencesUtils.TRACK_WIDGET_ITEM3_DEFAULT);
|
||||
int item4 = PreferencesUtils.getInt(
|
||||
context, R.string.track_widget_item4, PreferencesUtils.TRACK_WIDGET_ITEM4_DEFAULT);
|
||||
setItem(context, remoteViews, R.id.track_widget_item3_label, R.id.track_widget_item3_value,
|
||||
R.id.track_widget_item3_unit, item3, tripStatistics, metricUnits, reportSpeed);
|
||||
setItem(context, remoteViews, R.id.track_widget_item4_label, R.id.track_widget_item4_value,
|
||||
R.id.track_widget_item4_unit, item4, tripStatistics, metricUnits, reportSpeed);
|
||||
updateRecordStatus(context, remoteViews, isRecording, recordingTrackPaused);
|
||||
setItem(context, remoteViews, ITEM3_IDS, item3, tripStatistics, isRecording, isPaused,
|
||||
metricUnits, reportSpeed);
|
||||
setItem(context, remoteViews, ITEM4_IDS, item4, tripStatistics, isRecording, isPaused,
|
||||
metricUnits, reportSpeed);
|
||||
updateRecordStatus(context, remoteViews, isRecording, isPaused);
|
||||
}
|
||||
return remoteViews;
|
||||
}
|
||||
@@ -196,37 +209,42 @@ public class TrackWidgetProvider extends AppWidgetProvider {
|
||||
*
|
||||
* @param context the context
|
||||
* @param remoteViews the remote view
|
||||
* @param labelId the label id
|
||||
* @param valueId the value id
|
||||
* @param unitId the unit id
|
||||
* @param itemValue the item value
|
||||
* @param ids the item's ids
|
||||
* @param value the item value
|
||||
* @param tripStatistics the trip statistics
|
||||
* @param metricUnits true to use metric units
|
||||
* @param reportSpeed try to report speed
|
||||
*/
|
||||
private static void setItem(Context context, RemoteViews remoteViews, int labelId, int valueId,
|
||||
int unitId, int itemValue, TripStatistics tripStatistics, boolean metricUnits,
|
||||
private static void setItem(Context context, RemoteViews remoteViews, int[] ids, int value,
|
||||
TripStatistics tripStatistics, boolean isRecording, boolean isPaused, boolean metricUnits,
|
||||
boolean reportSpeed) {
|
||||
switch (itemValue) {
|
||||
switch (value) {
|
||||
case 0:
|
||||
updateTotalDistance(context, remoteViews, ids, tripStatistics, metricUnits);
|
||||
break;
|
||||
case 1:
|
||||
updateTotalTime(context, remoteViews, labelId, valueId, unitId, tripStatistics);
|
||||
updateTotalTime(context, remoteViews, ids, tripStatistics, isRecording, isPaused);
|
||||
break;
|
||||
case 2:
|
||||
updateAverageSpeed(context, remoteViews, labelId, valueId, unitId, tripStatistics,
|
||||
metricUnits, reportSpeed);
|
||||
updateAverageSpeed(context, remoteViews, ids, tripStatistics, metricUnits, reportSpeed);
|
||||
break;
|
||||
case 3:
|
||||
updateMovingTime(context, remoteViews, labelId, valueId, unitId, tripStatistics);
|
||||
updateMovingTime(context, remoteViews, ids, tripStatistics);
|
||||
break;
|
||||
case 4:
|
||||
updateAverageMovingSpeed(context, remoteViews, labelId, valueId, unitId, tripStatistics,
|
||||
metricUnits, reportSpeed);
|
||||
updateAverageMovingSpeed(
|
||||
context, remoteViews, ids, tripStatistics, metricUnits, reportSpeed);
|
||||
break;
|
||||
case 0:
|
||||
default:
|
||||
updateTotalDistance(
|
||||
context, remoteViews, labelId, valueId, unitId, tripStatistics, metricUnits);
|
||||
updateTotalDistance(context, remoteViews, ids, tripStatistics, metricUnits);
|
||||
break;
|
||||
|
||||
}
|
||||
if (value != 1) {
|
||||
remoteViews.setViewVisibility(ids[1], View.VISIBLE);
|
||||
remoteViews.setViewVisibility(ids[2], View.VISIBLE);
|
||||
remoteViews.setViewVisibility(ids[3], View.GONE);
|
||||
remoteViews.setChronometer(ids[3], SystemClock.elapsedRealtime(), null, false);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -257,19 +275,17 @@ public class TrackWidgetProvider extends AppWidgetProvider {
|
||||
*
|
||||
* @param context the context
|
||||
* @param remoteViews the remote views
|
||||
* @param labelId the label id
|
||||
* @param valueId the value id
|
||||
* @param unitId the unit id
|
||||
* @param ids the item's ids
|
||||
* @param tripStatistics the trip statistics
|
||||
* @param metricUnits true to use metric units
|
||||
*/
|
||||
private static void updateTotalDistance(Context context, RemoteViews remoteViews, int labelId,
|
||||
int valueId, int unitId, TripStatistics tripStatistics, boolean metricUnits) {
|
||||
private static void updateTotalDistance(Context context, RemoteViews remoteViews, int[] ids,
|
||||
TripStatistics tripStatistics, boolean metricUnits) {
|
||||
double totalDistance = tripStatistics == null ? Double.NaN : tripStatistics.getTotalDistance();
|
||||
String[] totalDistanceParts = StringUtils.getDistanceParts(context, totalDistance, metricUnits);
|
||||
remoteViews.setTextViewText(labelId, context.getString(R.string.stats_total_distance));
|
||||
remoteViews.setTextViewText(valueId, totalDistanceParts[0]);
|
||||
remoteViews.setTextViewText(unitId, totalDistanceParts[1]);
|
||||
remoteViews.setTextViewText(ids[0], context.getString(R.string.stats_total_distance));
|
||||
remoteViews.setTextViewText(ids[1], totalDistanceParts[0]);
|
||||
remoteViews.setTextViewText(ids[2], totalDistanceParts[1]);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -277,18 +293,29 @@ public class TrackWidgetProvider extends AppWidgetProvider {
|
||||
*
|
||||
* @param context the context
|
||||
* @param remoteViews the remote views
|
||||
* @param labelId the label id
|
||||
* @param valueId the value id
|
||||
* @param unitId the unit id
|
||||
* @param ids the item's ids
|
||||
* @param tripStatistics the trip statistics
|
||||
*/
|
||||
private static void updateTotalTime(Context context, RemoteViews remoteViews, int labelId,
|
||||
int valueId, int unitId, TripStatistics tripStatistics) {
|
||||
String totalTime = tripStatistics == null ? context.getString(R.string.value_unknown)
|
||||
: StringUtils.formatElapsedTime(tripStatistics.getTotalTime());
|
||||
remoteViews.setTextViewText(labelId, context.getString(R.string.stats_total_time));
|
||||
remoteViews.setTextViewText(valueId, totalTime);
|
||||
remoteViews.setViewVisibility(unitId, View.GONE);
|
||||
private static void updateTotalTime(Context context, RemoteViews remoteViews, int[] ids,
|
||||
TripStatistics tripStatistics, boolean isRecording, boolean isPaused) {
|
||||
if (isRecording && !isPaused && tripStatistics != null) {
|
||||
long time = tripStatistics.getTotalTime() + System.currentTimeMillis()
|
||||
- tripStatistics.getStopTime();
|
||||
remoteViews.setChronometer(ids[3], SystemClock.elapsedRealtime() - time, null, true);
|
||||
remoteViews.setViewVisibility(ids[1], View.GONE);
|
||||
remoteViews.setViewVisibility(ids[2], View.GONE);
|
||||
remoteViews.setViewVisibility(ids[3], View.VISIBLE);
|
||||
} else {
|
||||
remoteViews.setChronometer(ids[3], SystemClock.elapsedRealtime(), null, false);
|
||||
remoteViews.setViewVisibility(ids[1], View.VISIBLE);
|
||||
remoteViews.setViewVisibility(ids[2], View.GONE);
|
||||
remoteViews.setViewVisibility(ids[3], View.GONE);
|
||||
|
||||
String totalTime = tripStatistics == null ? context.getString(R.string.value_unknown)
|
||||
: StringUtils.formatElapsedTime(tripStatistics.getTotalTime());
|
||||
remoteViews.setTextViewText(ids[0], context.getString(R.string.stats_total_time));
|
||||
remoteViews.setTextViewText(ids[1], totalTime);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -296,24 +323,21 @@ public class TrackWidgetProvider extends AppWidgetProvider {
|
||||
*
|
||||
* @param context the context
|
||||
* @param remoteViews the remote views
|
||||
* @param labelId the label id
|
||||
* @param valueId the value id
|
||||
* @param unitId the unit id
|
||||
* @param ids the item's ids
|
||||
* @param tripStatistics the trip statistics
|
||||
* @param metricUnits true to use metric units
|
||||
* @param reportSpeed true to report speed
|
||||
*/
|
||||
private static void updateAverageSpeed(Context context, RemoteViews remoteViews, int labelId,
|
||||
int valueId, int unitId, TripStatistics tripStatistics, boolean metricUnits,
|
||||
boolean reportSpeed) {
|
||||
private static void updateAverageSpeed(Context context, RemoteViews remoteViews, int[] ids,
|
||||
TripStatistics tripStatistics, boolean metricUnits, boolean reportSpeed) {
|
||||
String averageSpeedLabel = context.getString(
|
||||
reportSpeed ? R.string.stats_average_speed : R.string.stats_average_pace);
|
||||
remoteViews.setTextViewText(labelId, averageSpeedLabel);
|
||||
remoteViews.setTextViewText(ids[0], averageSpeedLabel);
|
||||
|
||||
Double speed = tripStatistics == null ? Double.NaN : tripStatistics.getAverageSpeed();
|
||||
String[] speedParts = StringUtils.getSpeedParts(context, speed, metricUnits, reportSpeed);
|
||||
remoteViews.setTextViewText(valueId, speedParts[0]);
|
||||
remoteViews.setTextViewText(unitId, speedParts[1]);
|
||||
remoteViews.setTextViewText(ids[1], speedParts[0]);
|
||||
remoteViews.setTextViewText(ids[2], speedParts[1]);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -321,18 +345,16 @@ public class TrackWidgetProvider extends AppWidgetProvider {
|
||||
*
|
||||
* @param context the context
|
||||
* @param remoteViews the remote views
|
||||
* @param labelId the label id
|
||||
* @param valueId the value id
|
||||
* @param unitId the unit id
|
||||
* @param ids the item's ids
|
||||
* @param tripStatistics the trip statistics
|
||||
*/
|
||||
private static void updateMovingTime(Context context, RemoteViews remoteViews, int labelId,
|
||||
int valueId, int unitId, TripStatistics tripStatistics) {
|
||||
private static void updateMovingTime(
|
||||
Context context, RemoteViews remoteViews, int[] ids, TripStatistics tripStatistics) {
|
||||
String movingTime = tripStatistics == null ? context.getString(R.string.value_unknown)
|
||||
: StringUtils.formatElapsedTime(tripStatistics.getMovingTime());
|
||||
remoteViews.setTextViewText(labelId, context.getString(R.string.stats_moving_time));
|
||||
remoteViews.setTextViewText(valueId, movingTime);
|
||||
remoteViews.setViewVisibility(unitId, View.GONE);
|
||||
remoteViews.setTextViewText(ids[0], context.getString(R.string.stats_moving_time));
|
||||
remoteViews.setTextViewText(ids[1], movingTime);
|
||||
remoteViews.setViewVisibility(ids[2], View.GONE);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -340,24 +362,21 @@ public class TrackWidgetProvider extends AppWidgetProvider {
|
||||
*
|
||||
* @param context the context
|
||||
* @param remoteViews the remote views
|
||||
* @param labelId the label id
|
||||
* @param valueId the value id
|
||||
* @param unitId the unit id
|
||||
* @param ids the item's ids
|
||||
* @param tripStatistics the trip statistics
|
||||
* @param metricUnits true to use metric units
|
||||
* @param reportSpeed true to report speed
|
||||
*/
|
||||
private static void updateAverageMovingSpeed(Context context, RemoteViews remoteViews,
|
||||
int labelId, int valueId, int unitId, TripStatistics tripStatistics, boolean metricUnits,
|
||||
boolean reportSpeed) {
|
||||
private static void updateAverageMovingSpeed(Context context, RemoteViews remoteViews, int[] ids,
|
||||
TripStatistics tripStatistics, boolean metricUnits, boolean reportSpeed) {
|
||||
String averageMovingSpeedLabel = context.getString(
|
||||
reportSpeed ? R.string.stats_average_moving_speed : R.string.stats_average_moving_pace);
|
||||
remoteViews.setTextViewText(labelId, averageMovingSpeedLabel);
|
||||
remoteViews.setTextViewText(ids[0], averageMovingSpeedLabel);
|
||||
|
||||
Double speed = tripStatistics == null ? Double.NaN : tripStatistics.getAverageMovingSpeed();
|
||||
String[] speedParts = StringUtils.getSpeedParts(context, speed, metricUnits, reportSpeed);
|
||||
remoteViews.setTextViewText(valueId, speedParts[0]);
|
||||
remoteViews.setTextViewText(unitId, speedParts[1]);
|
||||
remoteViews.setTextViewText(ids[1], speedParts[0]);
|
||||
remoteViews.setTextViewText(ids[2], speedParts[1]);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user