merge heads

This commit is contained in:
Jimmy Shih
2012-05-01 18:05:53 -07:00
parent 52253afd3a
commit 66ba54ffa0
113 changed files with 1122 additions and 1956 deletions
+14 -49
View File
@@ -19,22 +19,18 @@ limitations under the License.
android:versionCode="39"
android:versionName="1.1.16"
package="com.google.android.maps.mytracks" >
<!-- Permission to initialize services -->
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<!-- Permissions to record locations -->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<!-- Permissions to access sensors -->
<uses-permission android:name="com.dsi.ant.permission.ANT" />
<uses-permission android:name="com.dsi.ant.permission.ANT_ADMIN" />
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<!-- Permissions to upload tracks -->
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.INTERNET" />
@@ -46,18 +42,14 @@ limitations under the License.
<uses-permission android:name="com.google.android.googleapps.permission.GOOGLE_AUTH.wise" />
<uses-permission android:name="com.google.android.googleapps.permission.GOOGLE_AUTH.writely" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<!-- Permission to read phone state so voice announcement will not interrupt ongoing calls -->
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<!-- Permission to write to SD card -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<!-- Permissions to access My Tracks data -->
<uses-permission android:name="com.google.android.apps.mytracks.MYTRACKS_NOTIFICATIONS" />
<uses-permission android:name="com.google.android.apps.mytracks.READ_TRACK_DATA" />
<uses-permission android:name="com.google.android.apps.mytracks.WRITE_TRACK_DATA" />
<!-- Permission to receive My Tracks internal broadcasts -->
<permission
android:description="@string/permission_notification_label"
@@ -86,11 +78,9 @@ limitations under the License.
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="15" />
<!-- Required features -->
<uses-feature
android:name="android.hardware.location"
@@ -98,7 +88,6 @@ limitations under the License.
<uses-feature
android:name="android.hardware.location.gps"
android:required="true" />
<!-- Optional features -->
<uses-feature
android:name="android.hardware.bluetooth"
@@ -124,46 +113,38 @@ limitations under the License.
<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.MyTracksBackupAgent"
android:icon="@drawable/arrow_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"
android:value="AEdPqrEAAAAIi-_QiwoRSc9_bAC9cmuNXTQyU8ajJmGtKdhskQ" />
<!-- Activities -->
<activity
android:label="@string/menu_aggregated_statistics"
android:name="com.google.android.apps.mytracks.AggregatedStatsActivity" />
<activity android:name="com.google.android.apps.mytracks.ExportActivity"/>
<activity android:name="com.google.android.apps.mytracks.ExportActivity" />
<activity
android:label="@string/menu_help"
android:name="com.google.android.apps.mytracks.HelpActivity" />
<activity
android:label="@string/my_tracks_importer"
android:name="com.google.android.apps.mytracks.ImportActivity"
android:noHistory="true"
android:theme="@android:style/Theme.Translucent.NoTitleBar" >
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" />
@@ -186,7 +167,6 @@ limitations under the License.
<intent-filter>
<action android:name="android.intent.action.SEARCH" />
</intent-filter>
<meta-data
android:name="android.app.searchable"
android:resource="@xml/search" />
@@ -196,37 +176,25 @@ limitations under the License.
android:name="com.google.android.apps.mytracks.SensorStateActivity" />
<activity
android:label="@string/settings_title"
android:name="com.google.android.apps.mytracks.SettingsActivity" >
<intent-filter>
<category android:name="android.intent.category.PREFERENCE" />
</intent-filter>
</activity>
android:name="com.google.android.apps.mytracks.SettingsActivity" />
<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"
android:windowSoftInputMode="stateHidden" />
<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" />
</activity>
<activity android:name="com.google.android.apps.mytracks.io.backup.BackupActivity"/>
<activity android:name="com.google.android.apps.mytracks.io.backup.RestoreActivity"/>
<activity android:name="com.google.android.apps.mytracks.io.backup.RestoreChooserActivity"/>
<activity android:name="com.google.android.apps.mytracks.io.backup.BackupActivity" />
<activity android:name="com.google.android.apps.mytracks.io.backup.RestoreActivity" />
<activity android:name="com.google.android.apps.mytracks.io.backup.RestoreChooserActivity" />
<activity android:name="com.google.android.apps.mytracks.io.docs.SendDocsActivity" />
<activity
android:name="com.google.android.apps.mytracks.io.file.SaveActivity"
android:noHistory="true"
android:theme="@android:style/Theme.Translucent.NoTitleBar" >
<intent-filter>
<action android:name="android.intent.action.SAVE" />
<data android:mimeType="vnd.android.cursor.item/vnd.google.track" />
</intent-filter>
</activity>
<activity android:name="com.google.android.apps.mytracks.io.file.SaveActivity" />
<activity android:name="com.google.android.apps.mytracks.io.fusiontables.SendFusionTablesActivity" />
<activity
android:label="@string/maps_list_title"
@@ -235,7 +203,7 @@ limitations under the License.
<activity android:name="com.google.android.apps.mytracks.io.sendtogoogle.AccountChooserActivity" />
<activity android:name="com.google.android.apps.mytracks.io.sendtogoogle.UploadResultActivity" />
<activity android:name="com.google.android.apps.mytracks.io.sendtogoogle.UploadServiceChooserActivity" />
<!-- Services -->
<service
android:exported="false"
android:name="com.google.android.apps.mytracks.services.ControlRecordingService" />
@@ -247,7 +215,7 @@ limitations under the License.
android:label="@string/my_tracks_recording_service"
android:name="com.google.android.apps.mytracks.services.TrackRecordingService"
android:permission="com.google.android.apps.mytracks.WRITE_TRACK_DATA" />
<!-- Receivers -->
<receiver android:name="com.google.android.apps.mytracks.BootReceiver" >
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
@@ -259,12 +227,11 @@ limitations under the License.
<action android:name="com.google.android.apps.mytracks.TRACK_STARTED" />
<action android:name="com.google.android.apps.mytracks.TRACK_STOPPED" />
</intent-filter>
<meta-data
android:name="android.appwidget.provider"
android:resource="@xml/track_widget_info" />
</receiver>
<!-- Providers -->
<!-- My Tracks data provider -->
<provider
android:authorities="com.google.android.maps.mytracks"
@@ -277,8 +244,6 @@ limitations under the License.
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>
Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 913 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

