merge heads

This commit is contained in:
Jimmy Shih
2012-04-06 10:54:22 -07:00
parent 79fde1c118
commit f5085b208d
319 changed files with 6180 additions and 5754 deletions
-13
View File
@@ -1,21 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<classpath> <classpath>
<classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/> <classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
<classpathentry kind="lib" path="libs/googleloginclient-helper.jar"/>
<classpathentry exported="true" kind="lib" path="libs/google-common.jar"/>
<classpathentry kind="lib" path="libs/libGoogleAnalytics.jar"/>
<classpathentry kind="lib" path="libs/google-api-client/commons-codec-1.3.jar"/>
<classpathentry exported="true" kind="lib" path="libs/google-api-client/commons-logging-1.1.1.jar"/>
<classpathentry kind="lib" path="libs/google-api-client/google-api-client-1.5.0-beta.jar"/>
<classpathentry kind="lib" path="libs/google-api-client/google-http-client-1.5.0-beta.jar"/>
<classpathentry kind="lib" path="libs/google-api-client/google-oauth-client-1.5.0-beta.jar"/>
<classpathentry kind="lib" path="libs/google-api-client/gson-1.6.jar"/>
<classpathentry kind="lib" path="libs/google-api-client/guava-r09.jar"/>
<classpathentry kind="lib" path="libs/google-api-client/jackson-core-asl-1.6.7.jar"/>
<classpathentry kind="lib" path="libs/google-api-client/jsr305-1.3.9.jar"/>
<classpathentry kind="src" path="src"/> <classpathentry kind="src" path="src"/>
<classpathentry kind="src" path="gen"/> <classpathentry kind="src" path="gen"/>
<classpathentry exported="true" kind="lib" path="/MyTracksLib/libs/protobuf-java-2.3.0-lite.jar"/>
<classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/> <classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
<classpathentry kind="output" path="bin/classes"/> <classpathentry kind="output" path="bin/classes"/>
</classpath> </classpath>
+242 -219
View File
@@ -15,28 +15,29 @@ See the License for the specific language governing permissions and
limitations under the License. limitations under the License.
--> -->
<manifest xmlns:android="http://schemas.android.com/apk/res/android" <manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.google.android.maps.mytracks" android:installLocation="auto"
android:installLocation="auto" android:versionCode="39"
android:versionCode="38" android:versionName="1.1.16"
android:versionName="1.1.15"> package="com.google.android.maps.mytracks" >
<!-- Permissions to initialize service --> <!-- Permission to initialize services -->
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<!-- Permissions for recording tracks and showing maps --> <!-- Permissions to record locations -->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <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_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WAKE_LOCK" /> <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" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" /> <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="com.dsi.ant.permission.ANT" /> <!-- Permissions to upload tracks -->
<uses-permission android:name="com.dsi.ant.permission.ANT_ADMIN" />
<!-- Permissions for uploading tracks -->
<uses-permission android:name="android.permission.GET_ACCOUNTS" /> <uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.MANAGE_ACCOUNTS" /> <uses-permission android:name="android.permission.MANAGE_ACCOUNTS" />
<uses-permission android:name="android.permission.USE_CREDENTIALS" /> <uses-permission android:name="android.permission.USE_CREDENTIALS" />
<uses-permission android:name="com.google.android.googleapps.permission.GOOGLE_AUTH" /> <uses-permission android:name="com.google.android.googleapps.permission.GOOGLE_AUTH" />
@@ -46,269 +47,291 @@ limitations under the License.
<uses-permission android:name="com.google.android.googleapps.permission.GOOGLE_AUTH.writely" /> <uses-permission android:name="com.google.android.googleapps.permission.GOOGLE_AUTH.writely" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" /> <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<!-- Permissions for misc services --> <!-- Permission to read phone state so voice announcement will not interrupt ongoing calls -->
<uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<!-- Exported permissions (for other apps to use our features) --> <!-- Permission to write to SD card -->
<!-- Permission to get track start/end broadcasts --> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<permission android:name="com.google.android.apps.mytracks.TRACK_NOTIFICATIONS"
android:permissionGroup="android.permission-group.LOCATION"
android:label="@string/permission_notification_label"
android:description="@string/permission_notification_description"
android:protectionLevel="dangerous" />
<!-- Permission to read raw track data (points, etc.) -->
<permission android:name="com.google.android.apps.mytracks.READ_TRACK_DATA"
android:permissionGroup="android.permission-group.LOCATION"
android:label="@string/permission_read_label"
android:description="@string/permission_read_description"
android:protectionLevel="dangerous" />
<!-- Permission to write track data, either raw or by making service calls -->
<permission android:name="com.google.android.apps.mytracks.WRITE_TRACK_DATA"
android:permissionGroup="android.permission-group.LOCATION"
android:label="@string/permission_write_label"
android:description="@string/permission_write_description"
android:protectionLevel="dangerous" />
<!-- Permission to get MyTracks broadcasts. For internal MyTracks communication. --> <!-- Permissions to access My Tracks data -->
<permission android:name="com.google.android.apps.mytracks.MYTRACKS_NOTIFICATIONS" <uses-permission android:name="com.google.android.apps.mytracks.MYTRACKS_NOTIFICATIONS" />
android:permissionGroup="android.permission-group.LOCATION"
android:label="@string/permission_notification_label"
android:description="@string/permission_notification_label"
android:protectionLevel="signature" />
<!-- We read and write raw track data, obviously. -->
<uses-permission android:name="com.google.android.apps.mytracks.READ_TRACK_DATA" /> <uses-permission android:name="com.google.android.apps.mytracks.READ_TRACK_DATA" />
<uses-permission android:name="com.google.android.apps.mytracks.WRITE_TRACK_DATA" /> <uses-permission android:name="com.google.android.apps.mytracks.WRITE_TRACK_DATA" />
<uses-permission android:name="com.google.android.apps.mytracks.MYTRACKS_NOTIFICATIONS" />
<!-- Features required --> <!-- Permission to receive My Tracks internal broadcasts -->
<uses-feature android:name="android.hardware.location" android:required="true"/> <permission
<uses-feature android:name="android.hardware.location.gps" android:required="true"/> android:description="@string/permission_notification_label"
android:label="@string/permission_notification_label"
android:name="com.google.android.apps.mytracks.MYTRACKS_NOTIFICATIONS"
android:permissionGroup="android.permission-group.LOCATION"
android:protectionLevel="signature" />
<!-- Permission to read track data -->
<permission
android:description="@string/permission_read_description"
android:label="@string/permission_read_label"
android:name="com.google.android.apps.mytracks.READ_TRACK_DATA"
android:permissionGroup="android.permission-group.LOCATION"
android:protectionLevel="dangerous" />
<!-- Permission to receive track start/end broadcasts -->
<permission
android:description="@string/permission_notification_description"
android:label="@string/permission_notification_label"
android:name="com.google.android.apps.mytracks.TRACK_NOTIFICATIONS"
android:permissionGroup="android.permission-group.LOCATION"
android:protectionLevel="dangerous" />
<!-- Permission to write track data, either directly or through service calls -->
<permission
android:description="@string/permission_write_description"
android:label="@string/permission_write_label"
android:name="com.google.android.apps.mytracks.WRITE_TRACK_DATA"
android:permissionGroup="android.permission-group.LOCATION"
android:protectionLevel="dangerous" />
<!-- Features optional --> <uses-sdk
<uses-feature android:name="android.hardware.bluetooth" android:required="false"/> android:minSdkVersion="7"
<uses-feature android:name="android.hardware.faketouch" android:required="false"/> android:targetSdkVersion="15" />
<uses-feature android:name="android.hardware.location.network" android:required="false"/>
<uses-feature android:name="android.hardware.sensor.compass" android:required="false"/> <!-- Required features -->
<uses-feature android:name="android.hardware.telephony" android:required="false"/> <uses-feature
<uses-feature android:name="android.hardware.telephony.gsm" android:required="false"/> android:name="android.hardware.location"
<uses-feature android:name="android.hardware.touchscreen" android:required="false"/> android:required="true" />
<uses-feature android:name="android.hardware.touchscreen.multitouch" android:required="false"/> <uses-feature
android:name="android.hardware.location.gps"
android:required="true" />
<!-- Optional features -->
<uses-feature
android:name="android.hardware.bluetooth"
android:required="false" />
<uses-feature
android:name="android.hardware.faketouch"
android:required="false" />
<uses-feature
android:name="android.hardware.location.network"
android:required="false" />
<uses-feature
android:name="android.hardware.sensor.compass"
android:required="false" />
<uses-feature
android:name="android.hardware.telephony"
android:required="false" />
<uses-feature
android:name="android.hardware.telephony.gsm"
android:required="false" />
<uses-feature
android:name="android.hardware.touchscreen"
android:required="false" />
<uses-feature
android:name="android.hardware.touchscreen.multitouch"
android:required="false" />
<uses-sdk android:minSdkVersion="7"/>
<supports-screens <supports-screens
android:xlargeScreens="true" android:anyDensity="true"
android:largeScreens="true" android:largeScreens="true"
android:normalScreens="true" android:normalScreens="true"
android:smallScreens="true" android:smallScreens="true"
android:anyDensity="true" /> android:xlargeScreens="true" />
<application android:icon="@drawable/arrow_icon" <application
android:label="@string/my_tracks_app_name" android:backupAgent="com.google.android.apps.mytracks.io.backup.MyTracksBackupAgent"
android:name="com.google.android.apps.mytracks.MyTracksApplication" android:icon="@drawable/arrow_icon"
android:backupAgent="com.google.android.apps.mytracks.io.backup.MyTracksBackupAgent"> android:label="@string/my_tracks_app_name"
<uses-library android:name="com.google.android.maps" /> android:name="com.google.android.apps.mytracks.MyTracksApplication"
android:theme="@style/ThemeSelector" >
<meta-data android:name="com.google.android.backup.api_key" <!-- For data backup -->
android:value="AEdPqrEAAAAIi-_QiwoRSc9_bAC9cmuNXTQyU8ajJmGtKdhskQ" /> <meta-data
android:name="com.google.android.backup.api_key"
android:value="AEdPqrEAAAAIi-_QiwoRSc9_bAC9cmuNXTQyU8ajJmGtKdhskQ" />
<!-- Main track data provider --> <activity
<provider android:name="com.google.android.apps.mytracks.content.MyTracksProvider" android:label="@string/menu_aggregated_statistics"
android:authorities="com.google.android.maps.mytracks" android:name="com.google.android.apps.mytracks.AggregatedStatsActivity" />
android:exported="true" <activity
android:readPermission="com.google.android.apps.mytracks.READ_TRACK_DATA" android:exported="false"
android:writePermission="com.google.android.apps.mytracks.WRITE_TRACK_DATA" /> android:name="com.google.android.apps.mytracks.ChartActivity" >
<!-- Provider for search suggestions -->
<provider android:name="com.google.android.apps.mytracks.content.SearchEngineProvider"
android:authorities="com.google.android.maps.mytracks.search"
android:exported="false" />
<!-- Main activity -->
<activity android:name="com.google.android.apps.mytracks.MyTracks"
android:configChanges="mcc|mnc|locale|touchscreen|keyboard|keyboardHidden|navigation|orientation|fontScale">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:mimeType="vnd.android.cursor.item/vnd.google.track" />
<data android:mimeType="vnd.android.cursor.item/vnd.google.waypoint" />
</intent-filter>
<!-- Enable searches via SearchActivity. -->
<meta-data android:name="android.app.default_searchable"
android:value="com.google.android.apps.mytracks.SearchActivity" />
</activity>
<activity android:name="com.google.android.apps.mytracks.MapActivity"
android:exported="false">
<intent-filter> <intent-filter>
<category android:name="android.intent.category.TAB" /> <category android:name="android.intent.category.TAB" />
</intent-filter> </intent-filter>
<!-- Enable searches via SearchActivity. --> <meta-data
<meta-data android:name="android.app.default_searchable" android:name="android.app.default_searchable"
android:value="com.google.android.apps.mytracks.SearchActivity" /> android:value="com.google.android.apps.mytracks.SearchActivity" />
</activity> </activity>
<activity android:name="com.google.android.apps.mytracks.ExportActivity"/>
<activity
<!-- TODO: Merge TrackList, WaypointsLIst and SearchActivity, then implement VIEW and PICK for track and waypoint cursor dir --> android:label="@string/my_tracks_importer"
<activity android:name="com.google.android.apps.mytracks.TrackList"> android:name="com.google.android.apps.mytracks.ImportActivity"
<!-- Enable searches via SearchActivity. --> android:noHistory="true"
<meta-data android:name="android.app.default_searchable" android:theme="@android:style/Theme.Translucent.NoTitleBar" >
android:value="com.google.android.apps.mytracks.SearchActivity" />
</activity>
<!-- TODO: VIEW and PICK for waypoint cursor dir -->
<activity android:name="com.google.android.apps.mytracks.WaypointsList">
<!-- Enable searches via SearchActivity. -->
<meta-data android:name="android.app.default_searchable"
android:value="com.google.android.apps.mytracks.SearchActivity" />
</activity>
<activity android:name="com.google.android.apps.mytracks.TrackDetail"
android:label="@string/track_detail_title">
<intent-filter> <intent-filter>
<action android:name="android.intent.action.EDIT" />
<category android:name="android.intent.category.DEFAULT" /> <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.BROWSABLE" />
<data android:mimeType="vnd.android.cursor.item/vnd.google.track" />
</intent-filter>
</activity>
<activity android:name="com.google.android.apps.mytracks.DeleteTrack"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:noHistory="true">
<intent-filter>
<action android:name="android.intent.action.DELETE" />
<category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="vnd.android.cursor.item/vnd.google.track" />
<data android:mimeType="application/gpx" />
<data android:mimeType="application/gpx+xml" />
<data android:mimeType="application/vnd.google-earth.gpx" />
<data android:mimeType="application/vnd.google-earth.gpx+xml" />
<data android:scheme="file" />
</intent-filter> </intent-filter>
</activity> </activity>
<activity
<activity android:name="com.google.android.apps.mytracks.WaypointDetails" android:exported="false"
android:label="@string/marker_detail_title"> android:name="com.google.android.apps.mytracks.MapActivity" >
<intent-filter> <intent-filter>
<action android:name="android.intent.action.EDIT" /> <category android:name="android.intent.category.TAB" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:mimeType="vnd.android.cursor.item/vnd.google.waypoint" />
</intent-filter> </intent-filter>
</activity>
<activity android:name="com.google.android.apps.mytracks.SettingsActivity" <meta-data
android:label="@string/settings_title" > android:name="android.app.default_searchable"
android:value="com.google.android.apps.mytracks.SearchActivity" />
</activity>
<activity
android:launchMode="singleTop"
android:name="com.google.android.apps.mytracks.SearchActivity" >
<intent-filter>
<action android:name="android.intent.action.SEARCH" />
</intent-filter>
<meta-data
android:name="android.app.searchable"
android:resource="@xml/search" />
</activity>
<activity
android:label="@string/menu_sensor_state"
android:name="com.google.android.apps.mytracks.SensorStateActivity" />
<activity
android:label="@string/settings_title"
android:name="com.google.android.apps.mytracks.SettingsActivity" >
<intent-filter> <intent-filter>
<category android:name="android.intent.category.PREFERENCE" /> <category android:name="android.intent.category.PREFERENCE" />
</intent-filter> </intent-filter>
</activity> </activity>
<activity
<activity android:name="com.google.android.apps.mytracks.AggregatedStatsActivity" android:exported="false"
android:label="@string/menu_aggregated_statistics" /> android:name="com.google.android.apps.mytracks.StatsActivity" >
<activity android:name="com.google.android.apps.mytracks.StatsActivity"
android:exported="false">
<intent-filter> <intent-filter>
<category android:name="android.intent.category.TAB" /> <category android:name="android.intent.category.TAB" />
</intent-filter> </intent-filter>
<!-- Enable searches via SearchActivity. --> <meta-data
<meta-data android:name="android.app.default_searchable" android:name="android.app.default_searchable"
android:value="com.google.android.apps.mytracks.SearchActivity" /> android:value="com.google.android.apps.mytracks.SearchActivity" />
</activity> </activity>
<activity android:name="com.google.android.apps.mytracks.TrackDetailActivity" />
<activity android:name="com.google.android.apps.mytracks.SensorStateActivity" <activity
android:label="@string/menu_sensor_state" /> android:label="@string/track_edit_title"
android:name="com.google.android.apps.mytracks.TrackEditActivity" >
<activity android:name="com.google.android.apps.mytracks.ChartActivity"
android:exported="false">
<intent-filter> <intent-filter>
<category android:name="android.intent.category.TAB" /> <action android:name="android.intent.action.EDIT" />
</intent-filter>
<!-- Enable searches via SearchActivity. --> <category android:name="android.intent.category.BROWSABLE" />
<meta-data android:name="android.app.default_searchable" <category android:name="android.intent.category.DEFAULT" />
android:value="com.google.android.apps.mytracks.SearchActivity" />
</activity>
<activity android:name="com.google.android.apps.mytracks.io.file.SaveActivity"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:noHistory="true">
<intent-filter>
<action android:name="android.intent.action.SAVE" />
<data android:mimeType="vnd.android.cursor.item/vnd.google.track" /> <data android:mimeType="vnd.android.cursor.item/vnd.google.track" />
</intent-filter> </intent-filter>
</activity> </activity>
<activity android:name="com.google.android.apps.mytracks.TrackListActivity" >
<activity android:name="com.google.android.apps.mytracks.io.file.ImportActivity"
android:label="@string/my_tracks_importer"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:noHistory="true">
<intent-filter> <intent-filter>
<action android:name="android.intent.action.VIEW" /> <action android:name="android.intent.action.MAIN" />
<action android:name="android.intent.action.ATTACH_DATA" />
<category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<meta-data
android:name="android.app.default_searchable"
android:value="com.google.android.apps.mytracks.SearchActivity" />
</activity>
<activity
android:label="@string/marker_detail_title"
android:name="com.google.android.apps.mytracks.WaypointDetails" >
<intent-filter>
<action android:name="android.intent.action.EDIT" />
<category android:name="android.intent.category.BROWSABLE" /> <category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="file" /> <category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="application/gpx+xml" />
<data android:mimeType="application/gpx" /> <data android:mimeType="vnd.android.cursor.item/vnd.google.waypoint" />
<data android:mimeType="application/vnd.google-earth.gpx" />
<data android:mimeType="application/vnd.google-earth.gpx+xml" />
</intent-filter> </intent-filter>
</activity> </activity>
<activity android:name="com.google.android.apps.mytracks.WaypointsList" >
<activity android:name="com.google.android.apps.mytracks.WelcomeActivity" <meta-data
android:label="@string/welcome_title" android:name="android.app.default_searchable"
android:exported="false" /> android:value="com.google.android.apps.mytracks.SearchActivity" />
</activity>
<activity android:name="com.google.android.apps.mytracks.SearchActivity" <activity
android:launchMode="singleTop"> android:exported="false"
android:label="@string/welcome_title"
android:name="com.google.android.apps.mytracks.WelcomeActivity" />
<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> <intent-filter>
<action android:name="android.intent.action.SEARCH" /> <action android:name="android.intent.action.SAVE" />
<data android:mimeType="vnd.android.cursor.item/vnd.google.track" />
</intent-filter> </intent-filter>
<meta-data android:name="android.app.searchable"
android:resource="@xml/search"/>
</activity> </activity>
<activity android:name="com.google.android.apps.mytracks.io.fusiontables.SendFusionTablesActivity" />
<activity
android:label="@string/maps_list_title"
android:name="com.google.android.apps.mytracks.io.maps.ChooseMapActivity" />
<activity android:name="com.google.android.apps.mytracks.io.maps.SendMapsActivity" />
<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" />
<service
android:exported="false"
android:name="com.google.android.apps.mytracks.services.ControlRecordingService" />
<service android:name="com.google.android.apps.mytracks.services.RemoveTempFilesService" />
<service
android:enabled="true"
android:exported="true"
android:icon="@drawable/arrow_320"
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" />
<activity android:name="com.google.android.apps.mytracks.io.docs.SendDocsActivity"/> <receiver android:name="com.google.android.apps.mytracks.BootReceiver" >
<activity android:name="com.google.android.apps.mytracks.io.fusiontables.SendFusionTablesActivity"/>
<activity android:name="com.google.android.apps.mytracks.io.maps.ChooseMapActivity"
android:label="@string/maps_list_title"/>
<activity android:name="com.google.android.apps.mytracks.io.maps.SendMapsActivity"/>
<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"/>
<service android:name="com.google.android.apps.mytracks.services.TrackRecordingService"
android:label="@string/my_tracks_recording_service"
android:icon="@drawable/arrow_320"
android:enabled="true"
android:exported="true"
android:permission="com.google.android.apps.mytracks.WRITE_TRACK_DATA" />
<service android:name="com.google.android.apps.mytracks.services.ControlRecordingService"
android:exported="false" />
<service android:name="com.google.android.apps.mytracks.services.RemoveTempFilesService"/>
<receiver android:name="com.google.android.apps.mytracks.BootReceiver">
<intent-filter> <intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" /> <action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter> </intent-filter>
</receiver> </receiver>
<receiver android:name="com.google.android.apps.mytracks.widgets.TrackWidgetProvider" >
<receiver android:name="com.google.android.apps.mytracks.widgets.TrackWidgetProvider">
<intent-filter> <intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" /> <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
<action android:name="com.google.android.apps.mytracks.TRACK_STARTED" /> <action android:name="com.google.android.apps.mytracks.TRACK_STARTED" />
<action android:name="com.google.android.apps.mytracks.TRACK_STOPPED" /> <action android:name="com.google.android.apps.mytracks.TRACK_STOPPED" />
</intent-filter> </intent-filter>
<meta-data android:name="android.appwidget.provider"
android:resource="@xml/track_widget_info" /> <meta-data
android:name="android.appwidget.provider"
android:resource="@xml/track_widget_info" />
</receiver> </receiver>
<!-- My Tracks data provider -->
<provider
android:authorities="com.google.android.maps.mytracks"
android:exported="true"
android:name="com.google.android.apps.mytracks.content.MyTracksProvider"
android:readPermission="com.google.android.apps.mytracks.READ_TRACK_DATA"
android:writePermission="com.google.android.apps.mytracks.WRITE_TRACK_DATA" />
<!-- Search suggestion provider -->
<provider
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> </application>
</manifest>
</manifest>
+20 -9
View File
@@ -3,10 +3,21 @@ own licenses, which allow their usage for the My Tracks application. Any other
applications that wish to use these files should consult the appropriate applications that wish to use these files should consult the appropriate
licenses or the JAR's authors. licenses or the JAR's authors.
google-api-client/ Android Support Package:
- see http://code.google.com/p/google-api-java-client/. android-support-v4.jar
- contains Google API client library, google-api-client-1.5.0-beta.jar, and its - see http://developer.android.com/sdk/compatibility-library.html
dependencies.
Google APIs Client Library for Java:
commons-codec-1.3.jar
commons-logging-1.1.1.jar
google-api-client-1.5.0-beta.jar
google-http-client-1.5.0-beta.jar
google-oauth-client-1.5.0-beta.jar
gson-1.6.jar
guava-r09.jar
jackson-core-asl-1.6.7.jar
jsr305-1.3.9.jar
- see http://code.google.com/p/google-api-java-client/
- google-api-client-1.5.0-beta.jar depends on protobuf-java-2.2.0.jar, however, - google-api-client-1.5.0-beta.jar depends on protobuf-java-2.2.0.jar, however,
MyTracksLib already includes protobuf-java.2.3.0-lite.jar. Thus using the MyTracksLib already includes protobuf-java.2.3.0-lite.jar. Thus using the
newer version, protobuf-java.2.3.0-lite.jar. newer version, protobuf-java.2.3.0-lite.jar.
@@ -14,9 +25,9 @@ google-api-client/
some of its classes are already included in the android framework, thus not some of its classes are already included in the android framework, thus not
including xpp3-1.1.4c.jar. including xpp3-1.1.4c.jar.
google-common.jar Google Analytics:
googleloginclient-helper.jar
libGoogleAnalytics.jar libGoogleAnalytics.jar
- see http://code.google.com/mobile/analytics/docs/. - see http://code.google.com/apis/analytics/docs/mobile/android.html
Others:
google-common.jar
Binary file not shown.
Binary file not shown.
+68 -29
View File
@@ -1,52 +1,56 @@
-target 6 #
-optimizationpasses 5 # Section 1
# Default eclipse project proguard settings.
#
-dontusemixedcaseclassnames -dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses -dontskipnonpubliclibraryclasses
-dontpreverify
-verbose -verbose
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*
# Add the libraries, but ignore warnings about them -dontpreverify
-libraryjars libs
-libraryjars ../MyTracksLib/libs
-dontwarn com.google.android.googleapps.**
-dontwarn com.android.common.**
-dontwarn com.google.android.gsf.**
-dontwarn org.codehaus.**
-dontwarn com.google.appengine.**
-dontwarn org.apache.avalon.framework.logger.**
-dontwarn org.apache.log.**
-dontwarn org.apache.log4j.**
-dontwarn javax.servlet.**
# Make our stack traces useful -optimizations !code/simplification/arithmetic,!code/simplification/cast,!field/*,!class/merging/*
# Line numbers will be correct, file names will be replaced by "MT" since the # change from 5 to 2. With 5 passes, the CursorLoader in the android.support.v4 will not compile.
# class name is enough to get the file name. # See http://stackoverflow.com/questions/6605971/android-sdk-tools-revision-12-has-problem-with-proguard-error-conversion-to
-renamesourcefileattribute MT -optimizationpasses 2
-keepattributes SourceFile,LineNumberTable -allowaccessmodification
# Keep everything android references from XMLs -keepattributes *Annotation*
-keep public class * extends android.app.Activity -keep public class * extends android.app.Activity
-keep public class * extends android.app.Application -keep public class * extends android.app.Application
-keep public class * extends android.app.Service -keep public class * extends android.app.Service
-keep public class * extends android.app.backup.BackupAgent
-keep public class * extends android.content.BroadcastReceiver -keep public class * extends android.content.BroadcastReceiver
-keep public class * extends android.content.ContentProvider -keep public class * extends android.content.ContentProvider
-keep public class * extends android.app.backup.BackupAgent
-keep public class * extends android.preference.Preference -keep public class * extends android.preference.Preference
-keep public class * extends android.support.v4.app.Fragment
-keep public class * extends android.app.Fragment
-keep public class com.android.vending.licensing.ILicensingService -keep public class com.android.vending.licensing.ILicensingService
# For native methods, see http://proguard.sourceforge.net/manual/examples.html#native
-keepclasseswithmembernames class * { -keepclasseswithmembernames class * {
native <methods>; native <methods>;
} }
-keepclasseswithmembernames class * { -keep public class * extends android.view.View {
public <init>(android.content.Context);
public <init>(android.content.Context, android.util.AttributeSet);
public <init>(android.content.Context, android.util.AttributeSet, int);
public void set*(...);
}
-keepclasseswithmembers class * {
public <init>(android.content.Context, android.util.AttributeSet); public <init>(android.content.Context, android.util.AttributeSet);
} }
-keepclasseswithmembernames class * { -keepclasseswithmembers class * {
public <init>(android.content.Context, android.util.AttributeSet, int); public <init>(android.content.Context, android.util.AttributeSet, int);
} }
-keepclassmembers class * extends android.app.Activity {
public void *(android.view.View);
}
# For enumeration classes, see http://proguard.sourceforge.net/manual/examples.html#enumerations
-keepclassmembers enum * { -keepclassmembers enum * {
public static **[] values(); public static **[] values();
public static ** valueOf(java.lang.String); public static ** valueOf(java.lang.String);
@@ -56,20 +60,55 @@
public static final android.os.Parcelable$Creator *; public static final android.os.Parcelable$Creator *;
} }
# Needed by google-api-client to keep generic types and @Key annotations accessed via reflection -keepclassmembers class **.R$* {
public static <fields>;
}
# The support library contains references to newer platform versions.
# Don't warn about those in case this app is linking against an older
# platform version. We know about them, and they are safe.
-dontwarn android.support.**
#
# Section 2
# Google APIs Client Library for Java proguard settings.
#
# Needed by google-api-client to keep generic types and @Key annotations accessed via reflection
-keepclassmembers class * { -keepclassmembers class * {
@com.google.api.client.util.Key <fields>; @com.google.api.client.util.Key <fields>;
} }
-keepattributes Signature,RuntimeVisibleAnnotations,AnnotationDefault -keepattributes Signature,RuntimeVisibleAnnotations,AnnotationDefault
# Needed by Guava # Needed by Guava
-dontwarn sun.misc.Unsafe -dontwarn sun.misc.Unsafe
# See https://groups.google.com/forum/#!topic/guava-discuss/YCZzeCiIVoI
-dontwarn com.google.common.collect.MinMaxPriorityQueue
#
# Section 3
# My Tracks specific proguard settings.
#
# Add the libraries, but ignore warnings about them
-libraryjars libs
-libraryjars ../MyTracksLib/libs
-dontwarn com.android.common.**
-dontwarn com.google.android.googleapps.**
-dontwarn com.google.android.gsf.**
-dontwarn javax.servlet.**
-dontwarn org.apache.avalon.framework.logger.**
-dontwarn org.apache.log.**
-dontwarn org.apache.log4j.**
# Make our stack traces useful
# Line numbers will be correct, file names will be replaced by "MT" since the
# class name is enough to get the file name.
-renamesourcefileattribute MT
-keepattributes SourceFile,LineNumberTable
# Keep services needed by ANT+ protocol # Keep services needed by ANT+ protocol
-keep public class com.dsi.ant.IAnt_6 -keep public class com.dsi.ant.IAnt_6
-keep public class com.dsi.ant.IAnt -keep public class com.dsi.ant.IAnt
-keep public class com.dsi.ant.IServiceSettings -keep public class com.dsi.ant.IServiceSettings
Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 639 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 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.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 343 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 2.9 KiB

