Account Options

  1. Sign in
The old Google Groups will be going away soon, but your browser is incompatible with the new version.
Google Groups Home
« Groups Home
5 new revisions pushed by jshih@google.com on 2012-10-09 16:54 GMT
There are currently too many topics in this group that display first. To make this topic appear first, remove this option from another topic.
There was an error processing your request. Please try again.
flag
  1 message - Collapse all  -  Translate all to Translated (View all originals)
The group you are posting to is a Usenet group. Messages posted to this group will make your email address visible to anyone on the Internet.
Your reply message has not been sent.
Your post was successful
 
From:
To:
Cc:
Followup To:
Add Cc | Add Followup-to | Edit Subject
Subject:
Validation:
For verification purposes please type the characters you see in the picture below or the numbers you hear by clicking the accessibility icon. Listen and type the numbers you hear
 
mytra...@googlecode.com  
View profile  
 More options Oct 9 2012, 12:54 pm
From: mytra...@googlecode.com
Date: Tue, 09 Oct 2012 16:54:47 +0000
Local: Tues, Oct 9 2012 12:54 pm
Subject: [mytracks] 5 new revisions pushed by jshih@google.com on 2012-10-09 16:54 GMT
5 new revisions:

Revision: 87fb159a1680
Branch:   default
Author:   Jimmy Shih <js...@google.com>
Date:     Fri Oct  5 11:26:57 2012
Log:      Add a widget configuration screen
http://code.google.com/p/mytracks/source/detail?r=87fb159a1680

Revision: 970475bced2c
Branch:   default
Author:   Jimmy Shih <js...@google.com>
Date:     Mon Oct  8 13:05:15 2012
Log:      add 4 layout sizes for the app widget
http://code.google.com/p/mytracks/source/detail?r=970475bced2c

Revision: ad1cde9dc398
Branch:   default
Author:   Jimmy Shih <js...@google.com>
Date:     Mon Oct  8 15:22:39 2012
Log:      update app widget style
http://code.google.com/p/mytracks/source/detail?r=ad1cde9dc398

Revision: 481b7b2ee0b0
Branch:   default
Author:   Jimmy Shih <js...@google.com>
Date:     Mon Oct  8 17:25:27 2012
Log:      add chronometer to each app widget item
http://code.google.com/p/mytracks/source/detail?r=481b7b2ee0b0

Revision: a2a777b9be31
Branch:   default
Author:   Jimmy Shih <js...@google.com>
Date:     Mon Oct  8 18:36:28 2012
Log:      fix layout issue in track widget config activity
http://code.google.com/p/mytracks/source/detail?r=a2a777b9be31

=========================================================================== ===
Revision: 87fb159a1680
Branch:   default
Author:   Jimmy Shih <js...@google.com>
Date:     Fri Oct  5 11:26:57 2012
Log:      Add a widget configuration screen
http://code.google.com/p/mytracks/source/detail?r=87fb159a1680

Added:
  /MyTracks/res/layout-v14/bottom_buttons.xml
  /MyTracks/res/layout/bottom_buttons.xml
  /MyTracks/res/layout/track_widget_config.xml

/MyTracks/src/com/google/android/apps/mytracks/widgets/TrackWidgetConfigAct ivity.java
Modified:
  /MyTracks/AndroidManifest.xml
  /MyTracks/res/layout/track_controller.xml
  /MyTracks/res/layout/track_widget_large.xml
  /MyTracks/res/layout/track_widget_small.xml
  /MyTracks/res/values/keys.xml
  /MyTracks/res/values/strings.xml
  /MyTracks/res/values/styles.xml
  /MyTracks/res/xml/track_widget_info.xml
  /MyTracks/src/com/google/android/apps/mytracks/util/PreferencesUtils.java

/MyTracks/src/com/google/android/apps/mytracks/widgets/TrackWidgetProvider. java

=======================================
--- /dev/null
+++ /MyTracks/res/layout-v14/bottom_buttons.xml Fri Oct  5 11:26:57 2012
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+Copyright 2012 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.
+-->
+<merge xmlns:android="http://schemas.android.com/apk/res/android" >
+  <Button
+    android:id="@+id/bottom_buttons_cancel"
+    android:layout_gravity="left"
+    android:text="@string/generic_cancel"
+    style="@style/BottomButton" />
+  <Button
+    android:id="@+id/bottom_buttons_add"
+    android:layout_gravity="right"
+    android:text="@string/generic_add"
+    style="@style/BottomButton" />
+</merge>
=======================================
--- /dev/null
+++ /MyTracks/res/layout/bottom_buttons.xml     Fri Oct  5 11:26:57 2012
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+Copyright 2012 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.
+-->
+<merge xmlns:android="http://schemas.android.com/apk/res/android" >
+  <Button
+    android:id="@+id/bottom_buttons_add"
+    android:layout_gravity="left"
+    android:text="@string/generic_add"
+    style="@style/BottomButton" />
+  <Button
+    android:id="@+id/bottom_buttons_cancel"
+    android:layout_gravity="right"
+    android:text="@string/generic_cancel"
+    style="@style/BottomButton" />
+</merge>
=======================================
--- /dev/null
+++ /MyTracks/res/layout/track_widget_config.xml        Fri Oct  5 11:26:57 2012
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+Copyright 2012 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.
+-->
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+  android:layout_height="fill_parent"
+  android:layout_width="fill_parent"
+  android:orientation="vertical" >
+  <ScrollView style="@style/ScrollView.WithBottomButtons" >
+    <TableLayout
+      android:layout_height="wrap_content"
+      android:layout_width="fill_parent"
+      android:padding="8dp" >
+      <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" />
+        <Spinner
+          android:id="@+id/track_widget_config_item4"
+          style="@style/TrackWidgetConfigSpinner" />
+      </TableRow>
+    </TableLayout>
+  </ScrollView>
+  <LinearLayout style="@style/BottomButtonBar" >
+    <include layout="@layout/bottom_buttons" />
+  </LinearLayout>
+</LinearLayout>
=======================================
--- /dev/null
+++  
/MyTracks/src/com/google/android/apps/mytracks/widgets/TrackWidgetConfigAct ivity.java  
Fri Oct  5 11:26:57 2012
@@ -0,0 +1,137 @@
+/*
+ * Copyright 2012 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.widgets;
+
+import com.google.android.apps.mytracks.util.PreferencesUtils;
+import com.google.android.maps.mytracks.R;
+
+import android.app.Activity;
+import android.appwidget.AppWidgetManager;
+import android.content.Intent;
+import android.os.Bundle;
+import android.view.View;
+import android.widget.ArrayAdapter;
+import android.widget.Spinner;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Activity to configure the track widget.
+ *
+ * @author Jimmy Shih
+ */
+public class TrackWidgetConfigActivity extends Activity {
+
+  private int appWidgetId;
+  private Spinner item1;
+  private Spinner item2;
+  private Spinner item3;
+  private Spinner item4;
+
+  @Override
+  protected void onCreate(Bundle savedInstanceState) {
+    super.onCreate(savedInstanceState);
+
+    /*
+     * Set the result to CANCELED. This will cause the widget host to  
cancel out
+     * of the widget placement if they press the back button.
+     */
+    setResult(RESULT_CANCELED);
+
+    setContentView(R.layout.track_widget_config);
+    item1 = (Spinner) findViewById(R.id.track_widget_config_item1);
+    item2 = (Spinner) findViewById(R.id.track_widget_config_item2);
+    item3 = (Spinner) findViewById(R.id.track_widget_config_item3);
+    item4 = (Spinner) findViewById(R.id.track_widget_config_item4);
+
+    boolean reportSpeed = PreferencesUtils.getBoolean(
+        this, R.string.report_speed_key,  
PreferencesUtils.REPORT_SPEED_DEFAULT);
+
+    List<CharSequence> list = new ArrayList<CharSequence>();
+    addItem(list, R.string.stats_total_distance);
+    addItem(list, R.string.stats_total_time);
+    addItem(list, reportSpeed ? R.string.stats_average_speed :  
R.string.stats_average_pace);
+    addItem(list, R.string.stats_moving_time);
+    addItem(list,
+        reportSpeed ? R.string.stats_average_moving_speed :  
R.string.stats_average_moving_pace);
+
+    configSpinner(item1, list, PreferencesUtils.getInt(
+        this, R.string.track_widget_item1,  
PreferencesUtils.TRACK_WIDGET_ITEM1_DEFAULT));
+    configSpinner(item2, list, PreferencesUtils.getInt(
+        this, R.string.track_widget_item2,  
PreferencesUtils.TRACK_WIDGET_ITEM2_DEFAULT));
+    configSpinner(item3, list, PreferencesUtils.getInt(
+        this, R.string.track_widget_item3,  
PreferencesUtils.TRACK_WIDGET_ITEM3_DEFAULT));
+    configSpinner(item4, list, PreferencesUtils.getInt(
+        this, R.string.track_widget_item4,  
PreferencesUtils.TRACK_WIDGET_ITEM4_DEFAULT));
+
+    findViewById(R.id.bottom_buttons_add).setOnClickListener(new  
View.OnClickListener() {
+      public void onClick(View v) {
+
+        // Push widget update to surface with newly set prefix
+        AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(
+            TrackWidgetConfigActivity.this);
+        TrackWidgetProvider.updateAppWidget(
+            TrackWidgetConfigActivity.this, appWidgetManager, appWidgetId);
+        PreferencesUtils.setInt(TrackWidgetConfigActivity.this,  
R.string.track_widget_item1,
+            item1.getSelectedItemPosition());
+        PreferencesUtils.setInt(TrackWidgetConfigActivity.this,  
R.string.track_widget_item2,
+            item2.getSelectedItemPosition());
+        PreferencesUtils.setInt(TrackWidgetConfigActivity.this,  
R.string.track_widget_item3,
+            item3.getSelectedItemPosition());
+        PreferencesUtils.setInt(TrackWidgetConfigActivity.this,  
R.string.track_widget_item4,
+            item4.getSelectedItemPosition());
+
+        // Make sure we pass back the original appWidgetId
+        Intent resultValue = new Intent();
+        resultValue.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID,  
appWidgetId);
+        setResult(RESULT_OK, resultValue);
+        finish();
+      }
+    });
+    findViewById(R.id.bottom_buttons_cancel).setOnClickListener(new  
View.OnClickListener() {
+        @Override
+      public void onClick(View v) {
+        finish();
+      }
+    });
+
+    // Find the app widget id from the intent.
+    Intent intent = getIntent();
+    Bundle extras = intent.getExtras();
+    appWidgetId = extras != null ? extras.getInt(
+        AppWidgetManager.EXTRA_APPWIDGET_ID,  
AppWidgetManager.INVALID_APPWIDGET_ID)
+        : AppWidgetManager.INVALID_APPWIDGET_ID;
+
+    // If they gave us an intent without the widget id, just bail.
+    if (appWidgetId == AppWidgetManager.INVALID_APPWIDGET_ID) {
+      finish();
+    }
+  }
+
+  private void addItem(List<CharSequence> list, int id) {
+    list.add(getString(id).toUpperCase());
+  }
+
+  private void configSpinner(Spinner spinner, List<CharSequence> list, int  
position) {
+    ArrayAdapter<CharSequence> adapter = new ArrayAdapter<CharSequence>(
+        this, android.R.layout.simple_spinner_item, list);
+    
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_it em);
+    spinner.setAdapter(adapter);
+    spinner.setSelection(position);
+  }
+}
=======================================
--- /MyTracks/AndroidManifest.xml       Thu Sep 20 17:27:10 2012
+++ /MyTracks/AndroidManifest.xml       Fri Oct  5 11:26:57 2012
@@ -19,7 +19,6 @@
    android:versionCode="56"
    android:versionName="2.0.2"
    package="com.google.android.maps.mytracks" >