+14 -43
View File
@@ -15,64 +15,35 @@ See the License for the specific language governing permissions and
limitations under the License.
-->
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="fill_parent"
android:layout_width="fill_parent" >
style="@style/ScrollView" >
<LinearLayout
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:orientation="vertical"
android:padding="8dp" >
<TextView
android:drawableLeft="@drawable/arrow_icon"
android:drawablePadding="8dp"
android:gravity="center"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
style="@android:style/TextAppearance.DeviceDefault.Medium"
android:text="@string/about_copyright_notice" />
android:text="@string/about_copyright_notice"
style="@style/TextMedium.WithIcon" />
<TextView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
style="@android:style/TextAppearance.DeviceDefault.Large"
android:text="@string/about_version" />
android:text="@string/about_version"
style="@style/TextLarge" />
<TextView
android:id="@+id/about_version"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:paddingLeft="48dp"
style="@android:style/TextAppearance.DeviceDefault.Medium" />
style="@style/AboutValue" />
<TextView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
style="@android:style/TextAppearance.DeviceDefault.Large"
android:text="@string/about_support" />
android:text="@string/about_support"
style="@style/TextLarge" />
<TextView
android:autoLink="web"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:paddingLeft="48dp"
style="@android:style/TextAppearance.DeviceDefault.Medium"
android:text="@string/my_tracks_support_url" />
android:text="@string/my_tracks_support_url"
style="@style/AboutValue" />
<TextView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
style="@android:style/TextAppearance.DeviceDefault.Large"
android:text="@string/about_privacy" />
android:text="@string/about_privacy"
style="@style/TextLarge" />
<TextView
android:autoLink="web"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:paddingLeft="48dp"
style="@android:style/TextAppearance.DeviceDefault.Medium"
android:text="@string/my_tracks_privacy_url" />
android:text="@string/my_tracks_privacy_url"
style="@style/AboutValue" />
</LinearLayout>
</ScrollView>
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2010 Google Inc.
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.
@@ -14,6 +14,14 @@ 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.
-->
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<gradient android:startColor="#ff999999" android:endColor="#ff777777" android:angle="270"/>
</shape>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
style="@style/ScrollView">
<TableLayout
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:padding="8dp"
android:shrinkColumns="0,2"
android:stretchColumns="0,2" >
<include layout="@layout/stats_core" />
</TableLayout>
</ScrollView>
+35
View File
@@ -0,0 +1,35 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2010 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" >
<LinearLayout
android:id="@+id/chart_view_layout"
android:layout_height="0dp"
android:layout_weight="1"
android:layout_width="fill_parent"
android:orientation="vertical" >
</LinearLayout>
<ZoomControls
android:background="@android:color/white"
android:gravity="right"
android:id="@+id/chart_zoom_controls"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:paddingRight="8dp" />
</LinearLayout>
+19 -54
View File
@@ -15,87 +15,52 @@ See the License for the specific language governing permissions and
limitations under the License.
-->
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="fill_parent"
android:layout_width="fill_parent" >
style="@style/ScrollView" >
<LinearLayout
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:orientation="vertical"
android:padding="8dp" >
<TextView
android:drawableLeft="@drawable/x_axis"
android:drawablePadding="8dp"
android:gravity="bottom"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
style="@android:style/TextAppearance.DeviceDefault.Large"
android:text="@string/chart_settings_x_axis" />
android:text="@string/chart_settings_x_axis"
style="@style/TextLarge.WithIcon" />
<RadioGroup
android:id="@+id/chart_settings_x"
android:layout_height="wrap_content"
android:layout_width="wrap_content" >
<RadioButton
android:id="@+id/chart_settings_by_distance"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
style="@android:style/TextAppearance.DeviceDefault.Medium"
android:text="@string/chart_settings_by_distance" />
android:text="@string/chart_settings_by_distance"
style="@style/TextMedium" />
<RadioButton
android:id="@+id/chart_settings_by_time"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
style="@android:style/TextAppearance.DeviceDefault.Medium"
android:text="@string/chart_settings_by_time" />
android:text="@string/chart_settings_by_time"
style="@style/TextMedium" />
</RadioGroup>
<TextView
android:drawableLeft="@drawable/y_axis"
android:drawablePadding="8dp"
android:gravity="bottom"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
style="@android:style/TextAppearance.DeviceDefault.Large"
android:text="@string/chart_settings_y_axis" />
android:text="@string/chart_settings_y_axis"
style="@style/TextLarge.WithIcon" />
<CheckBox
android:id="@+id/chart_settings_elevation"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
style="@android:style/TextAppearance.DeviceDefault.Medium"
android:text="@string/stat_elevation" />
android:text="@string/stats_elevation"
style="@style/TextMedium" />
<CheckBox
android:id="@+id/chart_settings_speed"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
style="@android:style/TextAppearance.DeviceDefault.Medium"
android:text="@string/stat_speed" />
android:text="@string/stats_speed"
style="@style/TextMedium" />
<CheckBox
android:id="@+id/chart_settings_power"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
style="@android:style/TextAppearance.DeviceDefault.Medium"
android:text="@string/sensor_state_power" />
android:text="@string/sensor_state_power"
style="@style/TextMedium" />
<CheckBox
android:id="@+id/chart_settings_cadence"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
style="@android:style/TextAppearance.DeviceDefault.Medium"
android:text="@string/sensor_state_cadence" />
android:text="@string/sensor_state_cadence"
style="@style/TextMedium" />
<CheckBox
android:id="@+id/chart_settings_heart_rate"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
style="@android:style/TextAppearance.DeviceDefault.Medium"
android:text="@string/sensor_state_heart_rate" />
android:text="@string/sensor_state_heart_rate"
style="@style/TextMedium" />
</LinearLayout>
</ScrollView>
+6 -23
View File
@@ -14,32 +14,15 @@ 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"
<merge xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="fill_parent"
android:layout_width="fill_parent"
android:orientation="vertical">
<TextView
android:background="@drawable/list_bar"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:padding="5dp"
android:text="@string/maps_list_pick_map"
android:textColor="@color/white"
android:textSize="16sp"/>
android:layout_width="fill_parent" >
<ListView
android:id="@+id/choose_map_list_view"
android:layout_height="fill_parent"
android:layout_weight="1"
android:layout_width="fill_parent"
android:padding="5dp"/>
android:layout_width="fill_parent" />
<TextView
android:id="@+id/choose_map_empty_view"
android:gravity="center"
android:layout_height="fill_parent"
android:layout_weight="1"
android:layout_width="fill_parent"
android:padding="5dp"
android:textColor="@color/red"
android:textSize="16sp"
android:textStyle="bold"/>
</LinearLayout>
style="@style/ListEmptyTextView" >
</TextView>
</merge>
+14 -24
View File
@@ -15,33 +15,23 @@ 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:gravity="center_vertical"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:minHeight="?android:attr/listPreferredItemHeight"
android:orientation="vertical"
android:paddingBottom="2dp"
android:paddingTop="2dp">
android:padding="8dp" >
<TextView
android:id="@+id/choose_map_list_item_title"
android:layout_height="wrap_content"
android:layout_marginLeft="6dp"
android:layout_marginTop="6dp"
android:layout_width="fill_parent"
android:textColor="@color/white"
android:textSize="18sp"
android:textStyle="bold"
android:singleLine="true"/>
android:id="@+id/choose_map_item_title"
android:singleLine="true"
style="@style/TextLarge" />
<TextView
android:id="@+id/choose_map_list_item_description"
android:layout_height="wrap_content"
android:layout_marginLeft="6dp"
android:layout_width="fill_parent"
android:textSize="14sp"
android:singleLine="true"/>
android:id="@+id/choose_map_item_description"
android:singleLine="false"
android:textColor="@android:color/secondary_text_dark"
style="@style/TextSmall" />
<TextView
android:id="@+id/choose_map_list_item_search_status"
android:layout_height="wrap_content"
android:layout_marginLeft="6dp"
android:layout_width="fill_parent"
android:textSize="14sp"
android:singleLine="true"/>
</LinearLayout>
android:id="@+id/choose_map_item_search_status"
android:singleLine="true"
style="@style/TextSmall" />
</LinearLayout>
+2 -5
View File
@@ -18,11 +18,8 @@ limitations under the License.
android:layout_height="fill_parent"
android:layout_width="fill_parent"
android:orientation="vertical" >
<ScrollView
android:layout_height="0dp"
android:layout_weight="1"
android:layout_width="fill_parent" >
<include layout="@layout/welcome" />
<ScrollView style="@style/ScrollView.WithBottomButtons" >
<include layout="@layout/help_content" />
</ScrollView>
<LinearLayout style="@style/BottomButtonBar" >
<include layout="@layout/help_buttons" />
+11 -6
View File
@@ -27,10 +27,13 @@ limitations under the License.
android:orientation="horizontal" >
<TextView
android:id="@+id/list_item_name"
style="@style/ListItemName" />
android:singleLine="true"
style="@style/TextLarge.WithIcon" />
<TextView
android:id="@+id/list_item_category"
style="@style/ListItemCategory" />
android:layout_marginLeft="8dp"
android:singleLine="true"
style="@style/TextSmall" />
</LinearLayout>
<LinearLayout
android:layout_height="wrap_content"
@@ -39,16 +42,18 @@ limitations under the License.
<TextView
android:id="@+id/list_item_total_time"
android:layout_marginRight="8dp"
style="@style/ListItemStat" />
style="@style/ListItemStats" />
<TextView
android:id="@+id/list_item_total_distance"
android:layout_marginRight="8dp"
style="@style/ListItemStat" />
style="@style/ListItemStats" />
<TextView
android:id="@+id/list_item_start_time"
style="@style/ListItemStat" />
style="@style/ListItemStats" />
</LinearLayout>
<TextView
android:id="@+id/list_item_description"
style="@style/ListItemDescription" />
android:singleLine="false"
android:textColor="@android:color/secondary_text_dark"
style="@style/TextSmall" />
</LinearLayout>
+40
View File
@@ -0,0 +1,40 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2010 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:layout_height="fill_parent"
android:layout_width="fill_parent" >
<!-- apiKey corresponds to certificate md5: 81:DF:A2:63:53:C7:6B:1E:6C:24:62:D4:91:1C:36:3A -->
<com.google.android.maps.MapView
android:apiKey="0TXoRmxTinrZKQ9JSazj-9A34XX6_lXsRvTpXWA"
android:clickable="true"
android:focusable="true"
android:focusableInTouchMode="true"
android:id="@+id/map_view"
android:layout_height="fill_parent"
android:layout_width="fill_parent" />
<TextView
android:background="@color/background_warning"
android:drawableLeft="@android:drawable/ic_dialog_alert"
android:gravity="center"
android:id="@+id/map_message"
android:layout_alignParentTop="true"
android:layout_width="fill_parent"
android:padding="8dp"
android:textColor="@android:color/primary_text_dark"
android:visibility="gone"
style="@style/TextMedium.WithIcon" />
</RelativeLayout>
+6 -119
View File
@@ -15,8 +15,7 @@ See the License for the specific language governing permissions and
limitations under the License.
-->
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="fill_parent"
android:layout_width="fill_parent" >
style="@style/ScrollView" >
<LinearLayout
android:layout_height="wrap_content"
android:layout_width="fill_parent"
@@ -24,7 +23,7 @@ limitations under the License.
android:padding="8dp" >
<TextView
android:id="@+id/marker_detail_name"
style="@style/MarkerDetailLabel" />
style="@style/TextLarge" />
<LinearLayout
android:id="@+id/marker_detail_waypoint_section"
android:layout_height="wrap_content"
@@ -32,131 +31,19 @@ limitations under the License.
android:orientation="vertical" >
<TextView
android:id="@+id/marker_detail_marker_type"
style="@style/MarkerDetailLabel" />
style="@style/TextLarge" />
<TextView
android:id="@+id/marker_detail_description"
style="@style/MarkerDetailLabel" />
style="@style/TextLarge" />
</LinearLayout>
<TableLayout
android:id="@+id/marker_detail_statistics_section"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:paddingTop="8dp"
android:shrinkColumns="0,2"
android:stretchColumns="0,2" >
<!-- Total distance and max speed (fastest pace) -->
<TableRow>
<TextView
android:text="@string/stat_total_distance"
style="@style/MarkerDetailStatisticsLabel" />
<TextView
android:id="@+id/marker_detail_max_speed_label"
android:layout_column="2"
style="@style/MarkerDetailStatisticsLabel" />
</TableRow>
<TableRow>
<TextView
android:id="@+id/marker_detail_total_distance_value"
style="@style/MarkerDetailStatisticsValue" />
<TextView style="@style/MarkerDetailStatisticsSpacer" />
<TextView
android:id="@+id/marker_detail_max_speed_value"
style="@style/MarkerDetailStatisticsValue" />
</TableRow>
<!-- Total time and average speed (average pace) -->
<TableRow>
<TextView
android:text="@string/stat_total_time"
style="@style/MarkerDetailStatisticsLabel" />
<TextView
android:id="@+id/marker_detail_average_speed_label"
android:layout_column="2"
style="@style/MarkerDetailStatisticsLabel" />
</TableRow>
<TableRow>
<TextView
android:id="@+id/marker_detail_total_time_value"
style="@style/MarkerDetailStatisticsValue" />
<TextView style="@style/MarkerDetailStatisticsSpacer" />
<TextView
android:id="@+id/marker_detail_average_speed_value"
style="@style/MarkerDetailStatisticsValue" />
</TableRow>
<!-- Moving time and average moving speed (average moving pace) -->
<TableRow>
<TextView
android:text="@string/stat_moving_time"
style="@style/MarkerDetailStatisticsLabel" />
<TextView
android:id="@+id/marker_detail_average_moving_speed_label"
android:layout_column="2"
style="@style/MarkerDetailStatisticsLabel" />
</TableRow>
<TableRow>
<TextView
android:id="@+id/marker_detail_moving_time_value"
style="@style/MarkerDetailStatisticsValue" />
<TextView style="@style/MarkerDetailStatisticsSpacer" />
<TextView
android:id="@+id/marker_detail_average_moving_speed_value"
style="@style/MarkerDetailStatisticsValue" />
</TableRow>
<!-- Elevation and elevation gain -->
<TableRow>
<TextView
android:text="@string/stat_elevation"
style="@style/MarkerDetailStatisticsLabel" />
<TextView
android:layout_column="2"
android:text="@string/stat_elevation_gain"
style="@style/MarkerDetailStatisticsLabel" />
</TableRow>
<TableRow>
<TextView
android:id="@+id/marker_detail_elevation_value"
style="@style/MarkerDetailStatisticsValue" />
<TextView style="@style/MarkerDetailStatisticsSpacer" />
<TextView
android:id="@+id/marker_detail_elevation_gain_value"
style="@style/MarkerDetailStatisticsValue" />
</TableRow>
<!-- Min and max elevation -->
<TableRow>
<TextView
android:text="@string/stat_min_elevation"
style="@style/MarkerDetailStatisticsLabel" />
<TextView
android:layout_column="2"
android:text="@string/stat_max_elevation"
style="@style/MarkerDetailStatisticsLabel" />
</TableRow>
<TableRow>
<TextView
android:id="@+id/marker_detail_min_elevation_value"
style="@style/MarkerDetailStatisticsValue" />
<TextView style="@style/MarkerDetailStatisticsSpacer" />
<TextView
android:id="@+id/marker_detail_max_elevation_value"
style="@style/MarkerDetailStatisticsValue" />
</TableRow>
<!-- Min and max grade -->
<TableRow>
<TextView
android:text="@string/stat_min_grade"
style="@style/MarkerDetailStatisticsLabel" />
<TextView
android:layout_column="2"
android:text="@string/stat_max_grade"
style="@style/MarkerDetailStatisticsLabel" />
</TableRow>
<TableRow>
<TextView
android:id="@+id/marker_detail_min_grade_value"
style="@style/MarkerDetailStatisticsValue" />
<TextView style="@style/MarkerDetailStatisticsSpacer" />
<TextView
android:id="@+id/marker_detail_max_grade_value"
style="@style/MarkerDetailStatisticsValue" />
</TableRow>
<include layout="@layout/stats_core" />
</TableLayout>
</LinearLayout>
</ScrollView>
+7 -10
View File
@@ -18,10 +18,7 @@ limitations under the License.
android:layout_height="fill_parent"
android:layout_width="fill_parent"
android:orientation="vertical" >
<ScrollView
android:layout_height="0dp"
android:layout_weight="1"
android:layout_width="fill_parent" >
<ScrollView style="@style/ScrollView.WithBottomButtons" >
<LinearLayout
android:layout_height="wrap_content"
android:layout_width="fill_parent"
@@ -34,7 +31,7 @@ limitations under the License.
android:orientation="vertical" >
<TextView
android:text="@string/marker_edit_type"
style="@style/EditLabel" />
style="@style/TextMedium" />
<RadioGroup
android:id="@+id/marker_edit_type"
android:layout_height="wrap_content"
@@ -42,16 +39,16 @@ limitations under the License.
<RadioButton
android:id="@+id/marker_edit_type_statistics"
android:text="@string/marker_edit_type_statistics"
style="@style/EditLabel" />
style="@style/TextMedium" />
<RadioButton
android:id="@+id/marker_edit_type_waypoint"
android:text="@string/marker_edit_type_waypoint"
style="@style/EditLabel" />
style="@style/TextMedium" />
</RadioGroup>
</LinearLayout>
<TextView
android:text="@string/generic_name"
style="@style/EditLabel" />
style="@style/TextMedium" />
<EditText
android:hint="@string/generic_name"
android:id="@+id/marker_edit_name"
@@ -63,7 +60,7 @@ limitations under the License.
android:orientation="vertical" >
<TextView
android:text="@string/marker_edit_marker_type"
style="@style/EditLabel" />
style="@style/TextMedium" />
<AutoCompleteTextView
android:hint="@string/marker_edit_marker_type_hint"
android:id="@+id/marker_edit_marker_type"
@@ -71,7 +68,7 @@ limitations under the License.
style="@style/EditCategory" />
<TextView
android:text="@string/generic_description"
style="@style/EditLabel" />
style="@style/TextMedium" />
<EditText
android:hint="@string/generic_description"
android:id="@+id/marker_edit_description"
+2 -2
View File
@@ -14,7 +14,7 @@ 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.
-->
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
<merge xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="fill_parent"
android:layout_width="fill_parent" >
<ListView
@@ -26,4 +26,4 @@ limitations under the License.
android:text="@string/marker_list_empty_message"
style="@style/ListEmptyTextView" >
</TextView>
</FrameLayout>
</merge>
-57
View File
@@ -1,57 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2010 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:id="@+id/elevation_root"
android:orientation="vertical"
android:layout_height="fill_parent"
android:layout_width="fill_parent">
<LinearLayout android:id="@+id/elevation_chart"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
</LinearLayout>
<RelativeLayout android:id="@+id/elevation_zoom_layout"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="10dp">
<ZoomControls android:id="@+id/elevation_zoom"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_alignParentRight="true"/>
</RelativeLayout>
<LinearLayout android:id="@+id/elevation_busypane"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="3dp"
android:visibility="gone">
<ProgressBar
android:layout_weight="1"
android:layout_height="0dp"
android:layout_width="wrap_content"
android:maxWidth="80dp"
android:maxHeight="80dp"
android:minWidth="80dp"
android:minHeight="80dp"
android:layout_gravity="center"/>
</LinearLayout>
</RelativeLayout>
-62
View File
@@ -1,62 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2010 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:id="@+id/screen"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<com.google.android.maps.MapView android:id="@+id/map"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:clickable="true"
android:enabled="true"
android:focusable="true"
android:focusableInTouchMode="true"
android:apiKey="0TXoRmxTinrZKQ9JSazj-9A34XX6_lXsRvTpXWA"/>
<!-- corresponding certificate md5: 81:DF:A2:63:53:C7:6B:1E:6C:24:62:D4:91:1C:36:3A -->
<LinearLayout android:id="@+id/messagepane"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@drawable/list_bar"
android:padding="3dp"
android:visibility="gone">
<TextView android:id="@+id/messagetext"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:textSize="16dp"
android:textColor="#fff"
android:text="@string/gps_wait_for_fix"
android:layout_weight="1"/>
</LinearLayout>
<LinearLayout android:id="@+id/busypane"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="3dp"
android:visibility="gone">
<ProgressBar
android:layout_weight="1"
android:layout_height="0dp"
android:layout_width="wrap_content"
android:maxWidth="80dp"
android:maxHeight="80dp"
android:minWidth="80dp"
android:minHeight="80dp"
android:layout_gravity="center"/>
</LinearLayout>
</RelativeLayout>
+2 -2
View File
@@ -14,7 +14,7 @@ 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.
-->
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
<merge xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="fill_parent"
android:layout_width="fill_parent" >
<ListView
@@ -26,4 +26,4 @@ limitations under the License.
android:text="@string/search_list_empty_message"
style="@style/ListEmptyTextView" >
</TextView>
</FrameLayout>
</merge>
+50 -64
View File
@@ -14,67 +14,53 @@ 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
android:layout_height="0dp"
android:layout_weight="1"
android:layout_width="fill_parent">
<LinearLayout
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:orientation="vertical">
<!-- Sensor state -->
<TextView
android:text="@string/menu_sensor_state"
style="@style/SensorStateLabel"/>
<TextView
android:id="@+id/sensor_state"
style="@style/SensorStateValue"/>
<!-- Last sensor time -->
<TextView
android:text="@string/sensor_state_last_sensor_time"
style="@style/SensorStateLabel"/>
<TextView
android:id="@+id/sensor_state_last_sensor_time"
style="@style/SensorStateValue"/>
<!-- Power -->
<TextView
android:text="@string/sensor_state_power"
style="@style/SensorStateLabel"/>
<TextView
android:id="@+id/sensor_state_power"
style="@style/SensorStateValue"/>
<!-- Cadence -->
<TextView
android:text="@string/sensor_state_cadence"
style="@style/SensorStateLabel"/>
<TextView
android:id="@+id/sensor_state_cadence"
style="@style/SensorStateValue"/>
<!-- Heart rate -->
<TextView
android:text="@string/sensor_state_heart_rate"
style="@style/SensorStateLabel"/>
<TextView
android:id="@+id/sensor_state_heart_rate"
style="@style/SensorStateValue"/>
<!-- Battery level -->
<TextView
android:text="@string/sensor_state_battery"
style="@style/SensorStateLabel"/>
<TextView
android:id="@+id/sensor_state_battery"
style="@style/SensorStateValue"/>
</LinearLayout>
</ScrollView>
</LinearLayout>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
style="@style/ScrollView" >
<LinearLayout
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:orientation="vertical"
android:padding="8dp" >
<TextView
android:text="@string/menu_sensor_state"
style="@style/TextMedium" />
<TextView
android:id="@+id/sensor_state"
style="@style/SensorStateValue" />
<!-- Last sensor time -->
<TextView
android:text="@string/sensor_state_last_sensor_time"
style="@style/TextMedium" />
<TextView
android:id="@+id/sensor_state_last_sensor_time"
style="@style/SensorStateValue" />
<!-- Power -->
<TextView
android:text="@string/sensor_state_power"
style="@style/TextMedium" />
<TextView
android:id="@+id/sensor_state_power"
style="@style/SensorStateValue" />
<!-- Cadence -->
<TextView
android:text="@string/sensor_state_cadence"
style="@style/TextMedium" />
<TextView
android:id="@+id/sensor_state_cadence"
style="@style/SensorStateValue" />
<!-- Heart rate -->
<TextView
android:text="@string/sensor_state_heart_rate"
style="@style/TextMedium" />
<TextView
android:id="@+id/sensor_state_heart_rate"
style="@style/SensorStateValue" />
<!-- Battery level -->
<TextView
android:text="@string/sensor_state_battery"
style="@style/TextMedium" />
<TextView
android:id="@+id/sensor_state_battery"
style="@style/SensorStateValue" />
</LinearLayout>
</ScrollView>
+39 -344
View File
@@ -14,349 +14,44 @@ 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:id="@+id/stats_root"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_width="fill_parent">
<ScrollView
android:id="@+id/scrolly"
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
style="@style/ScrollView" >
<TableLayout
android:layout_height="wrap_content"
android:layout_width="fill_parent">
<TableLayout
android:id="@+id/stats_table"
android:layout_height="wrap_content"
android:stretchColumns="1,4"
android:layout_width="fill_parent">
<!-- Layout the speed large on it's own line. -->
<TableRow>
<TextView
android:id="@+id/speed_label"
android:layout_span="5"
android:text="@string/stat_speed" />
</TableRow>
<TableRow
android:background="@color/stat_label_background">
<TextView
style="@style/StatsRegister.Big"
android:id="@+id/speed_register"
android:layout_column="1"
android:layout_span="4"/>
<LinearLayout
android:gravity="bottom"
android:layout_column="5"
android:layout_width="wrap_content"
android:lines="1"
android:orientation="vertical">
<TextView
android:layout_height="fill_parent"
android:layout_width="fill_parent" />
<TextView
android:id="@+id/speed_unit_label_top"
style="@style/StatsUnit" />
<TextView
style="@style/StatsDivider" />
<TextView
android:id="@+id/speed_unit_label_bottom"
style="@style/StatsUnit" />
</LinearLayout>
</TableRow>
<!-- Total distance and max speed -->
<TableRow
android:padding="1dp">
<TextView
android:id="@+id/total_distance_label"
android:layout_column="1"
android:layout_span="3"
android:text="@string/stat_total_distance" />
<TextView
android:id="@+id/max_speed_label"
android:layout_column="4"
android:layout_span="2"
android:text="@string/stat_max_speed" />
</TableRow>
<TableRow
android:background="@color/stat_label_background">
<TextView
style="@style/StatsRegister"
android:id="@+id/total_distance_register"
android:layout_column="1" />
<TextView
android:id="@+id/total_distance_unit_label"
android:layout_column="2"
style="@style/StatsUnitSolo" />
<!-- TODO 4/08/2009
The following is a bad hack to get a spacer the same size as the
text. Ideally this should just be a View, however I don't know how to
set the view height properly. fill_parent on this element causes as
NullPointerException. This same filler is repeated on each line.-->
<TextView
style="@style/StatsSpacer"
android:layout_column="3"/>
<TextView
android:id="@+id/max_speed_register"
style="@style/StatsRegister"
android:layout_column="4" />
<LinearLayout
android:gravity="bottom"
android:layout_column="5"
android:layout_width="wrap_content"
android:lines="1"
android:orientation="vertical">
<TextView
android:id="@+id/max_speed_unit_label_top"
style="@style/StatsUnit" />
<TextView
style="@style/StatsDivider" />
<TextView
android:id="@+id/max_speed_unit_label_bottom"
style="@style/StatsUnit" />
</LinearLayout>
</TableRow>
<!-- Total time and average speed -->
<TableRow>
<TextView
android:id="@+id/track_time_label"
android:layout_column="1"
android:layout_span="3"
android:text="@string/stat_total_time" />
<TextView
android:id="@+id/average_speed_label"
android:layout_column="4"
android:layout_span="2"
android:text="@string/stat_average_speed" />
</TableRow>
<TableRow
android:background="@color/stat_label_background">
<TextView
android:id="@+id/total_time_register"
android:layout_column="1"
android:layout_height="wrap_content"
android:layout_span="2"
android:layout_width="fill_parent"
style="@style/StatsRegister" />
<TextView
style="@style/StatsSpacer"
android:layout_column="3"/>
<TextView
android:id="@+id/average_speed_register"
android:layout_column="4"
style="@style/StatsRegister" />
<LinearLayout
android:gravity="bottom"
android:layout_column="5"
android:layout_width="wrap_content"
android:lines="1"
android:orientation="vertical">
<TextView
android:id="@+id/average_speed_unit_label_top"
style="@style/StatsUnit" />
<TextView
style="@style/StatsDivider" />
<TextView
android:id="@+id/average_speed_unit_label_bottom"
style="@style/StatsUnit" />
</LinearLayout>
</TableRow>
<!-- Moving time and average moving speed -->
<TableRow>
<TextView
android:id="@+id/moving_time_label"
android:layout_column="1"
android:layout_span="3"
android:text="@string/stat_moving_time" />
<TextView
android:id="@+id/average_moving_speed_label"
android:layout_column="4"
android:layout_span="2"
android:text="@string/stat_average_moving_speed" />
</TableRow>
<TableRow
android:background="@color/stat_label_background">
<TextView
android:id="@+id/moving_time_register"
android:layout_column="1"
android:layout_height="wrap_content"
android:layout_span="2"
android:layout_width="fill_parent"
style="@style/StatsRegister" />
<TextView
style="@style/StatsSpacer"
android:layout_column="3"/>
<TextView
android:id="@+id/average_moving_speed_register"
style="@style/StatsRegister" />
<LinearLayout
android:gravity="bottom"
android:layout_column="5"
android:layout_width="wrap_content"
android:lines="1"
android:orientation="vertical">
<TextView
android:id="@+id/average_moving_speed_unit_label_top"
style="@style/StatsUnit" />
<TextView
style="@style/StatsDivider" />
<TextView
android:id="@+id/average_moving_speed_unit_label_bottom"
style="@style/StatsUnit" />
</LinearLayout>
</TableRow>
<!-- Elevation and elevation gain -->
<TableRow>
<TextView
android:id="@+id/elevation_label"
android:layout_column="1"
android:layout_span="3"
android:text="@string/stat_elevation" />
<TextView
android:id="@+id/elevation_gain_label"
android:layout_column="4"
android:layout_span="2"
android:text="@string/stat_elevation_gain" />
</TableRow>
<TableRow
android:background="@color/stat_label_background">
<TextView
android:id="@+id/elevation_register"
android:layout_column="1"
style="@style/StatsRegister" />
<TextView
android:id="@+id/elevation_unit_label"
android:layout_column="2"
style="@style/StatsUnitSolo" />
<TextView
style="@style/StatsSpacer"
android:layout_column="3"/>
<TextView
android:id="@+id/elevation_gain_register"
android:layout_column="4"
style="@style/StatsRegister" />
<TextView
android:id="@+id/elevation_gain_unit_label"
android:layout_column="5"
style="@style/StatsUnitSolo" />
</TableRow>
<!-- Min and max elevation -->
<TableRow>
<TextView
android:id="@+id/min_elevation_label"
android:layout_column="1"
android:layout_span="3"
android:text="@string/stat_min_elevation" />
<TextView
android:id="@+id/max_elevation_label"
android:layout_column="4"
android:layout_span="3"
android:text="@string/stat_max_elevation" />
</TableRow>
<TableRow
android:background="@color/stat_label_background">
<TextView
android:id="@+id/min_elevation_register"
android:layout_column="1"
style="@style/StatsRegister" />
<TextView
android:id="@+id/min_elevation_unit_label"
android:layout_column="2"
style="@style/StatsUnitSolo" />
<TextView
style="@style/StatsSpacer"
android:layout_column="3"/>
<TextView
android:id="@+id/max_elevation_register"
android:layout_column="4"
style="@style/StatsRegister" />
<TextView
android:id="@+id/max_elevation_unit_label"
android:layout_column="5"
style="@style/StatsUnitSolo" />
</TableRow>
<!-- Min and max grade -->
<TableRow>
<TextView
android:id="@+id/min_grade_label"
android:layout_column="1"
android:layout_span="3"
android:text="@string/stat_min_grade" />
<TextView
android:id="@+id/max_grade_label"
android:layout_column="4"
android:layout_span="2"
android:text="@string/stat_max_grade" />
</TableRow>
<TableRow
android:background="@color/stat_label_background">
<TextView
android:id="@+id/min_grade_register"
android:layout_column="1"
android:layout_span="2"
style="@style/StatsRegister" />
<TextView
style="@style/StatsSpacer"
android:layout_column="3"/>
<TextView
android:id="@+id/max_grade_register"
android:layout_column="4"
android:layout_span="2"
style="@style/StatsRegister" />
</TableRow>
<!-- Latitude and Longitude -->
<TableRow>
<TextView
android:layout_column="1"
android:layout_span="3"
android:text="@string/stat_latitude" />
<TextView
android:layout_column="4"
android:layout_span="2"
android:text="@string/stat_longitude" />
</TableRow>
<TableRow
android:background="@color/stat_label_background">
<TextView
android:id="@+id/latitude_register"
android:layout_column="1"
android:layout_span="2"
style="@style/StatsRegister.Small" />
<TextView
style="@style/StatsSpacer"
android:layout_column="3"
android:textSize="25sp" />
<TextView
android:id="@+id/longitude_register"
android:layout_column="4"
android:layout_span="2"
style="@style/StatsRegister.Small" />
</TableRow>
</TableLayout>
</ScrollView>
<LinearLayout android:id="@+id/stats_busypane"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="3dp"
android:visibility="gone">
<ProgressBar
android:layout_weight="1"
android:layout_height="0dp"
android:layout_width="wrap_content"
android:maxWidth="80dp"
android:maxHeight="80dp"
android:minWidth="80dp"
android:minHeight="80dp"
android:layout_gravity="center"/>
</LinearLayout>
</RelativeLayout>
android:padding="8dp"
android:shrinkColumns="0,2"
android:stretchColumns="0,2" >
<!-- Speed on one line -->
<TableRow>
<TextView
android:id="@+id/stats_speed_label"
style="@style/StatsLabel" />
</TableRow>
<TableRow>
<TextView
android:id="@+id/stats_speed_value"
style="@style/StatsValue" />
</TableRow>
<include layout="@layout/stats_core" />
<!-- Latitude and longitude -->
<TableRow>
<TextView
android:text="@string/stats_latitude"
style="@style/StatsLabel" />
<TextView
android:layout_column="2"
android:text="@string/stats_longitude"
style="@style/StatsLabel" />
</TableRow>
<TableRow>
<TextView
android:id="@+id/stats_latitude_value"
style="@style/StatsValue" />
<TextView style="@style/StatsSpacer" />
<TextView
android:id="@+id/stats_longitude_value"
style="@style/StatsValue" />
</TableRow>
</TableLayout>
</ScrollView>
+132
View File
@@ -0,0 +1,132 @@
<?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" >
<!-- Total distance and max speed (fastest pace) -->
<TableRow>
<TextView
android:text="@string/stats_total_distance"
style="@style/StatsLabel" />
<TextView
android:id="@+id/stats_max_speed_label"
android:layout_column="2"
style="@style/StatsLabel" />
</TableRow>
<TableRow>
<TextView
android:id="@+id/stats_total_distance_value"
style="@style/StatsValue" />
<TextView style="@style/StatsSpacer" />
<TextView
android:id="@+id/stats_max_speed_value"
style="@style/StatsValue" />
</TableRow>
<!-- Total time and average speed (average pace) -->
<TableRow>
<TextView
android:text="@string/stats_total_time"
style="@style/StatsLabel" />
<TextView
android:id="@+id/stats_average_speed_label"
android:layout_column="2"
style="@style/StatsLabel" />
</TableRow>
<TableRow>
<TextView
android:id="@+id/stats_total_time_value"
style="@style/StatsValue" />
<TextView style="@style/StatsSpacer" />
<TextView
android:id="@+id/stats_average_speed_value"
style="@style/StatsValue" />
</TableRow>
<!-- Moving time and average moving speed (average moving pace) -->
<TableRow>
<TextView
android:text="@string/stats_moving_time"
style="@style/StatsLabel" />
<TextView
android:id="@+id/stats_average_moving_speed_label"
android:layout_column="2"
style="@style/StatsLabel" />
</TableRow>
<TableRow>
<TextView
android:id="@+id/stats_moving_time_value"
style="@style/StatsValue" />
<TextView style="@style/StatsSpacer" />
<TextView
android:id="@+id/stats_average_moving_speed_value"
style="@style/StatsValue" />
</TableRow>
<!-- Elevation and elevation gain -->
<TableRow>
<TextView
android:text="@string/stats_elevation"
style="@style/StatsLabel" />
<TextView
android:layout_column="2"
android:text="@string/stats_elevation_gain"
style="@style/StatsLabel" />
</TableRow>
<TableRow>
<TextView
android:id="@+id/stats_elevation_value"
style="@style/StatsValue" />
<TextView style="@style/StatsSpacer" />
<TextView
android:id="@+id/stats_elevation_gain_value"
style="@style/StatsValue" />
</TableRow>
<!-- Min and max elevation -->
<TableRow>
<TextView
android:text="@string/stats_min_elevation"
style="@style/StatsLabel" />
<TextView
android:layout_column="2"
android:text="@string/stats_max_elevation"
style="@style/StatsLabel" />
</TableRow>
<TableRow>
<TextView
android:id="@+id/stats_min_elevation_value"
style="@style/StatsValue" />
<TextView style="@style/StatsSpacer" />
<TextView
android:id="@+id/stats_max_elevation_value"
style="@style/StatsValue" />
</TableRow>
<!-- Min and max grade -->
<TableRow>
<TextView
android:text="@string/stats_min_grade"
style="@style/StatsLabel" />
<TextView
android:layout_column="2"
android:text="@string/stats_max_grade"
style="@style/StatsLabel" />
</TableRow>
<TableRow>
<TextView
android:id="@+id/stats_min_grade_value"
style="@style/StatsValue" />
<TextView style="@style/StatsSpacer" />
<TextView
android:id="@+id/stats_max_grade_value"
style="@style/StatsValue" />
</TableRow>
</merge>
+4 -7
View File
@@ -18,10 +18,7 @@ limitations under the License.
android:layout_height="fill_parent"
android:layout_width="fill_parent"
android:orientation="vertical" >
<ScrollView
android:layout_height="0dp"
android:layout_weight="1"
android:layout_width="fill_parent" >
<ScrollView style="@style/ScrollView.WithBottomButtons" >
<LinearLayout
android:layout_height="wrap_content"
android:layout_width="fill_parent"
@@ -29,7 +26,7 @@ limitations under the License.
android:padding="8dp" >
<TextView
android:text="@string/generic_name"
style="@style/EditLabel" />
style="@style/TextMedium" />
<EditText
android:drawableLeft="@drawable/track"
android:hint="@string/generic_name"
@@ -38,7 +35,7 @@ limitations under the License.
style="@style/EditName" />
<TextView
android:text="@string/track_edit_activity_type"
style="@style/EditLabel" />
style="@style/TextMedium" />
<AutoCompleteTextView
android:hint="@string/track_edit_activity_type_hint"
android:id="@+id/track_edit_activity_type"
@@ -46,7 +43,7 @@ limitations under the License.
style="@style/EditCategory" />
<TextView
android:text="@string/generic_description"
style="@style/EditLabel" />
style="@style/TextMedium" />
<EditText
android:hint="@string/generic_description"
android:id="@+id/track_edit_description"
+3 -3
View File
@@ -14,7 +14,7 @@ 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.
-->
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
<merge xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="fill_parent"
android:layout_width="fill_parent" >
<ListView
@@ -26,7 +26,7 @@ limitations under the License.
android:id="@+id/track_list_empty"
android:layout_height="fill_parent"
android:layout_width="fill_parent"
android:orientation="vertical">
android:orientation="vertical" >
<TextView
android:text="@string/track_list_empty_message"
style="@style/ListEmptyTextView" >
@@ -40,4 +40,4 @@ limitations under the License.
android:src="@drawable/menu_record_track"
style="@android:style/Widget.DeviceDefault.ImageButton" />
</LinearLayout>
</FrameLayout>
</merge>
+60 -66
View File
@@ -14,77 +14,71 @@ 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_width="fill_parent"
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:background="@drawable/appwidget_background"
android:layout_height="fill_parent"
android:layout_width="fill_parent"
android:paddingBottom="5dp"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:paddingTop="5dp"
android:paddingBottom="5dp">
<LinearLayout
android:paddingTop="5dp" >
<ImageButton
android:background="@android:color/transparent"
android:contentDescription="@string/my_tracks_app_name"
android:id="@+id/appwidget_button"
android:layout_height="fill_parent"
android:layout_width="fill_parent"
android:background="@drawable/appwidget_background">
<ImageButton
android:id="@+id/appwidget_button"
android:layout_height="fill_parent"
android:layout_width="wrap_content"
android:background="@android:color/transparent"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:src="@drawable/appwidget_button_disabled" />
android:layout_width="wrap_content"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:src="@drawable/appwidget_button_disabled" />
<LinearLayout
android:clickable="true"
android:id="@+id/appwidget_track_statistics"
android:layout_height="fill_parent"
android:layout_weight="1"
android:layout_width="0dp"
android:orientation="vertical"
android:paddingLeft="16dp" >
<LinearLayout
android:id="@+id/appwidget_track_statistics"
android:layout_height="fill_parent"
android:layout_width="0dp"
android:layout_weight="1"
android:clickable="true"
android:orientation="vertical"
android:paddingLeft="15dp">
<LinearLayout
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:orientation="horizontal">
<TextView
style="@style/WidgetTextView.Value"
android:id="@+id/appwidget_distance_text" />
<TextView
style="@style/WidgetTextView"
android:text="@string/stat_total_distance" />
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="1dp"
android:background="@color/appwidget_hr" />
<LinearLayout
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:orientation="horizontal"
android:paddingBottom="2dp">
<TextView
style="@style/WidgetTextView.Value"
android:id="@+id/appwidget_time_text" />
<TextView
style="@style/WidgetTextView"
android:text="@string/stat_moving_time" />
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="1dp"
android:background="@color/appwidget_hr" />
<LinearLayout
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:orientation="horizontal">
<TextView
style="@style/WidgetTextView.Value"
android:id="@+id/appwidget_speed_text" />
<TextView
style="@style/WidgetTextView"
android:text="@string/stat_speed" />
</LinearLayout>
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:orientation="horizontal" >
<TextView
android:id="@+id/appwidget_distance_text"
style="@style/TrackWidgetValue" />
<TextView
android:text="@string/stats_total_distance"
style="@style/TextSmall" />
</LinearLayout>
<LinearLayout
android:background="@color/appwidget_hr"
android:layout_height="1dp"
android:layout_width="fill_parent" />
<LinearLayout
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:orientation="horizontal" >
<TextView
android:id="@+id/appwidget_time_text"
style="@style/TrackWidgetValue" />
<TextView
android:text="@string/stats_moving_time"
style="@style/TextSmall" />
</LinearLayout>
<LinearLayout
android:background="@color/appwidget_hr"
android:layout_height="1dp"
android:layout_width="fill_parent" />
<LinearLayout
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:orientation="horizontal" >
<TextView
android:id="@+id/appwidget_speed_text"
style="@style/TrackWidgetValue" />
<TextView
android:text="@string/stats_speed"
style="@style/TextSmall" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
+14 -28
View File
@@ -15,13 +15,12 @@ See the License for the specific language governing permissions and
limitations under the License.
-->
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="fill_parent"
android:layout_margin="8dp"
android:layout_width="fill_parent" >
style="@style/ScrollView" >
<LinearLayout
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:orientation="vertical" >
android:orientation="vertical"
android:padding="8dp" >
<!-- Google Maps result -->
<LinearLayout
android:id="@+id/upload_result_maps_result"
@@ -36,20 +35,17 @@ limitations under the License.
android:layout_width="wrap_content"
android:src="@drawable/success" />
<LinearLayout
android:layout_gravity="center_vertical"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:orientation="vertical"
android:paddingLeft="8dp" >
<TextView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="@string/send_google_maps"
style="@android:style/TextAppearance.DeviceDefault.Medium" />
style="@style/TextMedium" />
<TextView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="@string/send_google_maps_url"
style="@android:style/TextAppearance.DeviceDefault.Small" />
style="@style/TextSmall" />
</LinearLayout>
</LinearLayout>
<!-- Google Fusion Tables result -->
@@ -66,20 +62,17 @@ limitations under the License.
android:layout_width="wrap_content"
android:src="@drawable/success" />
<LinearLayout
android:layout_gravity="center_vertical"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:orientation="vertical"
android:paddingLeft="8dp" >
<TextView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="@string/send_google_fusion_tables"
style="@android:style/TextAppearance.DeviceDefault.Medium" />
style="@style/TextMedium" />
<TextView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="@string/send_google_fusion_tables_url"
style="@android:style/TextAppearance.DeviceDefault.Small" />
style="@style/TextSmall" />
</LinearLayout>
</LinearLayout>
<!-- Google Docs result -->
@@ -96,36 +89,29 @@ limitations under the License.
android:layout_width="wrap_content"
android:src="@drawable/success" />
<LinearLayout
android:layout_gravity="center_vertical"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:orientation="vertical"
android:paddingLeft="8dp" >
<TextView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="@string/send_google_docs"
style="@android:style/TextAppearance.DeviceDefault.Medium" />
style="@style/TextMedium" />
<TextView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="@string/send_google_docs_url"
style="@android:style/TextAppearance.DeviceDefault.Small" />
style="@style/TextSmall" />
</LinearLayout>
</LinearLayout>
<!-- Footer -->
<TextView
android:id="@+id/upload_result_success_footer"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:padding="8dp"
android:text="@string/send_google_success_footer"
style="@android:style/TextAppearance.DeviceDefault.Small" />
style="@style/TextSmall" />
<TextView
android:id="@+id/upload_result_error_footer"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:padding="8dp"
android:text="@string/send_google_error"
style="@android:style/TextAppearance.DeviceDefault.Medium" />
style="@style/TextMedium" />
</LinearLayout>
</ScrollView>
+13 -33
View File
@@ -15,27 +15,21 @@ See the License for the specific language governing permissions and
limitations under the License.
-->
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="fill_parent"
android:layout_width="fill_parent" >
style="@style/ScrollView" >
<TableLayout
android:layout_height="wrap_content"
android:layout_margin="8dp"
android:layout_width="fill_parent"
android:padding="8dp"
android:stretchColumns="1" >
<TableRow android:id="@+id/send_google_maps_row" >
<ImageView
android:contentDescription="@string/send_google_maps"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:src="@drawable/maps_icon" />
android:src="@drawable/maps_icon"
style="@style/UploadServiceChooserImageView" />
<CheckBox
android:id="@+id/send_google_maps"
android:layout_gravity="center_vertical"
android:layout_height="wrap_content"
android:layout_marginLeft="8dp"
android:layout_width="0dp"
android:text="@string/send_google_maps"
style="@android:style/TextAppearance.DeviceDefault.Medium" />
style="@style/UploadServiceChooserCheckBox" />
</TableRow>
<TableRow android:id="@+id/send_google_maps_option_row" >
<RadioGroup
@@ -45,47 +39,33 @@ limitations under the License.
android:layout_width="0dp" >
<RadioButton
android:id="@+id/send_google_new_map"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="@string/send_google_new_map"
style="@android:style/TextAppearance.DeviceDefault.Medium" />
style="@style/TextMedium" />
<RadioButton
android:id="@+id/send_google_existing_map"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="@string/send_google_existing_map"
style="@android:style/TextAppearance.DeviceDefault.Medium" />
style="@style/TextMedium" />
</RadioGroup>
</TableRow>
<TableRow android:id="@+id/send_google_fusion_tables_row" >
<ImageView
android:contentDescription="@string/send_google_fusion_tables"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:src="@drawable/googledocs_icon" />
android:src="@drawable/googledocs_icon"
style="@style/UploadServiceChooserImageView" />
<CheckBox
android:id="@+id/send_google_fusion_tables"
android:layout_gravity="center_vertical"
android:layout_height="wrap_content"
android:layout_marginLeft="8dp"
android:layout_width="0dp"
android:text="@string/send_google_fusion_tables"
style="@android:style/TextAppearance.DeviceDefault.Medium" />
style="@style/UploadServiceChooserCheckBox" />
</TableRow>
<TableRow android:id="@+id/send_google_docs_row" >
<ImageView
android:contentDescription="@string/send_google_docs"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:src="@drawable/googledocs_icon" />
android:src="@drawable/googledocs_icon"
style="@style/UploadServiceChooserImageView" />
<CheckBox
android:id="@+id/send_google_docs"
android:layout_gravity="center_vertical"
android:layout_height="fill_parent"
android:layout_marginLeft="8dp"
android:layout_width="0dp"
android:text="@string/send_google_docs"
style="@android:style/TextAppearance.DeviceDefault.Medium" />
style="@style/UploadServiceChooserCheckBox" />
</TableRow>
</TableLayout>
</ScrollView>
+2 -3
View File
@@ -15,7 +15,6 @@ See the License for the specific language governing permissions and
limitations under the License.
-->
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="fill_parent"
android:layout_width="fill_parent" >
<include layout="@layout/help_content"/>
style="@style/ScrollView" >
<include layout="@layout/help_content" />
</ScrollView>
+3 -3
View File
@@ -18,16 +18,16 @@ limitations under the License.
<item
android:icon="@drawable/menu_show_on_map"
android:id="@+id/list_context_menu_show_on_map"
android:showAsAction="always"
android:showAsAction="ifRoom"
android:title="@string/menu_show_on_map"/>
<item
android:icon="@drawable/menu_edit"
android:id="@+id/list_context_menu_edit"
android:showAsAction="always"
android:showAsAction="ifRoom"
android:title="@string/menu_edit"/>
<item
android:icon="@drawable/menu_delete"
android:id="@+id/list_context_menu_delete"
android:showAsAction="always"
android:showAsAction="ifRoom"
android:title="@string/menu_delete"/>
</menu>
+2 -2
View File
@@ -18,12 +18,12 @@ limitations under the License.
<item
android:icon="@drawable/menu_show_on_map"
android:id="@+id/marker_detail_show_on_map"
android:showAsAction="always"
android:showAsAction="ifRoom"
android:title="@string/menu_show_on_map"/>
<item
android:icon="@drawable/menu_edit"
android:id="@+id/marker_detail_edit"
android:showAsAction="always"
android:showAsAction="ifRoom"
android:title="@string/menu_edit"/>
<item
android:icon="@drawable/menu_delete"
+1 -1
View File
@@ -18,7 +18,7 @@ limitations under the License.
<item
android:icon="@drawable/menu_insert_marker"
android:id="@+id/marker_list_insert_marker"
android:showAsAction="always"
android:showAsAction="ifRoom"
android:title="@string/menu_insert_marker"/>
<item
android:actionViewClass="android.widget.SearchView"
+12 -9
View File
@@ -18,22 +18,22 @@ limitations under the License.
<item
android:icon="@drawable/menu_stop_recording"
android:id="@+id/track_detail_stop_recording"
android:showAsAction="always"
android:showAsAction="ifRoom"
android:title="@string/menu_stop_recording"/>
<item
android:icon="@drawable/menu_insert_marker"
android:id="@+id/track_detail_insert_marker"
android:showAsAction="always"
android:showAsAction="ifRoom"
android:title="@string/menu_insert_marker"/>
<item
android:icon="@drawable/menu_play"
android:id="@+id/track_detail_play"
android:showAsAction="always"
android:showAsAction="ifRoom"
android:title="@string/menu_play"/>
<item
android:icon="@drawable/menu_share"
android:id="@+id/track_detail_share"
android:showAsAction="always"
android:showAsAction="ifRoom"
android:title="@string/menu_share">
<menu>
<item
@@ -49,13 +49,16 @@ limitations under the License.
</menu>
</item>
<item
android:icon="@drawable/ic_menu_waypoints"
android:icon="@drawable/menu_markers"
android:id="@+id/track_detail_markers"
android:showAsAction="ifRoom"
android:title="@string/menu_markers"/>
<item
android:icon="@drawable/menu_send_google"
android:id="@+id/track_detail_send_google"
android:title="@string/menu_send_google"/>
<item
android:icon="@drawable/menu_save"
android:id="@+id/track_detail_save"
android:title="@string/menu_save">
<menu>
@@ -74,19 +77,19 @@ limitations under the License.
android:id="@+id/track_detail_delete"
android:title="@string/menu_delete"/>
<item
android:icon="@android:drawable/ic_menu_mylocation"
android:icon="@drawable/menu_my_location"
android:id="@+id/track_detail_my_location"
android:title="@string/menu_my_location"/>
<item
android:icon="@android:drawable/ic_menu_mapmode"
android:icon="@drawable/menu_satellite_mode"
android:id="@+id/track_detail_satellite_mode"
android:title="@string/menu_satellite_mode"/>
<item
android:icon="@drawable/ic_menu_chartsettings"
android:icon="@drawable/menu_chart_settings"
android:id="@+id/track_detail_chart_settings"
android:title="@string/menu_chart_settings"/>
<item
android:icon="@drawable/ic_menu_sensorstatus"
android:icon="@drawable/menu_sensor_state"
android:id="@+id/track_detail_sensor_state"
android:title="@string/menu_sensor_state"/>
<item
+6 -2
View File
@@ -18,12 +18,12 @@ limitations under the License.
<item
android:icon="@drawable/menu_record_track"
android:id="@+id/track_list_record_track"
android:showAsAction="always"
android:showAsAction="ifRoom"
android:title="@string/menu_record_track"/>
<item
android:icon="@drawable/menu_stop_recording"
android:id="@+id/track_list_stop_recording"
android:showAsAction="always"
android:showAsAction="ifRoom"
android:title="@string/menu_stop_recording"/>
<item
android:actionViewClass="android.widget.SearchView"
@@ -32,9 +32,11 @@ limitations under the License.
android:showAsAction="always|collapseActionView"
android:title="@string/menu_search"/>
<item
android:icon="@drawable/menu_import_all"
android:id="@+id/track_list_import_all"
android:title="@string/menu_import_all"/>
<item
android:icon="@drawable/menu_export_all"
android:id="@+id/track_list_export_all"
android:title="@string/menu_export_all">
<menu>
@@ -45,9 +47,11 @@ limitations under the License.
</menu>
</item>
<item
android:icon="@drawable/menu_delete_all"
android:id="@+id/track_list_delete_all"
android:title="@string/menu_delete_all"/>
<item
android:icon="@drawable/menu_aggregated_statistics"
android:id="@+id/track_list_aggregated_statistics"
android:title="@string/menu_aggregated_statistics"/>
<item
+33
View File
@@ -0,0 +1,33 @@
<?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.
-->
<resources>
<!-- The style for large size text -->
<style name="TextLarge" parent="@android:style/TextAppearance.DeviceDefault.Large">
<item name="android:layout_height">wrap_content</item>
<item name="android:layout_width">wrap_content</item>
</style>
<!-- The style for medium size text -->
<style name="TextMedium" parent="@android:style/TextAppearance.DeviceDefault.Medium">
<item name="android:layout_height">wrap_content</item>
<item name="android:layout_width">wrap_content</item>
</style>
<!-- The style for large size text -->
<style name="TextSmall" parent="@android:style/TextAppearance.DeviceDefault.Small">
<item name="android:layout_height">wrap_content</item>
<item name="android:layout_width">wrap_content</item>
</style>
</resources>
+3 -3
View File
@@ -17,13 +17,13 @@ limitations under the License.
<resources>
<color name="black">#FF000000</color>
<color name="blue">#FF0000FF</color>
<color name="green">#FF00FF00</color>
<color name="gray">#FFAAAAAA</color>
<color name="red">#FFFF0000</color>
<color name="stat_label_background">#FFF0F0F0</color>
<color name="stat_label_text">#FF0F0F0F</color>
<color name="white">#FFFFFFFF</color>
<!-- holo_orange_dark -->
<color name="background_warning">#FFFF8800</color>
<!-- Chart colors by series. -->
<!-- Green and a transparent green -->
<color name="elevation_border">#FF339933</color>
+52 -50
View File
@@ -494,7 +494,7 @@ limitations under the License.
Accuracy (m)
</string>
<string name="description_location_altitude"
translation_description="Label for location altitude in degrees.">
translation_description="Label for location altitude in meters.">
Altitude (m)
</string>
<string name="description_location_bearing"
@@ -695,8 +695,8 @@ limitations under the License.
<string name="gps_need_to_enable"
translation_description="In the main view, the message on the top asking the user to enable
GPS.">
Please tap here to go to \'Location &amp; security\' settings &amp; check
\'Use GPS satellites\'. Press the back button to return.
Tap here to go to \'Location services\' settings &amp; check \'GPS satellites\'. Press the back
button to return.
</string>
<string name="gps_not_found"
translation_description="On application start, message when there is no GPS on the device.">
@@ -929,11 +929,6 @@ limitations under the License.
'Maps' list page informing the user that he doesn't have any maps.">
You don\'t have any maps.
</string>
<string name="maps_list_pick_map"
translation_description="When sending a track to an existing Google Map, the text on the
'Maps' list page asking the user to pick one of his maps.">
Pick a map:
</string>
<string name="maps_list_progress_message"
translation_description="When sending a track to an existing Google Map, the progress message
informing the user that his maps are being loaded.">
@@ -946,8 +941,8 @@ limitations under the License.
</string>
<string name="maps_list_title"
translation_description="When sending a track to an existing Google Map, the title of the
page listing the user's maps in Google Maps.">
Your Google Maps
page asking the user to pick a map.">
Pick a Map
</string>
<string name="maps_list_unlisted_label"
translation_description="When sending a track to an existing Google Map, in the 'Maps'
@@ -2067,81 +2062,81 @@ limitations under the License.
I think you might be interested in this track:\n\n%1$s
</string>
<!-- Stat Page -->
<string name="stat_average_moving_pace"
translation_description="In the 'Statistics' page, the average moving pace.">
<!-- Stats Page -->
<string name="stats_average_moving_pace"
translation_description="In the 'Stats' page, the average moving pace.">
Average moving pace
</string>
<string name="stat_average_moving_speed"
translation_description="In the 'Statistics' page, the average moving speed.">
<string name="stats_average_moving_speed"
translation_description="In the 'Stats' page, the average moving speed.">
Average moving speed
</string>
<string name="stat_average_pace"
translation_description="In the 'Statistics' page, the average pace.">
<string name="stats_average_pace"
translation_description="In the 'Stats' page, the average pace.">
Average pace
</string>
<string name="stat_average_speed"
translation_description="In the 'Statistics' page, the average speed.">
<string name="stats_average_speed"
translation_description="In the 'Stats' page, the average speed.">
Average speed
</string>
<string name="stat_elevation"
translation_description="In the 'Statistics' page, the elevation.">
<string name="stats_elevation"
translation_description="In the 'Stats' page, the elevation.">
Elevation
</string>
<string name="stat_elevation_gain"
translation_description="In the 'Statistics' page, the elevation gain.">
<string name="stats_elevation_gain"
translation_description="In the 'Stats' page, the elevation gain.">
Elevation gain
</string>
<string name="stat_fastest_pace"
translation_description="In the 'Statistics' page, the fastest pace.">
<string name="stats_fastest_pace"
translation_description="In the 'Stats' page, the fastest pace.">
Fastest pace
</string>
<string name="stat_latitude"
translation_description="In the 'Statistics' page, the latitude.">
<string name="stats_latitude"
translation_description="In the 'Stats' page, the latitude.">
Latitude
</string>
<string name="stat_longitude"
translation_description="In the 'Statistics' page, the longitude.">
<string name="stats_longitude"
translation_description="In the 'Stats' page, the longitude.">
Longitude
</string>
<string name="stat_max_elevation"
translation_description="In the 'Statistics' page, the maximum elevation.">
<string name="stats_max_elevation"
translation_description="In the 'Stats' page, the maximum elevation.">
Max elevation
</string>
<string name="stat_max_grade"
translation_description="In the 'Statistics' page, the maximum grade.">
<string name="stats_max_grade"
translation_description="In the 'Stats' page, the maximum grade.">
Max grade
</string>
<string name="stat_max_speed"
translation_description="In the 'Statistics' page, the maximum speed.">
<string name="stats_max_speed"
translation_description="In the 'Stats' page, the maximum speed.">
Max speed
</string>
<string name="stat_min_elevation"
translation_description="In the 'Statistics' page, the minimum elevation.">
<string name="stats_min_elevation"
translation_description="In the 'Stats' page, the minimum elevation.">
Min elevation
</string>
<string name="stat_min_grade"
translation_description="In the 'Statistics' page, the minimum grade.">
<string name="stats_min_grade"
translation_description="In the 'Stats' page, the minimum grade.">
Min grade
</string>
<string name="stat_moving_time"
translation_description="In the 'Statistics' page, the moving time.">
<string name="stats_moving_time"
translation_description="In the 'Stats' page, the moving time.">
Moving time
</string>
<string name="stat_pace"
translation_description="In the 'Statistics' page, the pace like hours per mile.">
<string name="stats_pace"
translation_description="In the 'Stats' page, the pace like hours per mile.">
Pace
</string>
<string name="stat_speed"
translation_description="In the 'Statistics' page, the speed like miles per hour.">
<string name="stats_speed"
translation_description="In the 'Stats' page, the speed like miles per hour.">
Speed
</string>
<string name="stat_total_distance"
translation_description="In the 'Statistics' page, the total distance.">
<string name="stats_total_distance"
translation_description="In the 'Stats' page, the total distance.">
Total distance
</string>
<string name="stat_total_time"
translation_description="In the 'Statistics' page, the total time.">
<string name="stats_total_time"
translation_description="In the 'Stats' page, the total time.">
Total time
</string>
@@ -2417,7 +2412,14 @@ limitations under the License.
recommended value.">
Smallest (recommended)
</string>
<string name="value_coordinate_degree"
translation_description="To display a latitude or longitude coordinate in degree. E.g.,
2.2 \u00B0. \u00B0 is the unicode value for the degree symbol.
%1$s: a string value of the coordinate. E.g., '2.2'">
%1$s \u00B0
</string>
<!-- Voice -->
<string name="voice_hours_few"
translation_description="For voice announcement, to say 'few' hours.
+99 -169
View File
@@ -15,215 +15,145 @@ See the License for the specific language governing permissions and
limitations under the License.
-->
<resources>
<style name="ThemeSelector" parent="android:Theme" />
<!-- The style for the 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>
<!-- The style for the about value -->
<style name="AboutValue" parent="@style/TextMedium">
<item name="android:paddingLeft">48dp</item>
</style>
<!-- The style for the 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>
</style>
<!-- The style for the edit category -->
<style name="EditCategory" parent="@android:style/TextAppearance.DeviceDefault.Medium">
</style>
<!-- The style for the 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>
</style>
<!-- The style for the 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 -->
<style name="EditDescription" parent="@android:style/TextAppearance.DeviceDefault.Medium">
<item name="android:layout_height">wrap_content</item>
<style name="EditDescription" parent="@style/TextMedium">
<item name="android:inputType">textAutoCorrect|textCapSentences</item>
<item name="android:layout_width">fill_parent</item>
<item name="android:maxLines">50</item>
<item name="android:selectAllOnFocus">true</item>
<item name="android:singleLine">false</item>
<item name="android:maxLines">50</item>
<item name="android:inputType">textAutoCorrect|textCapSentences</item>
</style>
<!-- The style for the edit label -->
<style name="EditLabel" parent="@android:style/TextAppearance.DeviceDefault.Medium">
<item name="android:layout_height">wrap_content</item>
<item name="android:layout_width">wrap_content</item>
</style>
<!-- The style for the edit name -->
<style name="EditName" parent="@android:style/TextAppearance.DeviceDefault.Medium">
<item name="android:layout_height">wrap_content</item>
<style name="EditName" 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>
<item name="android:inputType">textAutoCorrect|textCapWords</item>
</style>
<!-- The style for the 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 -->
<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 the 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 -->
<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 -->
<style name="SensorStateValue" parent="@style/TextLarge">
<item name="android:background">@android:color/background_light</item>
<item name="android:gravity">right</item>
<item name="android:layout_width">fill_parent</item>
<item name="android:paddingRight">8dp</item>
<item name="android:textColor">@android:color/primary_text_light</item>
</style>
<!-- The style for the 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 -->
<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 -->
<style name="StatsValue" parent="@style/TextLarge">
<item name="android:background">@android:color/background_light</item>
<item name="android:gravity">right</item>
<item name="android:layout_weight">1</item>
<item name="android:layout_width">0dp</item>
<item name="android:paddingRight">8dp</item>
<item name="android:textColor">@android:color/primary_text_light</item>
</style>
<!-- The style for large size text -->
<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 an icon on the left -->
<style name="TextLarge.WithIcon">
<item name="android:drawablePadding">8dp</item>
<item name="android:gravity">center_vertical</item>
</style>
<!-- The style for the list empty text view -->
<style name="ListEmptyTextView" parent="@android:style/TextAppearance.DeviceDefault.Large">
<item name="android:gravity">center</item>
<item name="android:layout_gravity">center</item>
<!-- The style for medium size text -->
<style name="TextMedium">
<item name="android:layout_height">wrap_content</item>
<item name="android:layout_width">wrap_content</item>
<item name="android:padding">8dp</item>
<item name="android:textSize">18sp</item>
</style>
<!-- The style for the list item category -->
<style name="ListItemCategory" parent="@android:style/TextAppearance.DeviceDefault.Small">
<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:layout_marginLeft">8dp</item>
</style>
<!-- The style for the list item description -->
<style name="ListItemDescription" parent="@android:style/TextAppearance.DeviceDefault.Small">
<item name="android:layout_height">wrap_content</item>
<item name="android:layout_width">fill_parent</item>
<item name="android:singleLine">false</item>
</style>
<!-- The style for the list item name -->
<style name="ListItemName" parent="@android:style/TextAppearance.DeviceDefault.Large">
<item name="android:layout_height">wrap_content</item>
<item name="android:layout_width">wrap_content</item>
<item name="android:singleLine">true</item>
<!-- The style for medium size text with an icon on the left -->
<style name="TextMedium.WithIcon">
<item name="android:drawablePadding">8dp</item>
<item name="android:gravity">center_vertical</item>
<item name="android:paddingLeft">9dp</item>
</style>
<!-- style for the list item stat -->
<style name="ListItemStat" parent="@android:style/TextAppearance.DeviceDefault.Small">
<!-- The style for large size text -->
<style name="TextSmall">
<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:textColor">@color/green</item>
<item name="android:textColor">?android:textColorSecondary</item>
<item name="android:textSize">14sp</item>
</style>
<!-- The style for the marker detail label -->
<style name="MarkerDetailLabel" parent="@android:style/TextAppearance.DeviceDefault.Large">
<item name="android:layout_height">wrap_content</item>
<item name="android:layout_width">wrap_content</item>
<!-- Theme selector -->
<style name="ThemeSelector" parent="android:Theme" />
<!-- The style for the track widget value -->
<style name="TrackWidgetValue" parent="@style/TextSmall">
<item name="android:width">100dp</item>
</style>
<!-- The style for the marker detail statistics label -->
<style name="MarkerDetailStatisticsLabel" parent="@android:style/TextAppearance.DeviceDefault.Medium">
<item name="android:layout_height">wrap_content</item>
<!-- The style for upload service chooser check box -->
<style name="UploadServiceChooserCheckBox" 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:layout_weight">1</item>
</style>
<!-- The style for the marker detail statistics spacer -->
<style name="MarkerDetailStatisticsSpacer">
<item name="android:layout_height">fill_parent</item>
<item name="android:layout_width">8dp</item>
</style>
<!-- The style for the marker detail statistics value -->
<style name="MarkerDetailStatisticsValue" parent="@android:style/TextAppearance.DeviceDefault.Large">
<item name="android:gravity">right</item>
<item name="android:textColor">@color/stat_label_text</item>
<!-- The style for upload service chooser image view -->
<style name="UploadServiceChooserImageView">
<item name="android:layout_height">wrap_content</item>
<item name="android:layout_width">0dp</item>
<item name="android:layout_weight">1</item>
<item name="android:background">@android:color/background_light</item>
</style>
<style name="SensorStateLabel">
<item name="android:layout_height">wrap_content</item>
<item name="android:layout_width">fill_parent</item>
<item name="android:paddingLeft">4dp</item>
<item name="android:paddingRight">4dp</item>
</style>
<style name="SensorStateValue">
<item name="android:background">@color/stat_label_background</item>
<item name="android:gravity">right</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:layout_width">fill_parent</item>
<item name="android:paddingLeft">4dp</item>
<item name="android:paddingRight">4dp</item>
<item name="android:textColor">@color/stat_label_text</item>
<item name="android:textSize">40sp</item>
</style>
<!-- The style for a view which divides the numerator and denominator of the units on the statistics activity. -->
<style name="StatsDivider" parent="@android:Widget.TextView">
<item name="android:background">@color/black</item>
<item name="android:layout_height">3dp</item>
<item name="android:layout_width">fill_parent</item>
</style>
<!-- The style for a text view for displaying a value on the statistics activity. -->
<style name="StatsRegister" parent="@android:Widget.TextView">
<item name="android:gravity">right</item>
<item name="android:layout_marginBottom">-9dp</item>
<item name="android:layout_marginTop">-9dp</item>
<item name="android:text">@string/value_unknown</item>
<item name="android:textColor">@color/stat_label_text</item>
<item name="android:textSize">40sp</item>
</style>
<!-- The style for a text view for displaying a large value on the statistics activity. -->
<style name="StatsRegister.Big">
<item name="android:layout_marginBottom">-13dp</item>
<item name="android:layout_marginTop">-13dp</item>
<item name="android:textSize">50sp</item>
</style>
<!-- The style for a text view for displaying a small value on the statistics activity. -->
<style name="StatsRegister.Small">
<item name="android:layout_height">wrap_content</item>
<item name="android:layout_marginBottom">-5dp</item>
<item name="android:layout_marginTop">-5dp</item>
<item name="android:layout_width">fill_parent</item>
<item name="android:textSize">25sp</item>
</style>
<!-- The style for a view which divides two columns in the statistics activity. -->
<style name="StatsSpacer" parent="@android:Widget.TextView">
<item name="android:background">@color/black</item>
<item name="android:layout_marginBottom">-9dp</item>
<item name="android:layout_marginTop">-9dp</item>
<item name="android:layout_width">5dp</item>
<item name="android:textSize">40sp</item>
</style>
<!-- The style for the unit on the statistics activity. -->
<style name="StatsUnit" parent="@android:Widget.TextView">
<item name="android:gravity">bottom</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:layout_marginBottom">-2dp</item>
<item name="android:layout_marginTop">-2dp</item>
<item name="android:layout_width">wrap_content</item>
<item name="android:textColor">@color/stat_label_text</item>
</style>
<!-- The style for the unit on the statistics activity where there is only one string. -->
<style name="StatsUnitSolo" parent="@android:Widget.TextView">
<item name="android:gravity">right</item>
<item name="android:layout_marginBottom">-9dp</item>
<item name="android:layout_marginTop">-9dp</item>
<item name="android:textColor">@color/stat_label_text</item>
</style>
<!-- The style for the welcome page answer -->
<style name="WelcomeAnswerTextView" parent="@android:style/TextAppearance.DeviceDefault.Small">
<item name="android:layout_height">wrap_content</item>
<item name="android:layout_width">wrap_content</item>
<style name="WelcomeAnswerTextView" parent="@style/TextSmall">
<item name="android:paddingBottom">8dp</item>
</style>
<!-- The style for welcome page question -->
<style name="WelcomeQuestionTextView" parent="@android:style/TextAppearance.DeviceDefault.Medium">
<item name="android:layout_height">wrap_content</item>
<item name="android:layout_width">wrap_content</item>
<item name="android:textStyle">bold</item>
<style name="WelcomeQuestionTextView" parent="@style/TextMedium">
<item name="android:paddingTop">8dp</item>
<item name="android:textStyle">bold</item>
</style>
<!-- Widget TextView -->
<style name="WidgetTextView">
<item name="android:layout_height">wrap_content</item>
<item name="android:layout_width">wrap_content</item>
<item name="android:textColor">@color/appwidget_text</item>
<item name="android:textSize">14sp</item>
</style>
<!-- Widget TextView value -->
<style name="WidgetTextView.Value">
<item name="android:width">160px</item>
</style>
</resources>
</resources>
@@ -0,0 +1,55 @@
/*
* 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;
import com.google.android.apps.mytracks.util.ApiAdapterFactory;
import android.os.Bundle;
import android.speech.tts.TextToSpeech;
import android.support.v4.app.FragmentActivity;
import android.view.MenuItem;
/**
* An abstract class for all My Tracks activities.
*
* @author Jimmy Shih
*/
public class AbstractMyTracksActivity extends FragmentActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setVolumeControlStream(TextToSpeech.Engine.DEFAULT_STREAM);
ApiAdapterFactory.getApiAdapter().configureActionBarHomeAsUp(this);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId() != android.R.id.home) {
return super.onOptionsItemSelected(item);
}
onHomeSelected();
return true;
}
/**
* Callback when the home menu item is selected.
*/
protected void onHomeSelected() {
finish();
}
}
@@ -1,129 +1,68 @@
/*
* 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;
import com.google.android.apps.mytracks.content.MyTracksProviderUtils;
import com.google.android.apps.mytracks.content.Track;
import com.google.android.apps.mytracks.stats.TripStatistics;
import com.google.android.apps.mytracks.util.ApiAdapterFactory;
import com.google.android.apps.mytracks.util.IntentUtils;
import com.google.android.apps.mytracks.util.StatsUtils;
import com.google.android.maps.mytracks.R;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.OnSharedPreferenceChangeListener;
import android.os.Bundle;
import android.util.DisplayMetrics;
import android.util.Log;
import android.view.MenuItem;
import android.widget.ScrollView;
import android.widget.TextView;
import java.util.List;
/**
* Activity for viewing the combined statistics for all the recorded tracks.
*
* Other features to add - menu items to change setings.
* An activity to view aggregated stats from all recorded tracks.
*
* @author Fergus Nelson
*/
public class AggregatedStatsActivity extends Activity implements
OnSharedPreferenceChangeListener {
private final StatsUtilities utils;
private MyTracksProviderUtils tracksProvider;
private boolean metricUnits = true;
public AggregatedStatsActivity() {
this.utils = new StatsUtilities(this);
}
@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences,
String key) {
Log.d(Constants.TAG, "StatsActivity: onSharedPreferences changed "
+ key);
if (key != null) {
if (key.equals(getString(R.string.metric_units_key))) {
metricUnits = sharedPreferences.getBoolean(
getString(R.string.metric_units_key), true);
utils.setMetricUnits(metricUnits);
utils.updateUnits();
loadAggregatedStats();
}
}
}
public class AggregatedStatsActivity extends AbstractMyTracksActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.tracksProvider = MyTracksProviderUtils.Factory.get(this);
ApiAdapterFactory.getApiAdapter().configureActionBarHomeAsUp(this);
setContentView(R.layout.stats);
ScrollView sv = ((ScrollView) findViewById(R.id.scrolly));
sv.setScrollBarStyle(ScrollView.SCROLLBARS_OUTSIDE_INSET);
setContentView(R.layout.aggregated_stats);
SharedPreferences preferences = getSharedPreferences(
Constants.SETTINGS_NAME, Context.MODE_PRIVATE);
if (preferences != null) {
metricUnits = preferences.getBoolean(getString(R.string.metric_units_key), true);
preferences.registerOnSharedPreferenceChangeListener(this);
}
utils.setMetricUnits(metricUnits);
utils.updateUnits();
utils.setSpeedLabel(R.id.speed_label, R.string.stat_speed, R.string.stat_pace);
utils.setSpeedLabels();
boolean metricUnits = preferences.getBoolean(getString(R.string.metric_units_key), true);
boolean reportSpeed = preferences.getBoolean(getString(R.string.report_speed_key), true);
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
if (metrics.heightPixels > 600) {
((TextView) findViewById(R.id.speed_register)).setTextSize(80.0f);
}
loadAggregatedStats();
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId() != android.R.id.home) {
return false;
}
Intent intent = IntentUtils.newIntent(this, TrackListActivity.class);
startActivity(intent);
return true;
StatsUtils.setSpeedLabels(this, reportSpeed, false);
StatsUtils.setTripStatisticsValues(this, getTripStatistics(), metricUnits, reportSpeed);
StatsUtils.setLocationElevationValue(this, Double.NaN, metricUnits);
}
/**
* 1. Reads tracks from the db
* 2. Merges the trip stats from the tracks
* 3. Updates the view
* Gets the aggregated trip statistics for all the recorded tracks or null if
* there is no track.
*/
private void loadAggregatedStats() {
List<Track> tracks = retrieveTracks();
TripStatistics rollingStats = null;
private TripStatistics getTripStatistics() {
List<Track> tracks = MyTracksProviderUtils.Factory.get(this).getAllTracks();
TripStatistics tripStatistics = null;
if (!tracks.isEmpty()) {
rollingStats = new TripStatistics(tracks.iterator().next()
.getStatistics());
tripStatistics = new TripStatistics(tracks.iterator().next().getStatistics());
for (int i = 1; i < tracks.size(); i++) {
rollingStats.merge(tracks.get(i).getStatistics());
tripStatistics.merge(tracks.get(i).getStatistics());
}
}
updateView(rollingStats);
}
private List<Track> retrieveTracks() {
return tracksProvider.getAllTracks();
}
private void updateView(TripStatistics aggStats) {
if (aggStats != null) {
utils.setAllStats(aggStats);
}
return tripStatistics;
}
}
@@ -215,7 +215,7 @@ public class ChartView extends View {
R.color.elevation_border,
new ZoomSettings(MAX_INTERVALS,
new int[] {5, 10, 25, 50, 100, 250, 500, 1000, 2500, 5000}),
R.string.stat_elevation);
R.string.stats_elevation);
series[SPEED_SERIES] =
new ChartValueSeries(context,
@@ -223,7 +223,7 @@ public class ChartView extends View {
R.color.speed_border,
new ZoomSettings(MAX_INTERVALS, 0, Integer.MIN_VALUE,
new int[] {1, 5, 10, 20, 50}),
R.string.stat_speed);
R.string.stats_speed);
series[POWER_SERIES] =
new ChartValueSeries(context,
R.color.power_fill,
@@ -270,8 +270,8 @@ public class ChartView extends View {
public void setReportSpeed(boolean reportSpeed, Context c) {
series[SPEED_SERIES].setTitle(c.getString(reportSpeed
? R.string.stat_speed
: R.string.stat_pace));
? R.string.stats_speed
: R.string.stats_pace));
}
private void addDataPointInternal(double[] theData) {
@@ -33,14 +33,6 @@ public abstract class Constants {
*/
public static final String SDCARD_TOP_DIR = "MyTracks";
/*
* Main screen tab tags:
*/
public static final String MAP_TAB_TAG = "map";
public static final String STATS_TAB_TAG = "stats";
public static final String CHART_TAB_TAG = "chart";
/**
* The number of distance readings to smooth to get a stable signal.
*/
@@ -17,15 +17,9 @@
package com.google.android.apps.mytracks;
import com.google.android.apps.mytracks.fragments.AboutDialogFragment;
import com.google.android.apps.mytracks.util.ApiAdapterFactory;
import com.google.android.apps.mytracks.util.IntentUtils;
import com.google.android.maps.mytracks.R;
import android.content.Intent;
import android.os.Bundle;
import android.speech.tts.TextToSpeech;
import android.support.v4.app.FragmentActivity;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
@@ -34,13 +28,11 @@ import android.view.View.OnClickListener;
*
* @author Sandor Dornbush
*/
public class HelpActivity extends FragmentActivity {
public class HelpActivity extends AbstractMyTracksActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setVolumeControlStream(TextToSpeech.Engine.DEFAULT_STREAM);
ApiAdapterFactory.getApiAdapter().configureActionBarHomeAsUp(this);
setContentView(R.layout.help);
findViewById(R.id.help_ok).setOnClickListener(new OnClickListener() {
@@ -55,14 +47,4 @@ public class HelpActivity extends FragmentActivity {
}
});
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId() != android.R.id.home) {
return false;
}
Intent intent = IntentUtils.newIntent(this, TrackListActivity.class);
startActivity(intent);
return true;
}
}
@@ -19,8 +19,6 @@ package com.google.android.apps.mytracks;
import com.google.android.apps.mytracks.content.MyTracksProviderUtils;
import com.google.android.apps.mytracks.content.Waypoint;
import com.google.android.apps.mytracks.fragments.DeleteOneMarkerDialogFragment;
import com.google.android.apps.mytracks.stats.TripStatistics;
import com.google.android.apps.mytracks.util.ApiAdapterFactory;
import com.google.android.apps.mytracks.util.IntentUtils;
import com.google.android.apps.mytracks.util.StatsUtils;
import com.google.android.maps.mytracks.R;
@@ -29,8 +27,6 @@ import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.speech.tts.TextToSpeech;
import android.support.v4.app.FragmentActivity;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
@@ -42,7 +38,7 @@ import android.widget.TextView;
*
* @author Leif Hendrik Wilden
*/
public class MarkerDetailActivity extends FragmentActivity {
public class MarkerDetailActivity extends AbstractMyTracksActivity {
public static final String EXTRA_MARKER_ID = "marker_id";
private static final String TAG = MarkerDetailActivity.class.getSimpleName();
@@ -53,8 +49,6 @@ public class MarkerDetailActivity extends FragmentActivity {
@Override
protected void onCreate(Bundle bundle) {
super.onCreate(bundle);
setVolumeControlStream(TextToSpeech.Engine.DEFAULT_STREAM);
ApiAdapterFactory.getApiAdapter().configureActionBarHomeAsUp(this);
setContentView(R.layout.marker_detail);
markerId = getIntent().getLongExtra(EXTRA_MARKER_ID, -1L);
@@ -94,44 +88,9 @@ public class MarkerDetailActivity extends FragmentActivity {
boolean metricUnits = preferences.getBoolean(getString(R.string.metric_units_key), true);
boolean reportSpeed = preferences.getBoolean(getString(R.string.report_speed_key), true);
StatsUtils.setSpeedLabel(this, R.id.marker_detail_max_speed_label, R.string.stat_max_speed,
R.string.stat_fastest_pace, reportSpeed);
StatsUtils.setSpeedLabel(this, R.id.marker_detail_average_speed_label,
R.string.stat_average_speed, R.string.stat_average_pace, reportSpeed);
StatsUtils.setSpeedLabel(this, R.id.marker_detail_average_moving_speed_label,
R.string.stat_average_moving_speed, R.string.stat_average_moving_pace, reportSpeed);
TripStatistics tripStatistics = waypoint.getStatistics();
StatsUtils.setDistanceValue(this, R.id.marker_detail_total_distance_value,
tripStatistics.getTotalDistance(), metricUnits);
StatsUtils.setSpeedValue(this, R.id.marker_detail_max_speed_value,
tripStatistics.getMaxSpeed(), reportSpeed, metricUnits);
StatsUtils.setTimeValue(
this, R.id.marker_detail_total_time_value, tripStatistics.getTotalTime());
StatsUtils.setSpeedValue(this, R.id.marker_detail_average_speed_value,
tripStatistics.getAverageSpeed(), reportSpeed, metricUnits);
StatsUtils.setTimeValue(
this, R.id.marker_detail_moving_time_value, tripStatistics.getMovingTime());
StatsUtils.setSpeedValue(this, R.id.marker_detail_average_moving_speed_value,
tripStatistics.getAverageMovingSpeed(), reportSpeed, metricUnits);
StatsUtils.setAltitudeValue(this, R.id.marker_detail_elevation_value,
waypoint.getLocation().getAltitude(), metricUnits);
StatsUtils.setAltitudeValue(this, R.id.marker_detail_elevation_gain_value,
tripStatistics.getTotalElevationGain(), metricUnits);
StatsUtils.setAltitudeValue(this, R.id.marker_detail_min_elevation_value,
tripStatistics.getMinElevation(), metricUnits);
StatsUtils.setAltitudeValue(this, R.id.marker_detail_max_elevation_value,
tripStatistics.getMaxElevation(), metricUnits);
StatsUtils.setGradeValue(
this, R.id.marker_detail_min_grade_value, tripStatistics.getMinGrade());
StatsUtils.setGradeValue(
this, R.id.marker_detail_max_grade_value, tripStatistics.getMaxGrade());
StatsUtils.setSpeedLabels(this, reportSpeed, false);
StatsUtils.setTripStatisticsValues(this, waypoint.getStatistics(), metricUnits, reportSpeed);
StatsUtils.setLocationElevationValue(this, waypoint.getLocation().getAltitude(), metricUnits);
}
}
@@ -141,15 +100,17 @@ public class MarkerDetailActivity extends FragmentActivity {
return true;
}
@Override
protected void onHomeSelected() {
Intent intent = IntentUtils.newIntent(this, MarkerListActivity.class)
.putExtra(MarkerListActivity.EXTRA_TRACK_ID, waypoint.getTrackId());
startActivity(intent);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
Intent intent;
switch (item.getItemId()) {
case android.R.id.home:
intent = IntentUtils.newIntent(this, MarkerListActivity.class)
.putExtra(MarkerListActivity.EXTRA_TRACK_ID, waypoint.getTrackId());
startActivity(intent);
return true;
case R.id.marker_detail_show_on_map:
intent = IntentUtils.newIntent(this, TrackDetailActivity.class)
.putExtra(TrackDetailActivity.EXTRA_MARKER_ID, markerId);
@@ -22,16 +22,12 @@ import com.google.android.apps.mytracks.content.WaypointCreationRequest;
import com.google.android.apps.mytracks.content.WaypointCreationRequest.WaypointType;
import com.google.android.apps.mytracks.services.ITrackRecordingService;
import com.google.android.apps.mytracks.services.TrackRecordingServiceConnection;
import com.google.android.apps.mytracks.util.ApiAdapterFactory;
import com.google.android.apps.mytracks.util.TrackRecordingServiceConnectionUtils;
import com.google.android.maps.mytracks.R;
import android.app.Activity;
import android.os.Bundle;
import android.os.RemoteException;
import android.speech.tts.TextToSpeech;
import android.util.Log;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.inputmethod.EditorInfo;
@@ -47,7 +43,7 @@ import android.widget.Toast;
*
* @author Jimmy Shih
*/
public class MarkerEditActivity extends Activity {
public class MarkerEditActivity extends AbstractMyTracksActivity {
private static final String TAG = MarkerEditActivity.class.getSimpleName();
@@ -69,8 +65,6 @@ public class MarkerEditActivity extends Activity {
@Override
protected void onCreate(Bundle bundle) {
super.onCreate(bundle);
setVolumeControlStream(TextToSpeech.Engine.DEFAULT_STREAM);
ApiAdapterFactory.getApiAdapter().configureActionBarHomeAsUp(this);
setContentView(R.layout.marker_edit);
markerId = getIntent().getLongExtra(EXTRA_MARKER_ID, -1L);
@@ -85,6 +79,8 @@ public class MarkerEditActivity extends Activity {
boolean statistics = checkedId == R.id.marker_edit_type_statistics;
name.setText(
statistics ? R.string.marker_edit_type_statistics : R.string.marker_edit_type_waypoint);
// Call selectAll so that all EditText have selectAllOnFocus style.
name.selectAll();
updateUiByMarkerType(statistics);
}
});
@@ -172,15 +168,6 @@ public class MarkerEditActivity extends Activity {
trackRecordingServiceConnection.unbind();
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId() != android.R.id.home) {
return false;
}
finish();
return true;
}
/**
* Adds a marker.
*/
@@ -33,8 +33,6 @@ import android.content.SharedPreferences;
import android.content.SharedPreferences.OnSharedPreferenceChangeListener;
import android.database.Cursor;
import android.os.Bundle;
import android.speech.tts.TextToSpeech;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.LoaderManager.LoaderCallbacks;
import android.support.v4.content.CursorLoader;
import android.support.v4.content.Loader;
@@ -56,7 +54,7 @@ import android.widget.ListView;
*
* @author Leif Hendrik Wilden
*/
public class MarkerListActivity extends FragmentActivity {
public class MarkerListActivity extends AbstractMyTracksActivity {
public static final String EXTRA_TRACK_ID = "track_id";
@@ -111,9 +109,7 @@ public class MarkerListActivity extends FragmentActivity {
return;
}
setVolumeControlStream(TextToSpeech.Engine.DEFAULT_STREAM);
setDefaultKeyMode(DEFAULT_KEYS_SEARCH_LOCAL);
ApiAdapterFactory.getApiAdapter().configureActionBarHomeAsUp(this);
setContentView(R.layout.marker_list);
SharedPreferences sharedPreferences = getSharedPreferences(
@@ -198,9 +194,6 @@ public class MarkerListActivity extends FragmentActivity {
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
finish();
return true;
case R.id.marker_list_insert_marker:
Intent intent = IntentUtils.newIntent(this, MarkerEditActivity.class);
startActivity(intent);
@@ -42,8 +42,6 @@ import android.location.Location;
import android.location.LocationManager;
import android.os.Bundle;
import android.provider.SearchRecentSuggestions;
import android.speech.tts.TextToSpeech;
import android.support.v4.app.FragmentActivity;
import android.util.Log;
import android.view.ContextMenu;
import android.view.ContextMenu.ContextMenuInfo;
@@ -69,7 +67,7 @@ import java.util.SortedSet;
*
* @author Rodrigo Damazio
*/
public class SearchListActivity extends FragmentActivity {
public class SearchListActivity extends AbstractMyTracksActivity {
private static final String TAG = SearchListActivity.class.getSimpleName();
@@ -119,9 +117,7 @@ public class SearchListActivity extends FragmentActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setVolumeControlStream(TextToSpeech.Engine.DEFAULT_STREAM);
setDefaultKeyMode(DEFAULT_KEYS_SEARCH_LOCAL);
ApiAdapterFactory.getApiAdapter().configureActionBarHomeAsUp(this);
setContentView(R.layout.search_list);
myTracksProviderUtils = MyTracksProviderUtils.Factory.get(this);
@@ -210,9 +206,6 @@ public class SearchListActivity extends FragmentActivity {
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
finish();
return true;
case R.id.search_list_search:
return ApiAdapterFactory.getApiAdapter().handleSearchMenuSelection(this);
default:

Some files were not shown because too many files have changed in this diff Show More