Before

Width:  |  Height:  |  Size: 4.2 KiB

After

Width:  |  Height:  |  Size: 4.2 KiB

Before

Width:  |  Height:  |  Size: 4.5 KiB

After

Width:  |  Height:  |  Size: 4.5 KiB

Before

Width:  |  Height:  |  Size: 671 B

After

Width:  |  Height:  |  Size: 671 B

Before

Width:  |  Height:  |  Size: 680 B

After

Width:  |  Height:  |  Size: 680 B

Before

Width:  |  Height:  |  Size: 738 B

After

Width:  |  Height:  |  Size: 738 B

Before

Width:  |  Height:  |  Size: 783 B

After

Width:  |  Height:  |  Size: 783 B

Before

Width:  |  Height:  |  Size: 746 B

After

Width:  |  Height:  |  Size: 746 B

Before

Width:  |  Height:  |  Size: 720 B

After

Width:  |  Height:  |  Size: 720 B

Before

Width:  |  Height:  |  Size: 703 B

After

Width:  |  Height:  |  Size: 703 B

Before

Width:  |  Height:  |  Size: 671 B

After

Width:  |  Height:  |  Size: 671 B

Before

Width:  |  Height:  |  Size: 810 B

After

Width:  |  Height:  |  Size: 810 B

Before