-
    <!-- Permission to initialize services -->
    <uses-permission  
android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
    <!-- Permissions to record locations -->
@@ -79,7 +78,6 @@
      android:name="com.google.android.apps.mytracks.WRITE_TRACK_DATA"
      android:permissionGroup="android.permission-group.LOCATION"
      android:protectionLevel="dangerous" />
-
    <uses-sdk
      android:minSdkVersion="7"
      android:targetSdkVersion="16" />
@@ -115,22 +113,19 @@
    <uses-feature
      android:name="android.hardware.touchscreen.multitouch"
      android:required="false" />
-
    <supports-screens
      android:anyDensity="true"
      android:largeScreens="true"
      android:normalScreens="true"
      android:smallScreens="true"
      android:xlargeScreens="true" />
-
    <application

android:backupAgent="com.google.android.apps.mytracks.io.backup.MyTracksBac kupAgent"
-    android:icon="@drawable/my_tracks_icon"
      android:hardwareAccelerated="true"
+    android:icon="@drawable/my_tracks_icon"
      android:label="@string/my_tracks_app_name"
      android:name="com.google.android.apps.mytracks.MyTracksApplication"
      android:theme="@style/ThemeSelector" >
-
      <!-- For data backup -->
      <meta-data
        android:name="com.google.android.backup.api_key"
@@ -142,15 +137,12 @@
      <activity
        android:label="@string/menu_help"
        android:name="com.google.android.apps.mytracks.HelpActivity" />
-    <activity
-      android:name="com.google.android.apps.mytracks.ImportActivity" >
+    <activity  
android:name="com.google.android.apps.mytracks.ImportActivity" >
        <intent-filter>
          <action android:name="android.intent.action.ATTACH_DATA" />
          <action android:name="android.intent.action.VIEW" />
-
          <category android:name="android.intent.category.BROWSABLE" />
          <category android:name="android.intent.category.DEFAULT" />
-
          <data android:mimeType="application/gpx" />
          <data android:mimeType="application/gpx+xml" />
          <data android:mimeType="application/vnd.google-earth.gpx" />
@@ -158,8 +150,7 @@
          <data android:scheme="file" />
        </intent-filter>
      </activity>
-    <activity
-      android:name="com.google.android.apps.mytracks.MarkerEditActivity" />
+    <activity  
android:name="com.google.android.apps.mytracks.MarkerEditActivity" />
      <activity  
android:name="com.google.android.apps.mytracks.MarkerDetailActivity" />
      <activity  
android:name="com.google.android.apps.mytracks.MarkerListActivity" >
        <meta-data
@@ -172,7 +163,6 @@
        <intent-filter>
          <action android:name="android.intent.action.SEARCH" />
        </intent-filter>
-
        <meta-data
          android:name="android.app.searchable"
          android:resource="@xml/search" />
@@ -181,15 +171,12 @@
        android:label="@string/menu_sensor_state"
        android:name="com.google.android.apps.mytracks.SensorStateActivity"  
/>
      <activity  
android:name="com.google.android.apps.mytracks.TrackDetailActivity" />
-    <activity
-      android:name="com.google.android.apps.mytracks.TrackEditActivity" />
+    <activity  
android:name="com.google.android.apps.mytracks.TrackEditActivity" />
      <activity  
android:name="com.google.android.apps.mytracks.TrackListActivity" >
        <intent-filter>
          <action android:name="android.intent.action.MAIN" />
-
          <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
-
        <meta-data
          android:name="android.app.default_searchable"

android:value="com.google.android.apps.mytracks.SearchListActivity" />
@@ -215,6 +202,13 @@
      <activity  
android:name="com.google.android.apps.mytracks.settings.SettingsActivity" />
      <activity  
android:name="com.google.android.apps.mytracks.settings.SharingSettingsActi vity"  
/>
      <activity  
android:name="com.google.android.apps.mytracks.settings.StatsSettingsActivi ty"  
/>
+    <activity
+      android:label="@string/track_widget_config_title"
+      
android:name="com.google.android.apps.mytracks.widgets.TrackWidgetConfigAct ivity"  


+      <intent-filter>
+        <action  
android:name="android.appwidget.action.APPWIDGET_CONFIGURE" />
+      </intent-filter>
+    </activity>
      <!-- Services -->
      <service
        android:exported="false"
@@ -259,8 +253,6 @@
        android:authorities="com.google.android.maps.mytracks.search"
        android:exported="false"

android:name="com.google.android.apps.mytracks.content.SearchEngineProvider "  
/>
-
      <uses-library android:name="com.google.android.maps" />
    </application>
-
  </manifest>
=======================================
--- /MyTracks/res/layout/track_controller.xml   Wed Sep  5 13:05:12 2012
+++ /MyTracks/res/layout/track_controller.xml   Fri Oct  5 11:26:57 2012
@@ -52,7 +52,7 @@
          android:layout_height="wrap_content"
          android:layout_width="wrap_content"
          android:singleLine="true"
-        style="@style/TextTiny" />
+        style="@style/TextMicro" />
      </RelativeLayout>
      <ImageButton
        android:background="@android:color/transparent"
=======================================
--- /MyTracks/res/layout/track_widget_large.xml Tue Oct  2 14:30:53 2012
+++ /MyTracks/res/layout/track_widget_large.xml Fri Oct  5 11:26:57 2012
@@ -20,106 +20,117 @@
    android:layout_width="fill_parent"
    android:padding="@dimen/widget_margin" >
    <LinearLayout
-    android:clickable="true"
-    android:id="@+id/track_widget_statistics"
      android:layout_alignParentTop="true"
-    android:layout_height="wrap_content"
+    android:layout_height="fill_parent"
      android:layout_width="fill_parent"
-    android:orientation="vertical"
-    android:padding="4dp" >
-    <LinearLayout style="@style/LinearLayoutHorizontal" >
-      <!-- average moving speed -->
-      <LinearLayout style="@style/TrackWidgetItemContainer" >
-        <TextView
-          android:id="@+id/track_widget_average_moving_speed_label"
-          style="@style/TrackWidgetLabel" />
-        <LinearLayout style="@style/TrackWidgetValueContainer" >
+    android:orientation="vertical" >
+    <LinearLayout
+      android:clickable="true"
+      android:gravity="center_vertical"
+      android:id="@+id/track_widget_statistics"
+      android:layout_height="0dp"
+      android:layout_weight="1"
+      android:layout_width="fill_parent"
+      android:orientation="vertical"
+      android:padding="4dp" >
+      <LinearLayout style="@style/LinearLayoutHorizontal" >
+        <!-- item1 -->
+        <LinearLayout style="@style/TrackWidgetItemContainer" >
            <TextView
-            android:id="@+id/track_widget_average_moving_speed_value"
-            style="@style/TrackWidgetValue" />
+            android:id="@+id/track_widget_item1_label"
+            style="@style/TrackWidgetLabel" />
+          <LinearLayout style="@style/TrackWidgetValueContainer" >
+            <TextView
+              android:id="@+id/track_widget_item1_value"
+              style="@style/TrackWidgetValue" />
+            <TextView
+              android:id="@+id/track_widget_item1_unit"
+              style="@style/TrackWidgetUnit" />
+          </LinearLayout>
+        </LinearLayout>
+        <!-- vertical separator -->
+        <LinearLayout style="@style/LinearLayoutVertifcal" >
+          <LinearLayout style="@style/TrackWidgetVerticalSpacer" />
+          <LinearLayout style="@style/TrackWidgetVerticalSeparator" />
+        </LinearLayout>
+        <!-- item3 -->
+        <LinearLayout style="@style/TrackWidgetItemContainer" >
            <TextView
-            android:id="@+id/track_widget_average_moving_speed_unit"
-            style="@style/TrackWidgetUnit" />
+            android:id="@+id/track_widget_item3_label"
+            style="@style/TrackWidgetLabel" />
+          <LinearLayout style="@style/TrackWidgetValueContainer" >
+            <TextView
+              android:id="@+id/track_widget_item3_value"
+              style="@style/TrackWidgetValue" />
+            <TextView
+              android:id="@+id/track_widget_item3_unit"
+              style="@style/TrackWidgetUnit" />
+          </LinearLayout>
          </LinearLayout>
        </LinearLayout>
-      <!-- vertical separator -->
-      <LinearLayout style="@style/LinearLayoutVertifcal" >
-        <LinearLayout style="@style/TrackWidgetVerticalSpacer" />
-        <LinearLayout style="@style/TrackWidgetVerticalSeparator" />
-      </LinearLayout>
-      <!-- moving time -->
-      <LinearLayout style="@style/TrackWidgetItemContainer" >
-        <TextView
-          android:text="@string/stats_moving_time"
-          style="@style/TrackWidgetLabel" />
-        <LinearLayout style="@style/TrackWidgetValueContainer" >
+      <!-- horizontal separator -->
+      <LinearLayout style="@style/TrackWidgetHorizontalSeparator" />
+      <LinearLayout style="@style/LinearLayoutHorizontal" >
+        <!-- item2 -->
+        <LinearLayout style="@style/TrackWidgetItemContainer" >
            <TextView
-            android:id="@+id/track_widget_moving_time_value"
-            style="@style/TrackWidgetValue" />
+            android:id="@+id/track_widget_item2_label"
+            style="@style/TrackWidgetLabel" />
+          <LinearLayout style="@style/TrackWidgetValueContainer" >
+            <TextView
+              android:id="@+id/track_widget_item2_value"
+              style="@style/TrackWidgetValue" />
+            <TextView
+              android:id="@+id/track_widget_item2_unit"
+              style="@style/TrackWidgetUnit" />
+          </LinearLayout>
          </LinearLayout>
-      </LinearLayout>
-    </LinearLayout>
-    <!-- horizontal separator -->
-    <LinearLayout style="@style/TrackWidgetHorizontalSeparator" />
-    <LinearLayout style="@style/LinearLayoutHorizontal" >
-      <!-- average speed -->
-      <LinearLayout style="@style/TrackWidgetItemContainer" >
-        <TextView
-          android:id="@+id/track_widget_average_speed_label"
-          style="@style/TrackWidgetLabel" />
-        <LinearLayout style="@style/TrackWidgetValueContainer" >
-          <TextView
-            android:id="@+id/track_widget_average_speed_value"
-            style="@style/TrackWidgetValue" />
-          <TextView
-            android:id="@+id/track_widget_average_speed_unit"
-            style="@style/TrackWidgetUnit" />
+        <!-- vertical separator -->
+        <LinearLayout style="@style/LinearLayoutVertifcal" >
+          <LinearLayout style="@style/TrackWidgetVerticalSeparator" />
+          <LinearLayout style="@style/TrackWidgetVerticalSpacer" />
          </LinearLayout>
