From 2a5921d3d0f34de12e17dddc493c1dc6313cac21 Mon Sep 17 00:00:00 2001 From: Rodrigo Damazio Date: Wed, 2 Mar 2011 14:20:59 -0300 Subject: [PATCH] Merging Marian's change to German translation. --- .hgignore | 1 + MyTracks/.classpath | 1 + MyTracks/AndroidManifest.xml | 15 +- MyTracks/default.properties | 8 +- MyTracks/libs/README.txt | 17 + MyTracks/libs/libmymaps.jar | Bin 0 -> 32416 bytes MyTracks/proguard.cfg | 11 +- .../ic_menu_chartsettings.png | Bin .../ic_menu_lastsegment.png | Bin .../ic_menu_pauserecording.png | Bin .../ic_menu_recordtrack.png | Bin .../ic_menu_sensorstatus.png | Bin .../ic_menu_statistics.png | Bin .../ic_menu_stoprecording.png | Bin .../ic_menu_tracklist.png | Bin .../ic_menu_waypoints.png | Bin MyTracks/res/layout/list.xml | 103 ++ MyTracks/res/layout/mytracks_list.xml | 6 + .../res/layout/mytracks_send_to_google.xml | 35 + MyTracks/res/values-ca/strings.xml | 17 +- MyTracks/res/values-es-rES/strings.xml | 1 - MyTracks/res/values-es/strings.xml | 1 - MyTracks/res/values-fr/arrays.xml | 9 +- MyTracks/res/values-fr/strings.xml | 94 +- MyTracks/res/values-it/strings.xml | 2 +- MyTracks/res/values-ja/arrays.xml | 14 +- MyTracks/res/values-ja/strings.xml | 188 ++- MyTracks/res/values-pl/strings.xml | 1 - MyTracks/res/values-pt-rBR/strings.xml | 54 +- MyTracks/res/values-sv/strings.xml | 1 - MyTracks/res/values-zh-rCN/strings.xml | 1 - MyTracks/res/values/arrays.xml | 6 + MyTracks/res/values/keys.xml | 5 + MyTracks/res/values/strings.xml | 53 +- MyTracks/res/xml/preferences.xml | 27 +- MyTracks/src/com/dsi/ant/AntDefine.java | 8 - MyTracks/src/com/dsi/ant/AntInterface.java | 1198 ++++++++++------- .../src/com/dsi/ant/AntInterfaceIntent.java | 7 +- MyTracks/src/com/dsi/ant/IAnt_6.aidl | 77 ++ MyTracks/src/com/dsi/ant/Version.java | 35 + .../ant/exception/AntInterfaceException.java | 20 + .../dsi/ant/exception/AntRemoteException.java | 23 + .../AntServiceNotConnectedException.java | 19 + .../android/apps/mytracks/ChartActivity.java | 184 ++- .../android/apps/mytracks/ChartView.java | 13 +- .../android/apps/mytracks/DialogManager.java | 11 +- .../apps/mytracks/ExportAllTracks.java | 41 +- .../apps/mytracks/ImportAllTracks.java | 217 +++ .../android/apps/mytracks/MenuManager.java | 2 +- .../android/apps/mytracks/MyMapsList.java | 210 +++ .../apps/mytracks/MyMapsListAdapter.java | 135 ++ .../android/apps/mytracks/MyTracks.java | 489 ++++--- .../apps/mytracks/MyTracksConstants.java | 40 +- .../android/apps/mytracks/MyTracksList.java | 7 +- .../android/apps/mytracks/MyTracksMap.java | 7 +- .../apps/mytracks/MyTracksSettings.java | 62 +- .../apps/mytracks/SendToGoogleDialog.java | 40 +- .../mytracks/content/MyTracksProvider.java | 8 +- .../apps/mytracks/io/CsvTrackWriter.java | 13 +- .../android/apps/mytracks/io/GpxImporter.java | 31 +- .../apps/mytracks/io/GpxTrackWriter.java | 64 +- .../apps/mytracks/io/MyMapsFactory.java | 68 + .../android/apps/mytracks/io/SendToDocs.java | 7 +- .../apps/mytracks/io/SendToFusionTables.java | 156 ++- .../apps/mytracks/io/SendToMyMaps.java | 458 +++++++ .../android/apps/mytracks/io/TrackWriter.java | 3 +- .../mytracks/io/gdata/AndroidGDataClient.java | 1 + .../apps/mytracks/io/gdata/GDataWrapper.java | 7 +- .../services/FroyoStatusAnnouncerTask.java | 78 ++ .../services/StatusAnnouncerFactory.java | 6 +- .../services/StatusAnnouncerTask.java | 8 +- .../services/TrackRecordingService.java | 114 +- .../sensors/AntDirectSensorManager.java | 108 +- .../services/sensors/AntSRMSensorManager.java | 66 +- .../services/sensors/AntSensorManager.java | 388 ++++-- .../sensors/BluetoothConnectionManager.java | 53 +- .../sensors/BluetoothSensorManager.java | 22 +- .../services/sensors/SensorManager.java | 25 +- .../sensors/SensorManagerFactory.java | 19 +- .../services/sensors/ZephyrMessageParser.java | 9 +- .../sensors/ant/AntChannelIdMessage.java | 56 + .../ant/AntChannelResponseMessage.java | 49 + .../services/sensors/ant/AntMessage.java | 32 + .../sensors/ant/AntStartupMessage.java | 35 + .../services/sensors/ant/AntUtils.java | 35 + .../mytracks/stats/TripStatisticsBuilder.java | 10 +- .../apps/mytracks/util/ApiFeatures.java | 45 +- .../apps/mytracks/util/ChartURLGenerator.java | 9 +- .../mytracks/util/CupcakePlatformAdapter.java | 28 +- .../util/GingerbreadPlatformAdapter.java | 1 - .../apps/mytracks/util/MyTracksUtils.java | 39 + .../XmlDocsGDataParserFactory.java} | 51 +- .../wireless/gdata/maps/MapFeatureEntry.java | 50 - .../wireless/gdata/maps/MapsClient.java | 113 -- .../gdata/maps/xml/XmlMapsGDataParser.java | 178 --- .../maps/xml/XmlMapsGDataSerializer.java | 277 ---- MyTracksLib/default.properties | 2 +- MyTracksTest/.factorypath | 5 +- MyTracksTest/default.properties | 2 +- .../apps/mytracks/io/GpxTrackWriterTest.java | 83 +- .../mytracks/io/TrackFormatWriterTest.java | 2 +- .../apps/mytracks/io/TrackWriterTest.java | 11 +- .../io/backup/PreferenceBackupHelperTest.java | 11 + .../sensors/AntDirectSensorManagerTest.java | 36 +- .../sensors/AntSensorManagerTest.java | 85 ++ .../sensors/ant/AntChannelIdMessageTest.java | 35 + .../ant/AntChannelResponseMessageTest.java | 36 + .../services/sensors/ant/AntMessageTest.java | 30 + .../sensors/ant/AntStartupMessageTest.java | 29 + .../mytracks/util/ChartURLGeneratorTest.java | 3 +- SignalStrengthSampler/default.properties | 2 +- SignalStrengthSamplerTest/default.properties | 2 +- 112 files changed, 4398 insertions(+), 2212 deletions(-) create mode 100644 MyTracks/libs/README.txt create mode 100644 MyTracks/libs/libmymaps.jar rename MyTracks/res/{drawable-mdpi => drawable}/ic_menu_chartsettings.png (100%) rename MyTracks/res/{drawable-mdpi => drawable}/ic_menu_lastsegment.png (100%) rename MyTracks/res/{drawable-mdpi => drawable}/ic_menu_pauserecording.png (100%) rename MyTracks/res/{drawable-mdpi => drawable}/ic_menu_recordtrack.png (100%) rename MyTracks/res/{drawable-mdpi => drawable}/ic_menu_sensorstatus.png (100%) rename MyTracks/res/{drawable-mdpi => drawable}/ic_menu_statistics.png (100%) rename MyTracks/res/{drawable-mdpi => drawable}/ic_menu_stoprecording.png (100%) rename MyTracks/res/{drawable-mdpi => drawable}/ic_menu_tracklist.png (100%) rename MyTracks/res/{drawable-mdpi => drawable}/ic_menu_waypoints.png (100%) create mode 100644 MyTracks/res/layout/list.xml create mode 100644 MyTracks/src/com/dsi/ant/IAnt_6.aidl create mode 100644 MyTracks/src/com/dsi/ant/Version.java create mode 100644 MyTracks/src/com/dsi/ant/exception/AntInterfaceException.java create mode 100644 MyTracks/src/com/dsi/ant/exception/AntRemoteException.java create mode 100644 MyTracks/src/com/dsi/ant/exception/AntServiceNotConnectedException.java create mode 100644 MyTracks/src/com/google/android/apps/mytracks/ImportAllTracks.java create mode 100644 MyTracks/src/com/google/android/apps/mytracks/MyMapsList.java create mode 100644 MyTracks/src/com/google/android/apps/mytracks/MyMapsListAdapter.java create mode 100644 MyTracks/src/com/google/android/apps/mytracks/io/MyMapsFactory.java create mode 100644 MyTracks/src/com/google/android/apps/mytracks/io/SendToMyMaps.java create mode 100644 MyTracks/src/com/google/android/apps/mytracks/services/FroyoStatusAnnouncerTask.java create mode 100644 MyTracks/src/com/google/android/apps/mytracks/services/sensors/ant/AntChannelIdMessage.java create mode 100644 MyTracks/src/com/google/android/apps/mytracks/services/sensors/ant/AntChannelResponseMessage.java create mode 100644 MyTracks/src/com/google/android/apps/mytracks/services/sensors/ant/AntMessage.java create mode 100644 MyTracks/src/com/google/android/apps/mytracks/services/sensors/ant/AntStartupMessage.java create mode 100644 MyTracks/src/com/google/android/apps/mytracks/services/sensors/ant/AntUtils.java rename MyTracks/src/com/google/wireless/gdata/{maps/xml/XmlMapsGDataParserFactory.java => docs/XmlDocsGDataParserFactory.java} (57%) delete mode 100644 MyTracks/src/com/google/wireless/gdata/maps/MapFeatureEntry.java delete mode 100644 MyTracks/src/com/google/wireless/gdata/maps/MapsClient.java delete mode 100644 MyTracks/src/com/google/wireless/gdata/maps/xml/XmlMapsGDataParser.java delete mode 100644 MyTracks/src/com/google/wireless/gdata/maps/xml/XmlMapsGDataSerializer.java create mode 100644 MyTracksTest/src/com/google/android/apps/mytracks/services/sensors/AntSensorManagerTest.java create mode 100644 MyTracksTest/src/com/google/android/apps/mytracks/services/sensors/ant/AntChannelIdMessageTest.java create mode 100644 MyTracksTest/src/com/google/android/apps/mytracks/services/sensors/ant/AntChannelResponseMessageTest.java create mode 100644 MyTracksTest/src/com/google/android/apps/mytracks/services/sensors/ant/AntMessageTest.java create mode 100644 MyTracksTest/src/com/google/android/apps/mytracks/services/sensors/ant/AntStartupMessageTest.java diff --git a/.hgignore b/.hgignore index 3bf9706a8..1bbe85f92 100644 --- a/.hgignore +++ b/.hgignore @@ -5,3 +5,4 @@ syntax:glob */proguard/** .metadata MyTracksTest/annotations.log +MyTracks/src/com/google/android/apps/mytracks/io/mymaps diff --git a/MyTracks/.classpath b/MyTracks/.classpath index 636d59be6..72de4ae42 100644 --- a/MyTracks/.classpath +++ b/MyTracks/.classpath @@ -8,6 +8,7 @@ + diff --git a/MyTracks/AndroidManifest.xml b/MyTracks/AndroidManifest.xml index 51487fe03..e618828c3 100755 --- a/MyTracks/AndroidManifest.xml +++ b/MyTracks/AndroidManifest.xml @@ -17,8 +17,8 @@ limitations under the License. + android:versionCode="25" + android:versionName="1.1.2"> @@ -56,6 +56,11 @@ limitations under the License. android:label="MyTracks" android:exported="false" /> + + @@ -122,6 +127,7 @@ limitations under the License. + @@ -158,14 +164,15 @@ limitations under the License. - - + + + diff --git a/MyTracks/default.properties b/MyTracks/default.properties index 8a7ac55df..061e30159 100644 --- a/MyTracks/default.properties +++ b/MyTracks/default.properties @@ -10,6 +10,10 @@ # Indicates whether an apk should be generated for each density. split.density=false # Project target. -target=Google Inc.:Google APIs:9 -proguard.config=proguard.cfg +target=Google Inc.:Google APIs:11 android.library.reference.1=../MyTracksLib/ + +# ProGuard is turned off while we investigate the removal of code that +# isn't actually dead from Fusion Tables. See issue 303 for an example of +# the result of that removal. +#proguard.config=proguard.cfg diff --git a/MyTracks/libs/README.txt b/MyTracks/libs/README.txt new file mode 100644 index 000000000..6e03a45b1 --- /dev/null +++ b/MyTracks/libs/README.txt @@ -0,0 +1,17 @@ +The libraries contained here in binary format are licensed according to their +own licenses, which allow their usage for the My Tracks application. Any other +applications that wish to use these files should consult the appropriate +licenses or the JAR's authors. + +References are provided to the libraries: + +accounts.jar (Android accounts library): +http://code.google.com/p/libs-for-android/wiki/AccountsLibrary + +google-api-client-*.jar (GData client): +http://code.google.com/p/google-api-java-client/ + +google-common.jar, +googleloginclient-helper.jar, +libmymaps.jar (Google My Maps upload library): +Licensed exclusively for use in My Tracks and derived Android applications. diff --git a/MyTracks/libs/libmymaps.jar b/MyTracks/libs/libmymaps.jar new file mode 100644 index 0000000000000000000000000000000000000000..72659cdc615ddac0d71a2dbef21c0faaf20badbc GIT binary patch literal 32416 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 T`{ODhczOVz1|Bb*f4uuI{2j(c literal 0 HcmV?d00001 diff --git a/MyTracks/proguard.cfg b/MyTracks/proguard.cfg index 7a2867d7e..8a6087a72 100644 --- a/MyTracks/proguard.cfg +++ b/MyTracks/proguard.cfg @@ -12,14 +12,23 @@ -dontwarn com.google.android.googleapps.** -dontwarn com.android.common.** -dontwarn com.google.android.gsf.** +-dontwarn org.codehaus.** +-dontwarn com.google.appengine.** + +# 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 everything android references from XMLs -keep public class * extends android.app.Activity -keep public class * extends android.app.Application -keep public class * extends android.app.Service --keep public class * extends android.app,backup.BackupAgent +-keep public class * extends android.app.backup.BackupAgent -keep public class * extends android.content.BroadcastReceiver -keep public class * extends android.content.ContentProvider +-keep public class * extends android.preference.Preference -keep public class com.android.vending.licensing.ILicensingService -keepclasseswithmembernames class * { diff --git a/MyTracks/res/drawable-mdpi/ic_menu_chartsettings.png b/MyTracks/res/drawable/ic_menu_chartsettings.png similarity index 100% rename from MyTracks/res/drawable-mdpi/ic_menu_chartsettings.png rename to MyTracks/res/drawable/ic_menu_chartsettings.png diff --git a/MyTracks/res/drawable-mdpi/ic_menu_lastsegment.png b/MyTracks/res/drawable/ic_menu_lastsegment.png similarity index 100% rename from MyTracks/res/drawable-mdpi/ic_menu_lastsegment.png rename to MyTracks/res/drawable/ic_menu_lastsegment.png diff --git a/MyTracks/res/drawable-mdpi/ic_menu_pauserecording.png b/MyTracks/res/drawable/ic_menu_pauserecording.png similarity index 100% rename from MyTracks/res/drawable-mdpi/ic_menu_pauserecording.png rename to MyTracks/res/drawable/ic_menu_pauserecording.png diff --git a/MyTracks/res/drawable-mdpi/ic_menu_recordtrack.png b/MyTracks/res/drawable/ic_menu_recordtrack.png similarity index 100% rename from MyTracks/res/drawable-mdpi/ic_menu_recordtrack.png rename to MyTracks/res/drawable/ic_menu_recordtrack.png diff --git a/MyTracks/res/drawable-mdpi/ic_menu_sensorstatus.png b/MyTracks/res/drawable/ic_menu_sensorstatus.png similarity index 100% rename from MyTracks/res/drawable-mdpi/ic_menu_sensorstatus.png rename to MyTracks/res/drawable/ic_menu_sensorstatus.png diff --git a/MyTracks/res/drawable-mdpi/ic_menu_statistics.png b/MyTracks/res/drawable/ic_menu_statistics.png similarity index 100% rename from MyTracks/res/drawable-mdpi/ic_menu_statistics.png rename to MyTracks/res/drawable/ic_menu_statistics.png diff --git a/MyTracks/res/drawable-mdpi/ic_menu_stoprecording.png b/MyTracks/res/drawable/ic_menu_stoprecording.png similarity index 100% rename from MyTracks/res/drawable-mdpi/ic_menu_stoprecording.png rename to MyTracks/res/drawable/ic_menu_stoprecording.png diff --git a/MyTracks/res/drawable-mdpi/ic_menu_tracklist.png b/MyTracks/res/drawable/ic_menu_tracklist.png similarity index 100% rename from MyTracks/res/drawable-mdpi/ic_menu_tracklist.png rename to MyTracks/res/drawable/ic_menu_tracklist.png diff --git a/MyTracks/res/drawable-mdpi/ic_menu_waypoints.png b/MyTracks/res/drawable/ic_menu_waypoints.png similarity index 100% rename from MyTracks/res/drawable-mdpi/ic_menu_waypoints.png rename to MyTracks/res/drawable/ic_menu_waypoints.png diff --git a/MyTracks/res/layout/list.xml b/MyTracks/res/layout/list.xml new file mode 100644 index 000000000..33567b8d2 --- /dev/null +++ b/MyTracks/res/layout/list.xml @@ -0,0 +1,103 @@ + + + + + + + + + + + + + + + + + + + diff --git a/MyTracks/res/layout/mytracks_list.xml b/MyTracks/res/layout/mytracks_list.xml index ec1e189cb..720984dd8 100644 --- a/MyTracks/res/layout/mytracks_list.xml +++ b/MyTracks/res/layout/mytracks_list.xml @@ -50,6 +50,12 @@ limitations under the License. android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1"/> +