Width:  |  Height:  |  Size: 698 B

After

Width:  |  Height:  |  Size: 698 B

Before

Width:  |  Height:  |  Size: 694 B

After

Width:  |  Height:  |  Size: 694 B

Before

Width:  |  Height:  |  Size: 725 B

After

Width:  |  Height:  |  Size: 725 B

Before

Width:  |  Height:  |  Size: 805 B

After

Width:  |  Height:  |  Size: 805 B

Before

Width:  |  Height:  |  Size: 812 B

After

Width:  |  Height:  |  Size: 812 B

Before

Width:  |  Height:  |  Size: 689 B

After

Width:  |  Height:  |  Size: 689 B

Before

Width:  |  Height:  |  Size: 760 B

After

Width:  |  Height:  |  Size: 760 B

Before

Width:  |  Height:  |  Size: 707 B

After

Width:  |  Height:  |  Size: 707 B

Before

Width:  |  Height:  |  Size: 743 B

After

Width:  |  Height:  |  Size: 743 B

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

Before

Width:  |  Height:  |  Size: 8.4 KiB

After

Width:  |  Height:  |  Size: 8.4 KiB

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

Before

Width:  |  Height:  |  Size: 3.3 KiB

After

Width:  |  Height:  |  Size: 3.3 KiB

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 2.9 KiB