-      </LinearLayout>
-      <!-- vertical separator -->
-      <LinearLayout style="@style/LinearLayoutVertifcal" >
-        <LinearLayout style="@style/TrackWidgetVerticalSeparator" />
-        <LinearLayout style="@style/TrackWidgetVerticalSpacer" />
-      </LinearLayout>
-      <!-- total distance -->
-      <LinearLayout style="@style/TrackWidgetItemContainer" >
-        <TextView
-          android:text="@string/stats_total_distance"
-          style="@style/TrackWidgetLabel" />
-        <LinearLayout style="@style/TrackWidgetValueContainer" >
-          <TextView
-            android:id="@+id/track_widget_total_distance_value"
-            style="@style/TrackWidgetValue" />
+        <!-- item4 -->
+        <LinearLayout style="@style/TrackWidgetItemContainer" >
            <TextView
-            android:id="@+id/track_widget_total_distance_unit"
-            style="@style/TrackWidgetUnit" />
+            android:id="@+id/track_widget_item4_label"
+            style="@style/TrackWidgetLabel" />
+          <LinearLayout style="@style/TrackWidgetValueContainer" >
+            <TextView
+              android:id="@+id/track_widget_item4_value"
+              style="@style/TrackWidgetValue" />
+            <TextView
+              android:id="@+id/track_widget_item4_unit"
+              style="@style/TrackWidgetUnit" />
+          </LinearLayout>
          </LinearLayout>
        </LinearLayout>
      </LinearLayout>
-  </LinearLayout>
-  <LinearLayout
-    android:layout_below="@id/track_widget_statistics"
-    android:layout_height="wrap_content"
-    android:layout_width="fill_parent"
-    android:orientation="horizontal"
-    android:paddingBottom="4dp"
-    android:paddingTop="4dp" >
-    <LinearLayout style="@style/TrackWidgetVerticalSpacer" />
-    <ImageButton
-      android:id="@+id/track_widget_record_button"
-      style="@style/TrackWidgetRecordButton" />
-    <TextView
-      android:id="@+id/track_widget_record_status"
-      android:layout_gravity="center_vertical"
-      android:layout_height="wrap_content"
-      android:layout_weight="4"
-      android:layout_width="0dp"
-      android:singleLine="true"
-      style="@style/TextSmall" />
-    <ImageButton
-      android:id="@+id/track_widget_stop_button"
-      style="@style/TrackWidgetStopButton" />
-    <LinearLayout style="@style/TrackWidgetVerticalSpacer" />
+    <LinearLayout
+      android:gravity="center_vertical"
+      android:layout_height="0dp"
+      android:layout_weight="1"
+      android:layout_width="fill_parent"
+      android:orientation="horizontal"
+      android:paddingBottom="4dp"
+      android:paddingTop="4dp" >
+      <LinearLayout style="@style/TrackWidgetVerticalSpacer" />
+      <ImageButton
+        android:id="@+id/track_widget_record_button"
+        style="@style/TrackWidgetRecordButton" />
+      <TextView
+        android:id="@+id/track_widget_record_status"
+        android:layout_gravity="center_vertical"
+        android:layout_height="wrap_content"
+        android:layout_weight="4"
+        android:layout_width="0dp"
+        android:singleLine="true"
+        style="@style/TextSmall" />
+      <ImageButton
+        android:id="@+id/track_widget_stop_button"
+        style="@style/TrackWidgetStopButton" />
+      <LinearLayout style="@style/TrackWidgetVerticalSpacer" />
+    </LinearLayout>
    </LinearLayout>
    <ImageView style="@style/TrackWidgetLogo" />
  </RelativeLayout>
=======================================
--- /MyTracks/res/layout/track_widget_small.xml Tue Oct  2 14:30:53 2012
+++ /MyTracks/res/layout/track_widget_small.xml Fri Oct  5 11:26:57 2012
@@ -45,13 +45,17 @@
          android:layout_weight="1"
          android:layout_width="fill_parent"
          android:orientation="vertical" >
+        <!-- item1 -->
          <TextView
-          android:text="@string/stats_moving_time"
+          android:id="@+id/track_widget_item1_label"
            style="@style/TrackWidgetLabel" />
          <LinearLayout style="@style/TrackWidgetValueContainer" >
            <TextView
-            android:id="@+id/track_widget_moving_time_value"
+            android:id="@+id/track_widget_item1_value"
              style="@style/TrackWidgetValue" />
+          <TextView
+            android:id="@+id/track_widget_item1_unit"
+            style="@style/TrackWidgetUnit" />
          </LinearLayout>
        </LinearLayout>
        <LinearLayout style="@style/TrackWidgetHorizontalSeparator" />
@@ -60,15 +64,16 @@
          android:layout_weight="1"
          android:layout_width="fill_parent"
          android:orientation="vertical" >
+        <!-- item2 -->
          <TextView
-          android:text="@string/stats_total_distance"
+          android:id="@+id/track_widget_item2_label"
            style="@style/TrackWidgetLabel" />
          <LinearLayout style="@style/TrackWidgetValueContainer" >
            <TextView
-            android:id="@+id/track_widget_total_distance_value"
+            android:id="@+id/track_widget_item2_value"
              style="@style/TrackWidgetValue" />
            <TextView
-            android:id="@+id/track_widget_total_distance_unit"
+            android:id="@+id/track_widget_item2_unit"
              style="@style/TrackWidgetUnit" />
          </LinearLayout>
        </LinearLayout>
=======================================
--- /MyTracks/res/values/keys.xml       Mon Sep 17 15:00:14 2012
+++ /MyTracks/res/values/keys.xml       Fri Oct  5 11:26:57 2012
@@ -54,8 +54,12 @@
    <string name="track_color_mode_slow_key">trackColorModeSlow</string>
    <string name="track_color_mode_key">trackColorMode</string>
    <string name="track_name_key">trackName</string>
+  <string name="track_widget_item1">trackWidgetItem1</string>
+  <string name="track_widget_item2">trackWidgetItem2</string>
+  <string name="track_widget_item3">trackWidgetItem3</string>
+  <string name="track_widget_item4">trackWidgetItem4</string>
    <string name="voice_frequency_key">voiceFrequency</string>
-
+
    <!-- Keys for persistend preferences. But they should not get backed up  
or restored. -->
    <string  
name="auto_resume_track_current_retry_key">autoResumeTrackCurrentRetry</str ing>
    <string name="recording_track_id_key">recordingTrackId</string>
=======================================
--- /MyTracks/res/values/strings.xml    Tue Oct  2 14:30:53 2012
+++ /MyTracks/res/values/strings.xml    Fri Oct  5 11:26:57 2012
@@ -2293,6 +2293,12 @@
      Recording your track&#8230;
    </string>

+  <!-- Track Widget -->
+  <string name="track_widget_config_title"
+    translation_description="Title of the page to configure the My Tracks  
widget items.">
+    Configure Widget Items
+  </string>
+
    <!-- Unit -->
    <string name="unit_feet"
      translation_description="Abbreviation for feet. E.g., '2 ft'.">
=======================================
--- /MyTracks/res/values/styles.xml     Tue Oct  2 14:30:53 2012
+++ /MyTracks/res/values/styles.xml     Fri Oct  5 11:26:57 2012
@@ -192,11 +192,11 @@
      <item name="android:layout_width">wrap_content</item>
      <item name="android:textSize">14sp</item>
    </style>
-  <!-- The style for tiny size text -->
-  <style name="TextTiny">
+  <!-- The style for micro size text -->
+  <style name="TextMicro">
      <item name="android:layout_height">wrap_content</item>
      <item name="android:layout_width">wrap_content</item>
-    <item name="android:textSize">10sp</item>
+    <item name="android:textSize">12sp</item>
    </style>
    <!-- Theme selector -->
    <style name="ThemeSelector" parent="android:Theme" />
@@ -212,6 +212,26 @@
      <item name="android:layout_gravity">center_vertical</item>
      <item name="android:scaleType">fitXY</item>
    </style>
+  <!-- The style for the 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:paddingTop">16dp</item>
+    <item name="android:paddingBottom">16dp</item>
+  </style>
+  <!-- The style for the 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>
+  </style>
+  <!-- The style for the track widget config spiner -->
+  <style name="TrackWidgetConfigSpinner">
+    <item name="android:gravity">left</item>
+    <item name="android:layout_height">wrap_content</item>
+    <item name="android:layout_weight">9</item>
+    <item name="android:layout_width">0dp</item>
+  </style>
    <!-- The style for the track widget horizontal separator -->
    <style name="TrackWidgetHorizontalSeparator">
      <item name="android:background">@color/track_widget_line</item>
@@ -229,20 +249,22 @@
      <item name="android:paddingTop">2dp</item>
    </style>
    <!-- The style for the track widget label -->
-  <style name="TrackWidgetLabel" parent="@style/TextSmall">
+  <style name="TrackWidgetLabel">
      <item name="android:layout_gravity">center_horizontal</item>
      <item name="android:layout_height">wrap_content</item>
      <item name="android:layout_width">wrap_content</item>
      <item name="android:singleLine">true</item>
      <item name="android:textAllCaps">true</item>
      <item name="android:textColor">@color/orange</item>
+    <item name="android:textSize">10dp</item>
+    <item name="android:textStyle">bold</item>
    </style>
    <style name="TrackWidgetLogo">
      <item  
name="android:contentDescription">@string/my_tracks_app_name</item>
      <item name="android:layout_alignParentRight">true</item>
      <item name="android:layout_alignParentTop">true</item>
      <item name="android:layout_height">24dp</item>
-    <item name="android:layout_width">20dp</item>
+    <item name="android:layout_width">24dp</item>
      <item name="android:padding">4dp</item>
      <item name="android:scaleType">fitXY</item>
      <item name="android:src">@drawable/my_tracks_icon</item>
@@ -262,15 +284,16 @@
      <item name="android:src">@drawable/btn_stop_0</item>
    </style>
    <!-- The style for the track widget unit -->
-  <style name="TrackWidgetUnit" parent="@style/TextSmall">
+  <style name="TrackWidgetUnit">
      <item name="android:layout_height">wrap_content</item>
      <item name="android:layout_weight">1</item>
      <item name="android:layout_width">0dp</item>
      <item name="android:paddingLeft">4dp</item>
      <item name="android:singleLine">true</item>
+    <item name="android:textSize">10dp</item>
    </style>
    <!-- The style for the track widget value -->
-  <style name="TrackWidgetValue" parent="@style/TextSmall">
+  <style name="TrackWidgetValue" parent="@style/TextMedium">
      <item name="android:layout_height">wrap_content</item>
      <item name="android:layout_weight">2</item>
      <item name="android:layout_width">0dp</item>
@@ -282,6 +305,7 @@
    <style name="TrackWidgetValueContainer">
      <item name="android:layout_gravity">center_horizontal</item>
      <item name="android:layout_height">wrap_content</item>
+    <item name="android:layout_marginTop">-4dp</item>
      <item name="android:layout_width">wrap_content</item>
      <item name="android:orientation">horizontal</item>
    </style>
=======================================
--- /MyTracks/res/xml/track_widget_info.xml     Tue Oct  2 14:30:53 2012
+++ /MyTracks/res/xml/track_widget_info.xml     Fri Oct  5 11:26:57 2012
@@ -15,6 +15,7 @@
  limitations under the License.
  -->
  <appwidget-provider  
xmlns:android="http://schemas.android.com/apk/res/android"
+  
android:configure="com.google.android.apps.mytracks.widgets.TrackWidgetConf igActivity"
    android:initialLayout="@layout/track_widget_large"
    android:minHeight="110dp"
    android:minResizeHeight="40dp"
=======================================
---  
/MyTracks/src/com/google/android/apps/mytracks/util/PreferencesUtils.java        
Tue Sep 25 13:06:40 2012
+++  
/MyTracks/src/com/google/android/apps/mytracks/util/PreferencesUtils.java        
Fri Oct  5 11:26:57 2012
@@ -91,6 +91,11 @@

    public static final String TRACK_NAME_DEFAULT = "LOCATION";

+  public static final int TRACK_WIDGET_ITEM1_DEFAULT = 3; // moving time
+  public static final int TRACK_WIDGET_ITEM2_DEFAULT = 0; // distance
+  public static final int TRACK_WIDGET_ITEM3_DEFAULT = 1; // total time
+  public static final int TRACK_WIDGET_ITEM4_DEFAULT = 2; // average speed
+
    public static final int VOICE_FREQUENCY_DEFAULT = 0;

    private PreferencesUtils() {}
=======================================
---  
/MyTracks/src/com/google/android/apps/mytracks/widgets/TrackWidgetProvider. java        
Tue Oct  2 14:30:53 2012
+++  
/MyTracks/src/com/google/android/apps/mytracks/widgets/TrackWidgetProvider. java        
Fri Oct  5 11:26:57 2012
@@ -37,6 +37,7 @@
  import android.os.Bundle;
  import android.support.v4.app.TaskStackBuilder;
  import android.util.SparseBooleanArray;
+import android.view.View;
  import android.widget.RemoteViews;

  /**
@@ -57,8 +58,7 @@
    public void onReceive(Context context, Intent intent) {
      super.onReceive(context, intent);
      String action = intent.getAction();
-    if (AppWidgetManager.ACTION_APPWIDGET_UPDATE.equals(action)
-        ||  
context.getString(R.string.track_paused_broadcast_action).equals(action)
+    if  
(context.getString(R.string.track_paused_broadcast_action).equals(action)
          ||  
context.getString(R.string.track_resumed_broadcast_action).equals(action)
          ||  
context.getString(R.string.track_started_broadcast_action).equals(action)
          ||  
context.getString(R.string.track_stopped_broadcast_action).equals(action)
@@ -69,7 +69,8 @@
        int[] appWidgetIds = appWidgetManager.getAppWidgetIds(
            new ComponentName(context, TrackWidgetProvider.class));
        for (int appWidgetId : appWidgetIds) {
-        RemoteViews remoteViews = getRemoteViews(context, trackId,  
useLargeSize.get(appWidgetId));
+        RemoteViews remoteViews = getRemoteViews(
+            context, trackId, useLargeSize.get(appWidgetId, true));
          appWidgetManager.updateAppWidget(appWidgetId, remoteViews);
        }
      }
@@ -87,13 +88,26 @@
    }

    /**
-   * Updates the widget.
+   * Updates an app widget.
+   *
+   * @param context the context
+   * @param appWidgetManager the app widget manager
+   * @param appWidgetId the app widget id
+   */
+  public static void updateAppWidget(
+      Context context, AppWidgetManager appWidgetManager, int appWidgetId)  
{
+    RemoteViews remoteViews = getRemoteViews(context, -1L,  
useLargeSize.get(appWidgetId, true));
+    appWidgetManager.updateAppWidget(appWidgetId, remoteViews);
+  }
+
+  /**
+   * Gets the remote views.
     *
     * @param context the context
     * @param trackId the track id
     * @param large true to use the large layout
     */
-  private RemoteViews getRemoteViews(Context context, long trackId,  
boolean large) {
+  private static RemoteViews getRemoteViews(Context context, long trackId,  
boolean large) {
      RemoteViews remoteViews = new RemoteViews(context.getPackageName(),
          large ? R.layout.track_widget_large : R.layout.track_widget_small);

@@ -104,6 +118,12 @@
          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(
+        context, R.string.report_speed_key,  
PreferencesUtils.REPORT_SPEED_DEFAULT);
+    int item1 = PreferencesUtils.getInt(
+        context, R.string.track_widget_item1,  
PreferencesUtils.TRACK_WIDGET_ITEM1_DEFAULT);
+    int item2 = PreferencesUtils.getInt(
+        context, R.string.track_widget_item2,  
PreferencesUtils.TRACK_WIDGET_ITEM2_DEFAULT);

      // Get track and trip statistics
      MyTracksProviderUtils myTracksProviderUtils =  
MyTracksProviderUtils.Factory.get(context);
@@ -115,19 +135,65 @@
      TripStatistics tripStatistics = track == null ? null :  
track.getTripStatistics();

      updateStatisticsContainer(context, remoteViews, track);
-    updateMovingTime(context, remoteViews, tripStatistics);
-    updateTotalDistance(context, remoteViews, tripStatistics, metricUnits);
+    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);
+
      updateRecordButton(context, remoteViews, isRecording,  
recordingTrackPaused);
      updateStopButton(context, remoteViews, isRecording);
      if (large) {
-      boolean reportSpeed = PreferencesUtils.getBoolean(
-          context, R.string.report_speed_key,  
PreferencesUtils.REPORT_SPEED_DEFAULT);
-      updateAverageMovingSpeed(context, remoteViews, tripStatistics,  
metricUnits, reportSpeed);
-      updateAverageSpeed(context, remoteViews, tripStatistics,  
metricUnits, reportSpeed);
+      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);
      }
      return remoteViews;
    }
+
+  /**
+   * Sets a widget item.
+   *
+   * @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 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,
+      boolean reportSpeed) {
+    switch (itemValue) {
+      case 1:
+        updateTotalTime(context, remoteViews, labelId, valueId, unitId,  
tripStatistics);
+        break;
+      case 2:
+        updateAverageSpeed(context, remoteViews, labelId, valueId, unitId,  
tripStatistics,
+            metricUnits, reportSpeed);
+        break;
+      case 3:
+        updateMovingTime(context, remoteViews, labelId, valueId, unitId,  
tripStatistics);
+        break;
+      case 4:
+        updateAverageMovingSpeed(context, remoteViews, labelId, valueId,  
unitId, tripStatistics,
+            metricUnits, reportSpeed);
+        break;
+      case 0:
+      default:
+        updateTotalDistance(
+            context, remoteViews, labelId, valueId, unitId,  
tripStatistics, metricUnits);
+        break;
+    }
+  }

    /**
     * Updates the statistics container.
@@ -136,7 +202,8 @@
     * @param remoteViews the remote views
     * @param track the track
     */