Before

Width:  |  Height:  |  Size: 4.2 KiB

After

Width:  |  Height:  |  Size: 4.2 KiB

Before

Width:  |  Height:  |  Size: 3.8 KiB

After

Width:  |  Height:  |  Size: 3.8 KiB

Before

Width:  |  Height:  |  Size: 3.4 KiB

After

Width:  |  Height:  |  Size: 3.4 KiB

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 3.0 KiB

Before

Width:  |  Height:  |  Size: 7.2 KiB

After

Width:  |  Height:  |  Size: 7.2 KiB

Before

Width:  |  Height:  |  Size: 913 B

After

Width:  |  Height:  |  Size: 913 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 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.

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.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Before

Width:  |  Height:  |  Size: 3.1 KiB

After

Width:  |  Height:  |  Size: 3.1 KiB

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 2.9 KiB

Before

Width:  |  Height:  |  Size: 4.2 KiB

After

Width:  |  Height:  |  Size: 4.2 KiB

Before

Width:  |  Height:  |  Size: 3.8 KiB

After

Width:  |  Height:  |  Size: 3.8 KiB

Before

Width:  |  Height:  |  Size: 3.5 KiB

After

Width:  |  Height:  |  Size: 3.5 KiB

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 3.0 KiB

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

Before

Width:  |  Height:  |  Size: 286 B

After

Width:  |  Height:  |  Size: 286 B

Before

Width:  |  Height:  |  Size: 275 B

After

Width:  |  Height:  |  Size: 275 B

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 974 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

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