-  private void updateStatisticsContainer(Context context, RemoteViews  
remoteViews, Track track) {
+  private static void updateStatisticsContainer(
+      Context context, RemoteViews remoteViews, Track track) {
      Intent intent;
      if (track != null) {
        intent = IntentUtils.newIntent(context, TrackDetailActivity.class)
@@ -149,35 +216,113 @@
      PendingIntent pendingIntent = taskStackBuilder.getPendingIntent(0, 0);
      remoteViews.setOnClickPendingIntent(R.id.track_widget_statistics,  
pendingIntent);
    }
+
+  /**
+   * Updates total distance.
+   *
+   * @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 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) {
+    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]);
+  }
+
+  /**
+   * Updates total time.
+   *
+   * @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 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);
+  }
+
+  /**
+   * Updates average speed.
+   *
+   * @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 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) {
+    String averageSpeedLabel = context.getString(
+        reportSpeed ? R.string.stats_average_speed :  
R.string.stats_average_pace);
+    remoteViews.setTextViewText(labelId, 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]);
+  }

    /**
     * Updates moving time.
     *
     * @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 tripStatistics the trip statistics
     */
-  private void updateMovingTime(
-      Context context, RemoteViews remoteViews, TripStatistics  
tripStatistics) {
-    String movingTimeValue = tripStatistics == null ?  
context.getString(R.string.value_unknown)
+  private static void updateMovingTime(Context context, RemoteViews  
remoteViews, int labelId,
+      int valueId, int unitId, TripStatistics tripStatistics) {
+    String movingTime = tripStatistics == null ?  
context.getString(R.string.value_unknown)
          : StringUtils.formatElapsedTime(tripStatistics.getMovingTime());
-    remoteViews.setTextViewText(R.id.track_widget_moving_time_value,  
movingTimeValue);
+    remoteViews.setTextViewText(labelId,  
context.getString(R.string.stats_moving_time));
+    remoteViews.setTextViewText(valueId, movingTime);
+    remoteViews.setViewVisibility(unitId, View.GONE);
    }

    /**
-   * Updates total distance.
+   * Updates average moving speed.
     *
     * @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 tripStatistics the trip statistics
     * @param metricUnits true to use metric units
+   * @param reportSpeed true to report speed
     */
-  private void updateTotalDistance(Context context, RemoteViews  
remoteViews,
-      TripStatistics tripStatistics, boolean metricUnits) {
-    double distance = tripStatistics == null ? Double.NaN :  
tripStatistics.getTotalDistance();
-    String[] distanceParts = StringUtils.getDistanceParts(context,  
distance, metricUnits);
-    remoteViews.setTextViewText(R.id.track_widget_total_distance_value,  
distanceParts[0]);
-    remoteViews.setTextViewText(R.id.track_widget_total_distance_unit,  
distanceParts[1]);
+  private static void updateAverageMovingSpeed(Context context,  
RemoteViews remoteViews,
+      int labelId, int valueId, int unitId, 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);
+
+    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]);
    }

    /**
@@ -188,7 +333,7 @@
     * @param isRecording true if recording
     * @param recordingTrackPaused true if recording track is paused
     */
-  private void updateRecordButton(
+  private static void updateRecordButton(
        Context context, RemoteViews remoteViews, boolean isRecording,  
boolean recordingTrackPaused) {
      remoteViews.setImageViewResource(R.id.track_widget_record_button,
          isRecording && !recordingTrackPaused ? R.drawable.btn_pause :  
R.drawable.btn_record);
@@ -213,7 +358,8 @@
     * @param remoteViews the remote views
     * @param isRecording true if recording
     */
-  private void updateStopButton(Context context, RemoteViews remoteViews,  
boolean isRecording) {
+  private static void updateStopButton(
+      Context context, RemoteViews remoteViews, boolean isRecording) {
      remoteViews.setImageViewResource(
          R.id.track_widget_stop_button, isRecording ?  
R.drawable.btn_stop_1 : R.drawable.btn_stop_0);
      remoteViews.setBoolean(R.id.track_widget_stop_button, "setEnabled",  
isRecording);
@@ -225,49 +371,6 @@
        remoteViews.setOnClickPendingIntent(R.id.track_widget_stop_button,  
pendingIntent);
      }
    }
-
-  /**
-   * Updates average moving speed.
-   *
-   * @param context the context
-   * @param remoteViews the remote views
-   * @param tripStatistics the trip statistics
-   * @param metricUnits true to use metric units
-   * @param reportSpeed true to report speed
-   */
-  private void updateAverageMovingSpeed(Context context, RemoteViews  
remoteViews,
-      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(
-        R.id.track_widget_average_moving_speed_label,  
averageMovingSpeedLabel);
-
-    Double speed = tripStatistics == null ? Double.NaN :  
tripStatistics.getAverageMovingSpeed();
-    String[] speedParts = StringUtils.getSpeedParts(context, speed,  
metricUnits, reportSpeed);
-    
remoteViews.setTextViewText(R.id.track_widget_average_moving_speed_value,  
speedParts[0]);
-    
remoteViews.setTextViewText(R.id.track_widget_average_moving_speed_unit,  
speedParts[1]);
-  }
-
-  /**
-   * Updates average speed.
-   *
-   * @param context the context
-   * @param remoteViews the remote views
-   * @param tripStatistics the trip statistics
-   * @param metricUnits true to use metric units
-   * @param reportSpeed true to report speed
-   */
-  private void updateAverageSpeed(Context context, RemoteViews remoteViews,
-      TripStatistics tripStatistics, boolean metricUnits, boolean  
reportSpeed) {
-    String averageSpeedLabel = context.getString(
-        reportSpeed ? R.string.stats_average_speed :  
R.string.stats_average_pace);
-    remoteViews.setTextViewText(R.id.track_widget_average_speed_label,  
averageSpeedLabel);
-
-    Double speed = tripStatistics == null ? Double.NaN :  
tripStatistics.getAverageSpeed();
-    String[] speedParts = StringUtils.getSpeedParts(context, speed,  
metricUnits, reportSpeed);
-    remoteViews.setTextViewText(R.id.track_widget_average_speed_value,  
speedParts[0]);
-    remoteViews.setTextViewText(R.id.track_widget_average_speed_unit,  
speedParts[1]);
-  }

    /**
     * Updates recording status.
@@ -277,7 +380,7 @@
     * @param isRecording true if recording
     * @param recordingTrackPaused true if recording track is paused
     */
-  private void updateRecordStatus(
+  private static void updateRecordStatus(
        Context context, RemoteViews remoteViews, boolean isRecording,  
boolean recordingTrackPaused) {
      String status;
      int colorId;

=========================================================================== ===
Revision: 970475bced2c
Branch:   default
Author:   Jimmy Shih <js...@google.com>
Date:     Mon Oct  8 13:05:15 2012
Log:      add 4 layout sizes for the app widget
http://code.google.com/p/mytracks/source/detail?r=970475bced2c

Added:
  /MyTracks/res/layout/track_widget_4x1.xml
  /MyTracks/res/layout/track_widget_4x2.xml
  /MyTracks/res/layout/track_widget_4x3.xml
  /MyTracks/res/layout/track_widget_4x4.xml
Deleted:
  /MyTracks/res/layout/track_widget_large.xml
  /MyTracks/res/layout/track_widget_small.xml
Modified:
  /MyTracks/res/values/styles.xml
  /MyTracks/res/xml/track_widget_info.xml

/MyTracks/src/com/google/android/apps/mytracks/widgets/TrackWidgetProvider. java

=======================================
--- /dev/null
+++ /MyTracks/res/layout/track_widget_4x1.xml   Mon Oct  8 13:05:15 2012
@@ -0,0 +1,96 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+Copyright 2012 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.
+-->
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+  style="@style/TrackWidgetBoundingBox" >
+  <LinearLayout
+    android:orientation="horizontal"
+    android:paddingBottom="4dp"
+    android:paddingTop="4dp"
+    style="@style/TrackWidgetFrame" >
+    <LinearLayout
+      android:layout_weight="1"
+      style="@style/TrackWidgetVerticalSpacer" />
+    <ImageButton
+      android:contentDescription="@string/icon_record_track"
+      android:id="@+id/track_widget_record_button"
+      style="@style/TrackWidgetButtonRecord" />
+    <LinearLayout
+      android:id="@+id/track_widget_stats_container"
+      android:layout_height="fill_parent"
+      android:layout_weight="18"
+      android:layout_width="0dp"
+      android:padding="0dp"
+      style="@style/TrackWidgetStatsContainer" >
+      <LinearLayout style="@style/TrackWidgetStatsSection" >
+        <!-- item1 -->
+        <LinearLayout style="@style/TrackWidgetItemContainer" >
+          <TextView
+            android:id="@+id/track_widget_item1_label"
+            style="@style/TrackWidgetLabel" />
+          <LinearLayout style="@style/TrackWidgetValueContainer" >
+            <TextView
+              android:id="@+id/track_widget_item1_value"
+              style="@style/TrackWidgetValue" />
+            <TextView
+              android:id="@+id/track_widget_item1_unit"
+              style="@style/TrackWidgetUnit" />
+          </LinearLayout>
+        </LinearLayout>
+      </LinearLayout>
+      <!-- horizontal separator -->
+      <LinearLayout
+        android:baselineAligned="false"
+        style="@style/TrackWidgetHorizontalSeparator" >
+        <LinearLayout
+          android:layout_weight="1"
+          style="@style/TrackWidgetHorizontalSpacer" />
+        <LinearLayout
+          android:layout_weight="38"
+          style="@style/TrackWidgetHorizontalLine" />
+        <LinearLayout
+          android:layout_weight="1"
+          style="@style/TrackWidgetHorizontalSpacer" />
+      </LinearLayout>
+      <LinearLayout style="@style/TrackWidgetStatsSection" >
+        <LinearLayout style="@style/TrackWidgetItemContainer" >
+          <!-- item2 -->
+          <TextView
+            android:id="@+id/track_widget_item2_label"
+            style="@style/TrackWidgetLabel" />
+          <LinearLayout style="@style/TrackWidgetValueContainer" >
+            <TextView
+              android:id="@+id/track_widget_item2_value"
+              style="@style/TrackWidgetValue" />
+            <TextView
+              android:id="@+id/track_widget_item2_unit"
+              style="@style/TrackWidgetUnit" />
+          </LinearLayout>
+        </LinearLayout>
+      </LinearLayout>
+    </LinearLayout>
+    <ImageButton
+      android:contentDescription="@string/icon_stop_recording"
+      android:id="@+id/track_widget_stop_button"
+      style="@style/TrackWidgetButtonStop" />
+    <LinearLayout
+      android:layout_weight="1"
+      style="@style/TrackWidgetVerticalSpacer" />
+  </LinearLayout>
+  <ImageView
+    android:contentDescription="@string/my_tracks_app_name"
+    style="@style/TrackWidgetLogo" />
+</RelativeLayout>
=======================================
--- /dev/null
+++ /MyTracks/res/layout/track_widget_4x2.xml   Mon Oct  8 13:05:15 2012
@@ -0,0 +1,152 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+Copyright 2012 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.
+-->
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+  style="@style/TrackWidgetBoundingBox" >
+  <LinearLayout
+    android:baselineAligned="false"
+    style="@style/TrackWidgetFrame" >
+    <LinearLayout
+      android:baselineAligned="false"
+      android:id="@+id/track_widget_stats_container"
+      android:layout_weight="1"
+      style="@style/TrackWidgetStatsContainer" >
+      <LinearLayout style="@style/TrackWidgetStatsSection" >
+        <!-- item1 -->
+        <LinearLayout style="@style/TrackWidgetItemContainer4x2" >
+          <TextView
+            android:id="@+id/track_widget_item1_label"
+            style="@style/TrackWidgetLabel" />
+          <LinearLayout style="@style/TrackWidgetValueContainer" >
+            <TextView
+              android:id="@+id/track_widget_item1_value"
+              style="@style/TrackWidgetValue" />
+            <TextView
+              android:id="@+id/track_widget_item1_unit"
+              style="@style/TrackWidgetUnit" />
+          </LinearLayout>
+        </LinearLayout>
+        <!-- vertical separator -->
+        <LinearLayout
+          android:baselineAligned="false"
+          style="@style/TrackWidgetVerticalSeparator" >
+          <LinearLayout
+            android:layout_weight="2"
+            style="@style/TrackWidgetVerticalSpacer" />
+          <LinearLayout
+            android:layout_weight="1"
+            style="@style/TrackWidgetVerticalLine" />
+        </LinearLayout>
+        <!-- item3 -->
+        <LinearLayout style="@style/TrackWidgetItemContainer4x2" >
+          <TextView
+            android:id="@+id/track_widget_item3_label"
+            style="@style/TrackWidgetLabel" />
+          <LinearLayout style="@style/TrackWidgetValueContainer" >
+            <TextView
+              android:id="@+id/track_widget_item3_value"
+              style="@style/TrackWidgetValue" />
+            <TextView
+              android:id="@+id/track_widget_item3_unit"
+              style="@style/TrackWidgetUnit" />
+          </LinearLayout>
+        </LinearLayout>
+      </LinearLayout>
+      <!-- horizontal separator -->
+      <LinearLayout
+        android:baselineAligned="false"
+        style="@style/TrackWidgetHorizontalSeparator" >
+        <LinearLayout
+          android:layout_weight="1"
+          style="@style/TrackWidgetHorizontalSpacer" />
+        <LinearLayout
+          android:layout_weight="38"
+          style="@style/TrackWidgetHorizontalLine" />
+        <LinearLayout
+          android:layout_weight="1"
+          style="@style/TrackWidgetHorizontalSpacer" />
+      </LinearLayout>
+      <LinearLayout style="@style/TrackWidgetStatsSection" >
+        <!-- item2 -->
+        <LinearLayout style="@style/TrackWidgetItemContainer4x2" >
+          <TextView
+            android:id="@+id/track_widget_item2_label"
+            style="@style/TrackWidgetLabel" />
+          <LinearLayout style="@style/TrackWidgetValueContainer" >
+            <TextView
+              android:id="@+id/track_widget_item2_value"
+              style="@style/TrackWidgetValue" />
+            <TextView
+              android:id="@+id/track_widget_item2_unit"
+              style="@style/TrackWidgetUnit" />
+          </LinearLayout>
+        </LinearLayout>
+        <!-- vertical separator -->
+        <LinearLayout
+          android:baselineAligned="false"
+          style="@style/TrackWidgetVerticalSeparator" >
+          <LinearLayout
+            android:layout_weight="1"
+            style="@style/TrackWidgetVerticalLine" />
+          <LinearLayout
+            android:layout_weight="2"
+            style="@style/TrackWidgetVerticalSpacer" />
+        </LinearLayout>
+        <!-- item4 -->
+        <LinearLayout style="@style/TrackWidgetItemContainer4x2" >
+          <TextView
+            android:id="@+id/track_widget_item4_label"
+            style="@style/TrackWidgetLabel" />
+          <LinearLayout style="@style/TrackWidgetValueContainer" >
+            <TextView
+              android:id="@+id/track_widget_item4_value"
+              style="@style/TrackWidgetValue" />
+            <TextView
+              android:id="@+id/track_widget_item4_unit"
+              style="@style/TrackWidgetUnit" />
+          </LinearLayout>
+        </LinearLayout>
+      </LinearLayout>
+    </LinearLayout>
+    <LinearLayout style="@style/TrackWidgetButtonContainer" >
+      <LinearLayout
+        android:layout_weight="1"
+        style="@style/TrackWidgetVerticalSpacer" />
+      <ImageButton
+        android:contentDescription="@string/icon_record_track"
+        android:id="@+id/track_widget_record_button"
+        style="@style/TrackWidgetButtonRecord" />
+      <TextView
+        android:id="@+id/track_widget_record_status"
+        android:layout_gravity="center_vertical"
+        android:layout_height="wrap_content"
+        android:layout_weight="2"
+        android:layout_width="0dp"
+        android:singleLine="true"
+        style="@style/TextSmall" />
+      <ImageButton
+        android:contentDescription="@string/icon_stop_recording"
+        android:id="@+id/track_widget_stop_button"
+        style="@style/TrackWidgetButtonStop" />
+      <LinearLayout
+        android:layout_weight="1"
+        style="@style/TrackWidgetVerticalSpacer" />
+    </LinearLayout>
+  </LinearLayout>
+  <ImageView
+    android:contentDescription="@string/my_tracks_app_name"
+    style="@style/TrackWidgetLogo" />
+</RelativeLayout>
=======================================
--- /dev/null
+++ /MyTracks/res/layout/track_widget_4x3.xml   Mon Oct  8 13:05:15 2012
@@ -0,0 +1,148 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+Copyright 2012 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.
+-->
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+  style="@style/TrackWidgetBoundingBox" >
+  <LinearLayout
+    android:baselineAligned="false"
+    style="@style/TrackWidgetFrame" >
+    <LinearLayout
+      android:baselineAligned="false"
+      android:id="@+id/track_widget_stats_container"
+      android:layout_weight="2"
+      style="@style/TrackWidgetStatsContainer" >
+      <LinearLayout style="@style/TrackWidgetStatsSection" >
+        <!-- item1 -->
+        <LinearLayout style="@style/TrackWidgetItemContainer4x3" >
+          <TextView
+            android:id="@+id/track_widget_item1_label"
+            style="@style/TrackWidgetLabel4x3" />
+          <LinearLayout style="@style/TrackWidgetValueContainer4x3" >
+            <TextView
+              android:id="@+id/track_widget_item1_value"
+              style="@style/TrackWidgetValue4x3" />
+            <TextView
+              android:id="@+id/track_widget_item1_unit"
+              style="@style/TrackWidgetUnit4x3" />
+          </LinearLayout>
+        </LinearLayout>
+        <!-- vertical separator -->
+        <LinearLayout style="@style/TrackWidgetVerticalSeparator" >
+          <LinearLayout
+            android:layout_weight="2"
+            style="@style/TrackWidgetVerticalSpacer" />
+          <LinearLayout
+            android:layout_weight="1"
+            style="@style/TrackWidgetVerticalLine" />
+        </LinearLayout>
+        <!-- item3 -->
+        <LinearLayout style="@style/TrackWidgetItemContainer4x3" >
+          <TextView
+            android:id="@+id/track_widget_item3_label"
+            style="@style/TrackWidgetLabel4x3" />
+          <LinearLayout style="@style/TrackWidgetValueContainer4x3" >
+            <TextView
+              android:id="@+id/track_widget_item3_value"
+              style="@style/TrackWidgetValue4x3" />
+            <TextView
+              android:id="@+id/track_widget_item3_unit"
+              style="@style/TrackWidgetUnit4x3" />
+          </LinearLayout>
+        </LinearLayout>
+      </LinearLayout>
+      <!-- horizontal separator -->
+      <LinearLayout
+        android:baselineAligned="false"
+        style="@style/TrackWidgetHorizontalSeparator" >
+        <LinearLayout
+          android:layout_weight="1"
+          style="@style/TrackWidgetHorizontalSpacer" />
+        <LinearLayout
+          android:layout_weight="38"
+          style="@style/TrackWidgetHorizontalLine" />
+        <LinearLayout
+          android:layout_weight="1"
+          style="@style/TrackWidgetHorizontalSpacer" />
+      </LinearLayout>
+      <LinearLayout style="@style/TrackWidgetStatsSection" >
+        <!-- item2 -->
+        <LinearLayout style="@style/TrackWidgetItemContainer4x3" >
+          <TextView
+            android:id="@+id/track_widget_item2_label"
+            style="@style/TrackWidgetLabel4x3" />
+          <LinearLayout style="@style/TrackWidgetValueContainer4x3" >
+            <TextView
+              android:id="@+id/track_widget_item2_value"
+              style="@style/TrackWidgetValue4x3" />
+            <TextView
+              android:id="@+id/track_widget_item2_unit"
+              style="@style/TrackWidgetUnit4x3" />
+          </LinearLayout>
+        </LinearLayout>
+        <!-- vertical separator -->
+        <LinearLayout style="@style/TrackWidgetVerticalSeparator" >
+          <LinearLayout
+            android:layout_weight="1"
+            style="@style/TrackWidgetVerticalLine" />
+          <LinearLayout
+            android:layout_weight="2"
+            style="@style/TrackWidgetVerticalSpacer" />
+        </LinearLayout>
+        <!-- item4 -->
+        <LinearLayout style="@style/TrackWidgetItemContainer4x3" >
+          <TextView
+            android:id="@+id/track_widget_item4_label"
+            style="@style/TrackWidgetLabel4x3" />
+          <LinearLayout style="@style/TrackWidgetValueContainer4x3" >
+            <TextView
+              android:id="@+id/track_widget_item4_value"
+              style="@style/TrackWidgetValue4x3" />
+            <TextView
+              android:id="@+id/track_widget_item4_unit"
+              style="@style/TrackWidgetUnit4x3" />
+          </LinearLayout>
+        </LinearLayout>
+      </LinearLayout>
+    </LinearLayout>
+    <LinearLayout style="@style/TrackWidgetButtonContainer" >
+      <LinearLayout
+        android:layout_weight="1"
+        style="@style/TrackWidgetVerticalSpacer" />
+      <ImageButton
+        android:contentDescription="@string/icon_record_track"
+        android:id="@+id/track_widget_record_button"
+        style="@style/TrackWidgetButtonRecord" />
+      <TextView
+        android:id="@+id/track_widget_record_status"
+        android:layout_gravity="center_vertical"
+        android:layout_height="wrap_content"
+        android:layout_weight="2"
+        android:layout_width="0dp"
+        android:singleLine="true"
+        style="@style/TextSmall" />
+      <ImageButton
+        android:contentDescription="@string/icon_stop_recording"
+        android:id="@+id/track_widget_stop_button"
+        style="@style/TrackWidgetButtonStop" />
+      <LinearLayout
+        android:layout_weight="1"
+        style="@style/TrackWidgetVerticalSpacer" />
+    </LinearLayout>
+  </LinearLayout>
+  <ImageView
+    android:contentDescription="@string/my_tracks_app_name"
+    style="@style/TrackWidgetLogo" />
+</RelativeLayout>
=======================================
--- /dev/null
+++ /MyTracks/res/layout/track_widget_4x4.xml   Mon Oct  8 13:05:15 2012
@@ -0,0 +1,156 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+Copyright 2012 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.
+-->
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+  style="@style/TrackWidgetBoundingBox" >
+  <LinearLayout
+    android:baselineAligned="false"
+    style="@style/TrackWidgetFrame" >
+    <LinearLayout
+      android:baselineAligned="false"
+      android:id="@+id/track_widget_stats_container"
+      android:layout_weight="3"
+      style="@style/TrackWidgetStatsContainer" >
+      <LinearLayout style="@style/TrackWidgetStatsSection" >
+        <!-- item1 -->
+        <LinearLayout style="@style/TrackWidgetItemContainer4x4" >
+          <TextView
+            android:id="@+id/track_widget_item1_label"
+            style="@style/TrackWidgetLabel4x4" />
+          <LinearLayout style="@style/TrackWidgetValueContainer4x3" >
+            <TextView
+              android:id="@+id/track_widget_item1_value"
+              style="@style/TrackWidgetValue4x4" />
+            <TextView
+              android:id="@+id/track_widget_item1_unit"
+              style="@style/TrackWidgetUnit4x4" />
+          </LinearLayout>
+        </LinearLayout>
+      </LinearLayout>
+      <!-- horizontal separator -->
+      <LinearLayout
+        android:baselineAligned="false"
+        style="@style/TrackWidgetHorizontalSeparator" >
+        <LinearLayout
+          android:layout_weight="1"
+          style="@style/TrackWidgetHorizontalSpacer" />
+        <LinearLayout
+          android:layout_weight="4"
+          style="@style/TrackWidgetHorizontalLine" />
+        <LinearLayout
+          android:layout_weight="1"
+          style="@style/TrackWidgetHorizontalSpacer" />
+      </LinearLayout>
+      <LinearLayout style="@style/TrackWidgetStatsSection" >
+        <!-- item3 -->
+        <LinearLayout style="@style/TrackWidgetItemContainer4x4" >
+          <TextView
+            android:id="@+id/track_widget_item3_label"
+            style="@style/TrackWidgetLabel4x4" />
+          <LinearLayout style="@style/TrackWidgetValueContainer4x3" >
+            <TextView
+              android:id="@+id/track_widget_item3_value"
+              style="@style/TrackWidgetValue4x4" />
+            <TextView
+              android:id="@+id/track_widget_item3_unit"
+              style="@style/TrackWidgetUnit4x4" />
+          </LinearLayout>
+        </LinearLayout>
+      </LinearLayout>
+      <LinearLayout
+        android:baselineAligned="false"
+        style="@style/TrackWidgetHorizontalSeparator" >
+        <LinearLayout
+          android:layout_weight="1"
+          style="@style/TrackWidgetHorizontalSpacer" />
+        <LinearLayout
+          android:layout_weight="38"
+          style="@style/TrackWidgetHorizontalLine" />
+        <LinearLayout
+          android:layout_weight="1"
+          style="@style/TrackWidgetHorizontalSpacer" />
+      </LinearLayout>
+      <LinearLayout style="@style/TrackWidgetStatsSection" >
+        <!-- item2 -->
+        <LinearLayout style="@style/TrackWidgetItemContainer4x3" >
+          <TextView
+            android:id="@+id/track_widget_item2_label"
+            style="@style/TrackWidgetLabel4x3" />
+          <LinearLayout style="@style/TrackWidgetValueContainer4x3" >
+            <TextView
+              android:id="@+id/track_widget_item2_value"
+              style="@style/TrackWidgetValue4x3" />
+            <TextView
+              android:id="@+id/track_widget_item2_unit"
+              style="@style/TrackWidgetUnit4x3" />
+          </LinearLayout>
+        </LinearLayout>
+        <!-- vertical separator -->
+        <LinearLayout
+          android:baselineAligned="false"
+          style="@style/TrackWidgetVerticalSeparator" >
+          <LinearLayout
+            android:layout_weight="1"
+            style="@style/TrackWidgetVerticalLine" />
+          <LinearLayout
+            android:layout_weight="2"
+            style="@style/TrackWidgetVerticalSpacer" />
+        </LinearLayout>
+        <!-- item4 -->
+        <LinearLayout style="@style/TrackWidgetItemContainer4x3" >
+          <TextView
+            android:id="@+id/track_widget_item4_label"
+            style="@style/TrackWidgetLabel4x3" />
+          <LinearLayout style="@style/TrackWidgetValueContainer4x3" >
+            <TextView
+              android:id="@+id/track_widget_item4_value"
+              style="@style/TrackWidgetValue4x3" />
+            <TextView
+              android:id="@+id/track_widget_item4_unit"
+              style="@style/TrackWidgetUnit4x3" />
+          </LinearLayout>
+        </LinearLayout>
+      </LinearLayout>
+    </LinearLayout>
+    <LinearLayout style="@style/TrackWidgetButtonContainer" >
+      <LinearLayout
+        android:layout_weight="1"
+        style="@style/TrackWidgetVerticalSpacer" />
+      <ImageButton
+        android:contentDescription="@string/icon_record_track"
+        android:id="@+id/track_widget_record_button"
+        style="@style/TrackWidgetButtonRecord" />
+      <TextView
+        android:id="@+id/track_widget_record_status"
+        android:layout_gravity="center_vertical"
+        android:layout_height="wrap_content"
+        android:layout_weight="2"
+        android:layout_width="0dp"
+        android:singleLine="true"
+        style="@style/TextSmall" />
+      <ImageButton
+        android:contentDescription="@string/icon_stop_recording"
+        android:id="@+id/track_widget_stop_button"
+        style="@style/TrackWidgetButtonStop" />
+      <LinearLayout
+        android:layout_weight="1"
+        style="@style/TrackWidgetVerticalSpacer" />
+    </LinearLayout>
+  </LinearLayout>
+  <ImageView
+    android:contentDescription="@string/my_tracks_app_name"
+    style="@style/TrackWidgetLogo4x4" />
+</RelativeLayout>
=======================================
--- /MyTracks/res/layout/track_widget_large.xml Fri Oct  5 11:26:57 2012
+++ /dev/null
@@ -1,136 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-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.
--->
-<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
-  android:background="@drawable/track_widget_background"
-  android:layout_height="fill_parent"
-  android:layout_width="fill_parent"
-  android:padding="@dimen/widget_margin" >
-  <LinearLayout
-    android:layout_alignParentTop="true"
-    android:layout_height="fill_parent"
-    android:layout_width="fill_parent"
-    android:orientation="vertical" >
-    <LinearLayout
-      android:clickable="true"
-      android:gravity="center_vertical"
-      android:id="@+id/track_widget_statistics"
-      android:layout_height="0dp"
-      android:layout_weight="1"
-      android:layout_width="fill_parent"
-      android:orientation="vertical"
-      android:padding="4dp" >
-      <LinearLayout style="@style/LinearLayoutHorizontal" >
-        <!-- item1 -->
-        <LinearLayout style="@style/TrackWidgetItemContainer" >
-          <TextView
-            android:id="@+id/track_widget_item1_label"
-            style="@style/TrackWidgetLabel" />
-          <LinearLayout style="@style/TrackWidgetValueContainer" >
-            <TextView
-              android:id="@+id/track_widget_item1_value"
-              style="@style/TrackWidgetValue" />
-            <TextView
-              android:id="@+id/track_widget_item1_unit"
-              style="@style/TrackWidgetUnit" />
-          </LinearLayout>
-        </LinearLayout>
-        <!-- vertical separator -->
-        <LinearLayout style="@style/LinearLayoutVertifcal" >
-          <LinearLayout style="@style/TrackWidgetVerticalSpacer" />
-          <LinearLayout style="@style/TrackWidgetVerticalSeparator" />
-        </LinearLayout>
-        <!-- item3 -->
-        <LinearLayout style="@style/TrackWidgetItemContainer" >
-          <TextView
-            android:id="@+id/track_widget_item3_label"
-            style="@style/TrackWidgetLabel" />
-          <LinearLayout style="@style/TrackWidgetValueContainer" >
-            <TextView
-              android:id="@+id/track_widget_item3_value"
-              style="@style/TrackWidgetValue" />
-            <TextView
-              android:id="@+id/track_widget_item3_unit"
-              style="@style/TrackWidgetUnit" />
-          </LinearLayout>
-        </LinearLayout>
-      </LinearLayout>
-      <!-- horizontal separator -->
-      <LinearLayout style="@style/TrackWidgetHorizontalSeparator" />
-      <LinearLayout style="@style/LinearLayoutHorizontal" >
-        <!-- item2 -->
-        <LinearLayout style="@style/TrackWidgetItemContainer" >
-          <TextView
-            android:id="@+id/track_widget_item2_label"
-            style="@style/TrackWidgetLabel" />
-          <LinearLayout style="@style/TrackWidgetValueContainer" >
-            <TextView
-              android:id="@+id/track_widget_item2_value"
-              style="@style/TrackWidgetValue" />
-            <TextView
-              android:id="@+id/track_widget_item2_unit"
-              style="@style/TrackWidgetUnit" />
-          </LinearLayout>
-        </LinearLayout>
-        <!-- vertical separator -->
-        <LinearLayout style="@style/LinearLayoutVertifcal" >
-          <LinearLayout style="@style/TrackWidgetVerticalSeparator" />
-          <LinearLayout style="@style/TrackWidgetVerticalSpacer" />
-        </LinearLayout>
-        <!-- item4 -->
-        <LinearLayout style="@style/TrackWidgetItemContainer" >
-          <TextView
-            android:id="@+id/track_widget_item4_label"
-            style="@style/TrackWidgetLabel" />
-          <LinearLayout style="@style/TrackWidgetValueContainer" >
-            <TextView
-              android:id="@+id/track_widget_item4_value"
-              style="@style/TrackWidgetValue" />
-            <TextView
-              android:id="@+id/track_widget_item4_unit"
-              style="@style/TrackWidgetUnit" />
-          </LinearLayout>
-        </LinearLayout>
-      </LinearLayout>
-    </LinearLayout>
-    <LinearLayout
-      android:gravity="center_vertical"
-      android:layout_height="0dp"
-      android:layout_weight="1"
-      android:layout_width="fill_parent"
-      android:orientation="horizontal"
-      android:paddingBottom="4dp"
-      android:paddingTop="4dp" >
-      <LinearLayout style="@style/TrackWidgetVerticalSpacer" />
-      <ImageButton
-        android:id="@+id/track_widget_record_button"
-        style="@style/TrackWidgetRecordButton" />
-      <TextView
-        android:id="@+id/track_widget_record_status"
-        android:layout_gravity="center_vertical"
-        android:layout_height="wrap_content"
-        android:layout_weight="4"
-        android:layout_width="0dp"
-        android:singleLine="true"
-        style="@style/TextSmall" />
-      <ImageButton
-        android:id="@+id/track_widget_stop_button"
-        style="@style/TrackWidgetStopButton" />
-      <LinearLayout style="@style/TrackWidgetVerticalSpacer" />
-    </LinearLayout>
-  </LinearLayout>
-  <ImageView style="@style/TrackWidgetLogo" />
-</RelativeLayout>
=======================================
--- /MyTracks/res/layout/track_widget_small.xml Fri Oct  5 11:26:57 2012
+++ /dev/null
@@ -1,86 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-Copyright 2012 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.
--->
-<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
-  android:background="@drawable/track_widget_background"
-  android:layout_height="fill_parent"
-  android:layout_width="fill_parent"
-  android:padding="@dimen/widget_margin" >
-  <LinearLayout
-    android:layout_alignParentTop="true"
-    android:layout_height="100dp"
-    android:layout_width="fill_parent"
-    android:orientation="horizontal"
-    android:paddingBottom="4dp"
-    android:paddingLeft="12dp"
-    android:paddingRight="12dp"
-    android:paddingTop="4dp" >
-    <ImageButton
-      android:id="@+id/track_widget_record_button"
-      style="@style/TrackWidgetRecordButton" />
-    <LinearLayout
-      android:clickable="true"
-      android:id="@+id/track_widget_statistics"
-      android:layout_height="fill_parent"
-      android:layout_weight="1"
-      android:layout_width="0dp"
-      android:orientation="vertical"
-      android:paddingLeft="4dp"
-      android:paddingRight="4dp" >
-      <LinearLayout
-        android:layout_height="0dp"
-        android:layout_weight="1"
-        android:layout_width="fill_parent"
-        android:orientation="vertical" >
-        <!-- item1 -->
-        <TextView
-          android:id="@+id/track_widget_item1_label"
-          style="@style/TrackWidgetLabel" />
-        <LinearLayout style="@style/TrackWidgetValueContainer" >
-          <TextView
-            android:id="@+id/track_widget_item1_value"
-            style="@style/TrackWidgetValue" />
-          <TextView
-            android:id="@+id/track_widget_item1_unit"
-            style="@style/TrackWidgetUnit" />
-        </LinearLayout>
-      </LinearLayout>
-      <LinearLayout style="@style/TrackWidgetHorizontalSeparator" />
-      <LinearLayout
-        android:layout_height="0dp"
-        android:layout_weight="1"
-        android:layout_width="fill_parent"
-        android:orientation="vertical" >
-        <!-- item2 -->
-        <TextView
-          android:id="@+id/track_widget_item2_label"
-          style="@style/TrackWidgetLabel" />
-        <LinearLayout style="@style/TrackWidgetValueContainer" >
-          <TextView
-            android:id="@+id/track_widget_item2_value"
-            style="@style/TrackWidgetValue" />
-          <TextView
-            android:id="@+id/track_widget_item2_unit"
-            style="@style/TrackWidgetUnit" />
-        </LinearLayout>
-      </LinearLayout>
-    </LinearLayout>
-    <ImageButton
-      android:id="@+id/track_widget_stop_button"
-      style="@style/TrackWidgetStopButton" />
-  </LinearLayout>
-  <ImageView style="@style/TrackWidgetLogo" />
-</RelativeLayout>
=======================================
--- /MyTracks/res/values/styles.xml     Fri Oct  5 11:26:57 2012
+++ /MyTracks/res/values/styles.xml     Mon Oct  8 13:05:15 2012
@@ -15,44 +15,44 @@
  limitations under the License.
  -->
  <resources xmlns:android="http://schemas.android.com/apk/res/android">
-  <!-- The style for the about value -->
+  <!-- about value -->
    <style name="AboutValue" parent="@style/TextMedium">
      <item name="android:paddingLeft">48dp</item>
    </style>
-  <!-- The style for the bottom button -->
+  <!-- bottom button -->
    <style name="BottomButton"  
parent="@android:style/Widget.DeviceDefault.Button.Borderless">
      <item name="android:layout_height">wrap_content</item>
      <item name="android:layout_weight">1</item>
      <item name="android:layout_width">0dp</item>
      <item name="android:maxLines">2</item>
    </style>
-  <!-- The style for the bottom button bar -->
+  <!-- bottom button bar -->
    <style name="BottomButtonBar"  
parent="@android:style/DeviceDefault.ButtonBar">
      <item name="android:layout_height">wrap_content</item>
      <item name="android:layout_width">fill_parent</item>
      <item name="android:orientation">horizontal</item>
      <item name="android:measureWithLargestChild">true</item>
    </style>
-  <!-- The style for choose upload service check box -->
+  <!-- choose upload service checkbox -->
    <style name="ChooseUploadServiceCheckBox" parent="@style/TextMedium">
      <item name="android:layout_gravity">center_vertical</item>
      <item name="android:layout_marginLeft">8dp</item>
      <item name="android:layout_width">0dp</item>
      <item name="android:maxLines">5</item>
    </style>
-  <!-- The style for choose upload service image view -->
+  <!-- choose upload service image view -->
    <style name="ChooseUploadServiceImageView">
      <item name="android:layout_gravity">center</item>
      <item name="android:layout_height">wrap_content</item>
      <item name="android:layout_width">wrap_content</item>
    </style>
-  <!-- The style for the editing category -->
+  <!-- edit category -->
    <style name="EditCategory" parent="@style/TextMedium">
      <item name="android:layout_width">fill_parent</item>
      <item name="android:selectAllOnFocus">true</item>
      <item name="android:singleLine">true</item>
    </style>
-  <!-- The style for the edit description -->
+  <!-- edit description -->
    <style name="EditDescription" parent="@style/TextMedium">
      <item name="android:inputType">textAutoCorrect|textCapSentences|
textMultiLine</item>
      <item name="android:layout_width">fill_parent</item>
@@ -60,81 +60,69 @@
      <item name="android:selectAllOnFocus">true</item>
      <item name="android:singleLine">false</item>
    </style>
-  <!-- The style for the edit label -->
+  <!-- edit label -->
    <style name="EditLabel" parent="@style/TextMedium">
      <item name="android:layout_width">fill_parent</item>
    </style>
-  <!-- The style for the edit label with icon -->
+  <!-- edit label with icon -->
    <style name="EditLabel.WithIcon" parent="@style/TextMedium.WithIcon">
      <item name="android:layout_width">fill_parent</item>
    </style>
-  <!-- The style for the edit label with icon and with padding top -->
+  <!-- edit label with icon, width padding top -->
    <style name="EditLabel.WithIcon.WithPaddingTop">
      <item name="android:paddingTop">16dp</item>
    </style>
-  <!-- The style for the edit lable with padding top -->
+  <!-- edit label with padding top -->
    <style name="EditLabel.WithPaddingTop">
      <item name="android:paddingTop">16dp</item>
    </style>
-  <!-- The style for editing marker name -->
+  <!-- edit name marker -->
    <style name="EditNameMarker" parent="@style/TextMedium.WithIcon">
      <item name="android:inputType">textAutoCorrect|textCapWords</item>
      <item name="android:layout_width">fill_parent</item>
      <item name="android:selectAllOnFocus">true</item>
      <item name="android:singleLine">true</item>
    </style>
-  <!-- The style for editing track name -->
+  <!-- edit name track -->
    <style name="EditNameTrack" parent="@style/TextMedium">
      <item name="android:inputType">textAutoCorrect|textCapWords</item>
      <item name="android:layout_width">fill_parent</item>
      <item name="android:selectAllOnFocus">true</item>
      <item name="android:singleLine">true</item>
    </style>
-  <!-- The style for the help answer -->
+  <!-- help answer -->
    <style name="HelpAnswer" parent="@style/TextSmall">
      <item name="android:autoLink">web</item>
      <item name="android:paddingBottom">8dp</item>
    </style>
-  <!-- The style for help question -->
+  <!-- help question -->
    <style name="HelpQuestion" parent="@style/TextMedium">
      <item name="android:paddingTop">8dp</item>
      <item name="android:textStyle">bold</item>
    </style>
-  <!-- The style for the list empty text view -->
+  <!-- list empty text view -->
    <style name="ListEmptyTextView" parent="@style/TextLarge">
      <item name="android:gravity">center</item>
      <item name="android:layout_gravity">center</item>
      <item name="android:padding">8dp</item>
    </style>
-  <!-- style for the list item stats -->
+  <!-- list item stats -->
    <style name="ListItemStats" parent="@style/TextSmall">
      <item name="android:singleLine">true</item>
      <item  
name="android:textColor">@android:color/secondary_text_dark</item>
    </style>
-  <!-- The style for a horizontal linear layout -->
-  <style name="LinearLayoutHorizontal">
-    <item name="android:layout_height">wrap_content</item>
-    <item name="android:layout_width">fill_parent</item>
-    <item name="android:orientation">horizontal</item>
-  </style>
-  <!-- The style for a vertical linear layout -->
-  <style name="LinearLayoutVertifcal">
-    <item name="android:layout_height">fill_parent</item>
-    <item name="android:layout_width">wrap_content</item>
-    <item name="android:orientation">vertical</item>
-  </style>
-  <!-- The style for the scroll view -->
+  <!-- scroll view -->
    <style name="ScrollView">
      <item name="android:layout_height">fill_parent</item>
      <item name="android:layout_width">fill_parent</item>
      <item name="android:scrollbarStyle">outsideInset</item>
    </style>
-  <!-- The style for the scroll view with bottom buttons -->
+  <!-- scroll view with bottom buttons -->
    <style name="ScrollView.WithBottomButtons">
      <item name="android:layout_height">0dp</item>
      <item name="android:layout_weight">1</item>
    </style>
-  <!-- The style for the sensor state value -->
+  <!-- sensor state value -->
    <style name="SensorStateValue" parent="@style/TextLarge">
      <item name="android:background">@android:color/background_light</item>
      <item name="android:gravity">right</item>
@@ -142,17 +130,17 @@
      <item name="android:paddingRight">8dp</item>
      <item name="android:textColor">@android:color/primary_text_light</item>
    </style>
-  <!-- The style for the stats label -->
+  <!-- stats label -->
    <style name="StatsLabel" parent="@style/TextMedium">
      <item name="android:layout_weight">1</item>
      <item name="android:layout_width">0dp</item>
    </style>
-  <!-- The style for the stats spacer -->
+  <!-- stats spacer -->
    <style name="StatsSpacer">
      <item name="android:layout_height">fill_parent</item>
      <item name="android:layout_width">8dp</item>
    </style>
-  <!-- The style for the stats value -->
+  <!-- stats value -->
    <style name="StatsValue" parent="@style/TextLarge">
      <item name="android:background">@android:color/background_light</item>
      <item name="android:gravity">right</item>
@@ -161,84 +149,131 @@
      <item name="android:paddingRight">8dp</item>
      <item name="android:textColor">@android:color/primary_text_light</item>
    </style>
-  <!-- The style for choose activity text -->
+  <!-- text choose activity -->
    <style name="TextChooseActivity">
      <item name="android:textSize">18sp</item>
    </style>
-  <!-- The style for large size text -->
+  <!-- text large -->
    <style name="TextLarge">
      <item name="android:layout_height">wrap_content</item>
      <item name="android:layout_width">wrap_content</item>
      <item name="android:textSize">22sp</item>
    </style>
-  <!-- The style for large size text with top margin -->
+  <!-- text large with top margin -->
    <style name="TextLarge.WithTopMargin">
      <item name="android:layout_marginTop">8dp</item>
    </style>
-  <!-- The style for medium size text -->
+  <!-- text medium -->
    <style name="TextMedium">
      <item name="android:layout_height">wrap_content</item>
      <item name="android:layout_width">wrap_content</item>
      <item name="android:textSize">18sp</item>
    </style>
-  <!-- The style for medium size text with an icon on the left -->
+  <!-- text medium with icon -->
    <style name="TextMedium.WithIcon">
      <item name="android:drawablePadding">8dp</item>
      <item name="android:gravity">center_vertical</item>
    </style>
-  <!-- The style for small size text -->
-  <style name="TextSmall">
+  <!-- text micro -->
+  <style name="TextMicro">
      <item name="android:layout_height">wrap_content</item>
      <item name="android:layout_width">wrap_content</item>
-    <item name="android:textSize">14sp</item>
+    <item name="android:textSize">12sp</item>
    </style>
-  <!-- The style for micro size text -->
-  <style name="TextMicro">
+  <!-- text small -->
+  <style name="TextSmall">
      <item name="android:layout_height">wrap_content</item>
      <item name="android:layout_width">wrap_content</item>
-    <item name="android:textSize">12sp</item>
+    <item name="android:textSize">14sp</item>
    </style>
-  <!-- Theme selector -->
+  <!-- theme selector -->
    <style name="ThemeSelector" parent="android:Theme" />
-  <!-- The style for the track controller container -->
+  <!-- track controller container -->
    <style name="TrackControllerContainer">
      <item name="android:layout_height">wrap_content</item>
      <item name="android:layout_width">fill_parent</item>
      <item name="android:orientation">vertical</item>
    </style>
-  <!-- The style for the track widget button -->
+  <!-- track widget bounding box -->
+  <style name="TrackWidgetBoundingBox">
+    <item  
name="android:background">@drawable/track_widget_background</item>
+    <item name="android:layout_height">fill_parent</item>
+    <item name="android:layout_width">fill_parent</item>
+    <item name="android:padding">@dimen/widget_margin</item>
+  </style>
+  <!-- track widget button -->
    <style name="TrackWidgetButton">
      <item name="android:background">@android:color/transparent</item>
      <item name="android:layout_gravity">center_vertical</item>
      <item name="android:scaleType">fitXY</item>
    </style>
-  <!-- The style for the track widget config row -->
+  <!-- track widget button container -->
+  <style name="TrackWidgetButtonContainer">
+    <item name="android:gravity">center_vertical</item>
+    <item name="android:layout_height">0dp</item>
+    <item name="android:layout_weight">1</item>
+    <item name="android:layout_width">fill_parent</item>
+    <item name="android:orientation">horizontal</item>
+    <item name="android:paddingBottom">4dp</item>
+    <item name="android:paddingTop">4dp</item>
+  </style>
+  <!-- track widget button record -->
+  <style name="TrackWidgetButtonRecord" parent="@style/TrackWidgetButton">
+    <item name="android:layout_height">63dp</item>
+    <item name="android:layout_width">75dp</item>
...

read more »


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
End of messages
« Back to Discussions « Newer topic     Older topic »