String cleanups and responded to most comments.

This commit is contained in:
leifhendrik
2011-01-11 12:29:22 -08:00
parent a68cdaf2ba
commit 08339a1f65
22 changed files with 244 additions and 448 deletions
+2 -8
View File
@@ -56,11 +56,6 @@ limitations under the License.
android:label="MyTracks"
android:exported="false" />
<activity android:name="com.google.android.apps.mymaps.MyMapsList"
android:label="@string/map_list_title"
android:configChanges="mcc|mnc|locale|touchscreen|keyboard|keyboardHidden|navigation|orientation|fontScale"
android:exported="false" />
<activity android:name="com.google.android.apps.mytracks.MyTracksList"
android:label="Recorded Tracks" />
@@ -157,12 +152,11 @@ limitations under the License.
<uses-permission android:name="com.google.android.apps.mytracks.WRITE_TRACK_DATA" />
<uses-permission android:name="com.google.android.apps.mytracks.TRACK_NOTIFICATIONS" />
<!-- Features required
<!-- Features required -->
<uses-feature android:name="android.hardware.location" android:required="true"/>
<uses-feature android:name="android.hardware.location.gps" android:required="true"/>
<uses-feature android:name="android.hardware.touchscreen" android:required="true"/>
-->
<!-- Features optional -->
<uses-feature android:name="android.hardware.bluetooth" android:required="false"/>
<uses-feature android:name="android.hardware.location.network" android:required="false"/>
-103
View File
@@ -1,103 +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.
-->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apl/res/com.google.android.maps"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@drawable/list_bar"
android:layout_weight="0"
android:padding="3dip">
<TextView android:id="@+id/message"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="16dip"
android:textColor="#fff"
android:text="@string/select_map_message"
android:layout_weight="0"/>
</LinearLayout>
<ListView android:id="@+id/maplist"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"/>
<TextView android:id="@+id/mapslist_empty"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_gravity="center"
android:gravity="center"
android:padding="3dip"
android:textSize="16dip"
android:textColor="#c00"
android:textStyle="bold"
android:text="@string/mapslist_no_maps_available"
android:visibility="gone"/>
<TextView android:id="@+id/failed"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center"
android:padding="3dip"
android:textSize="16dip"
android:textColor="#c00"
android:textStyle="bold"
android:text="@string/maps_list_failed"
android:visibility="gone"/>
<LinearLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@drawable/list_bar"
android:layout_weight="0"
android:padding="3dip">
<LinearLayout android:id="@+id/loading"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:padding="3dip"
android:layout_gravity="center">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"/>
<ProgressBar
android:layout_height="20dip"
android:layout_width="20dip"
android:layout_gravity="center"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:paddingLeft="3dip"
android:textSize="16dip"
android:textColor="#fff"
android:textStyle="bold"
android:text="@string/maps_list_loading"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"/>
</LinearLayout>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"/>
</LinearLayout>
</LinearLayout>
+4 -21
View File
@@ -104,6 +104,9 @@ limitations under the License.
<string name="success">Fet</string>
<string name="waypoint">Punt de referència</string>
<string name="cancel">Cancel·la</string>
<string name="close">Tanca</string>
<string name="edit">Edita</string>
<string name="save">Desa</string>
<!-- Placemark labels for start and end of track -->
<string name="start">(Inici)</string>
@@ -241,27 +244,6 @@ limitations under the License.
<!-- MyTracksSky -->
<string name="mytracks_sky">Satèl·lits GPS</string>
<!-- My Maps -->
<string name="select_map_message">Seleccioneu un mapa del vostre compte:</string>
<string name="create_new_map">Crea un mapa nou...</string>
<string name="map_list_title">Envia a Google My Maps</string>
<string name="maps_list_loading">S\'estan carregant els mapes...</string>
<string name="maps_list_failed">No s\'han pogut carregar els vostres mapes en aquest moment</string>
<string name="open_map">Selecciona aquest mapa</string>
<string name="edit_map_details">Edita els detalls del mapa</string>
<string name="share_map">Comparteix el mapa amb amics</string>
<string name="share_track">Comparteix la ruta amb amics</string>
<string name="delete_map">Elimina el mapa del vostre compte</string>
<string name="map_title">Títol del mapa:</string>
<string name="map_description">Descripció del mapa:</string>
<string name="map_searchable_edit">Fes que aquest mapa i els seus continguts apareguen als resultats de cerca</string>
<string name="map_not_searchable_edit">No permetis que aquest mapa ni els seus continguts es mostrin als resultats de cerca, tot i que sí es podrà visualitzar per altres amb l\'adreça URL directa</string>
<string name="map_searchable">Aquest mapa i els seus continguts es mostraran als resultats de cerca</string>
<string name="map_not_searchable">Ni els mapes ni els seus continguts es mostraran als resultats de cerca, però podran visualitzar-se per altres a través d\'un enllaç directe.</string>
<string name="close">Tanca</string>
<string name="edit">Edita</string>
<string name="save">Desa</string>
<!-- Sharing -->
<string name="share_map_subject">M\'agradaria compartir un mapa amb tu</string>
<string name="share_map_body_format">Crec que estaràs interessat en aquest mapa:
@@ -271,6 +253,7 @@ limitations under the License.
<string name="send_track_body_format">Crec que estaràs interessat en aquesta ruta.
Per verue aquesta ruta fes servir Google Earth o altre programari de mapes.</string>
<string name="share_track">Comparteix la ruta amb amics</string>
<!-- Visibility -->
<string name="public_map">Públic</string>
+7
View File
@@ -97,6 +97,8 @@ limitations under the License.
<string name="success">Erfolgreich</string>
<string name="waypoint">Wegpunkt</string>
<string name="cancel">Abbrechen</string>
<string name="edit">Bearbeiten</string>
<string name="save">Sichern</string>
<!-- Placemark labels for start and end of track -->
<string name="start">(Anfang)</string>
@@ -202,6 +204,11 @@ limitations under the License.
%s.</string>
<string name="share_track">Track mit Freunden teilen</string>
<!-- Visibility -->
<string name="public_map">Öffentlich</string>
<string name="unlisted_map">Nicht in Suchergebnissen enthalten.</string>
<string name="mapslist_no_maps_available">Du hast noch keine Karten.</string>
<!-- Statistics View -->
<!-- Average Moving -->
<string name="average_moving_speed_label">Durchschnitt in Bew.</string>
+4
View File
@@ -207,6 +207,10 @@ limitations under the License.
Para ver este recorrido usa Google Earth o algún otro software de mapeo.</string>
<string name="share_track">Compartir recorrido con amigos</string>
<!-- Visibility -->
<string name="public_map">Público</string>
<string name="unlisted_map">No listado</string>
<string name="mapslist_no_maps_available">Aún no tienes ningún mapa.</string>
<!-- Statistics View -->
<!-- Average Moving -->
+5 -21
View File
@@ -100,6 +100,9 @@ limitations under the License.
<string name="error">Erreur</string>
<string name="waypoint">Point de passage</string>
<string name="cancel">Annuler</string>
<string name="close">Fermer</string>
<string name="edit">Modifier</string>
<string name="save">Enregistrer</string>
<!-- Placemark labels for start and end of track -->
<string name="start">(Début)</string>
@@ -194,28 +197,8 @@ limitations under the License.
<!-- MyTracksSky -->
<string name="mytracks_sky">Satellites GPS</string>
<!-- MyMaps -->
<string name="select_map_message">Choisissez une carte de votre compte :</string>
<string name="create_new_map">Création d\'une nouvelle carte en cours...</string>
<string name="map_list_title">Envoyer à Google Mes cartes</string>
<string name="maps_list_loading">Chargements de vos cartes...</string>
<string name="maps_list_failed">Vos cartes n\'ont pu être chargées</string>
<string name="open_map">Sélectionnez la carte</string>
<string name="edit_map_details">Consulter les détails de la carte</string>
<string name="share_map">Partager.</string>
<string name="share_track">Partager des parcours.</string>
<string name="delete_map">Supprimer la carte de votre compte.</string>
<string name="map_title">Titre de la carte :</string>
<string name="map_description">Description de la carte :</string>
<string name="map_searchable_edit">Rendre cette carte et son contenu visibles dans les résultats de recherche.</string>
<string name="map_not_searchable_edit">Ne pas inclure cette carte et sont contenu dans les résultats de recherche. Ils seront cependant consultables par d\'autres utilisateurs en utilisant l\'adresse URL exacte</string>
<string name="map_searchable">Cette carte et son contenu seront visibles dans les résultats de recherche</string>
<string name="map_not_searchable">Ni cette carte, ni son contenu seront visible dans les résultats de recherche, mais ils seront consultables en utilisant l\'adresse URL exacte</string>
<string name="close">Fermer</string>
<string name="edit">Modifier</string>
<string name="save">Enregistrer</string>
<!-- Sharing -->
<string name="share_map">Partager.</string>
<string name="share_map_subject">Je voudrais partager ma carte avec vous</string>
<string name="share_map_body_format">Je pense que cette carte vous intéressera :
@@ -224,6 +207,7 @@ limitations under the License.
<string name="send_track_body_format">Je pense que ce parcours vous intéressera.
Pour voir ce parcours, utilisez Google Earth ou tout autre logiciel de cartographie.</string>
<string name="share_track">Partager des parcours.</string>
<!-- Visibility -->
<string name="unlisted_map">Carte non listée</string>
+4 -21
View File
@@ -104,6 +104,9 @@ limitations under the License.
<string name="success">Successo</string>
<string name="waypoint">Punto di passaggio</string>
<string name="cancel">Annulla</string>
<string name="close">Chiudi</string>
<string name="edit">Modifica</string>
<string name="save">Salva</string>
<!-- Placemark labels for start and end of track -->
<string name="start">(Inizio)</string>
@@ -200,27 +203,6 @@ limitations under the License.
<!-- MyTracksSky -->
<string name="mytracks_sky">Satelliti GPS</string>
<!-- My Maps -->
<string name="select_map_message">Scegli una mappa dal tuo account:</string>
<string name="create_new_map">Crea una nuova mappa...</string>
<string name="map_list_title">Invia a «Le mie mappe» di Google</string>
<string name="maps_list_loading">Caricamento mappe in corso...</string>
<string name="maps_list_failed">Le tue mappe non possono momentaneamente essere caricate!</string>
<string name="open_map">Scegli questa mappa</string>
<string name="edit_map_details">Modifica dettagli della mappa</string>
<string name="share_map">Condividi la mappa con amici</string>
<string name="share_track">Condividi il percorso con amici</string>
<string name="delete_map">Elimina la mappa dal tuo account</string>
<string name="map_title">Titolo della mappa:</string>
<string name="map_description">Descrizione della mappa:</string>
<string name="map_searchable_edit">Rendi questa mappa e il suo contenuto visibili fra i risultati di ricerche</string>
<string name="map_not_searchable_edit">Rendi questa mappa e il suo contenuto invisibili fra i risultati di ricerche. Resteranno comunque visibili ad altri utilizzando l\'indirizzo URL esatto</string>
<string name="map_searchable">Questa mappa e il suo contenuto saranno visibili fra i risultati di ricerche</string>
<string name="map_not_searchable">Né questa mappa né il suo contenuto saranno visibili in risultati di ricerche, ma saranno comunque visibili ad altri tramite un link diretto.</string>
<string name="close">Chiudi</string>
<string name="edit">Modifica</string>
<string name="save">Salva</string>
<!-- Sharing -->
<string name="share_map_subject">Vorrei condividere una mappa con te</string>
<string name="share_map_body_format">Credo che questa mappa potrebbe interessarti:
@@ -230,6 +212,7 @@ limitations under the License.
<string name="send_track_body_format">Credo che questo percorso potrebbe interessarti.
Per vedere questo percorso, usa Google Earth o un altro software di cartografia.</string>
<string name="share_track">Condividi il percorso con amici</string>
<!-- Visibility -->
<string name="public_map">Pubblica</string>
+4 -23
View File
@@ -102,6 +102,9 @@ limitations under the License.
<string name="success">成功</string>
<string name="waypoint">ウェイポイント</string>
<string name="cancel">キャンセル</string>
<string name="close">閉じる</string>
<string name="edit">編集</string>
<string name="save">保存</string>
<!-- Placemark labels for start and end of track -->
<string name="start">(開始)</string>
@@ -201,29 +204,6 @@ limitations under the License.
<!-- MyTracksSky -->
<string name="mytracks_sky">GPS衛星</string>
<!-- My Maps -->
<string name="select_map_message">ご使用のアカウントからのマップ選択:</string>
<string name="create_new_map">新規マップ...</string>
<string name="map_list_title">Googleマイマップへの送信</string>
<string name="maps_list_loading">マップの読み込み中...</string>
<string name="maps_list_failed">マップを読み込めませんでした!</string>
<string name="open_map">このマップを選択</string>
<string name="edit_map_details">マップ詳細の編集</string>
<string name="share_map">マップの共有</string>
<string name="share_track">トラックの共有</string>
<string name="delete_map">アカウントからマップの削除</string>
<string name="map_title">マップタイトル:</string>
<string name="map_description">マップ説明:</string>
<string name="map_searchable_edit">このマップとコンテンツを検索結果に表示させる</string>
<string name="map_not_searchable_edit">このマップとコンテンツはどちらも検索結果に表示させない(直接URLで他の方が見ることは可能)</string>
<string name="map_searchable">このマップとコンテンツは検索結果に表示されます</string>
<string name="map_not_searchable">このマップとコンテンツはどちらも検索結果に表示されませんが,直接リンクで他の方が見ることができます.</string>
<string name="close">閉じる</string>
<string name="edit">編集</string>
<string name="save">保存</string>
<!-- Sharing -->
<string name="share_map_subject">マップを共有したいと思います</string>
<string name="share_map_body_format">このマップに興味を持って頂けると思います:
@@ -233,6 +213,7 @@ limitations under the License.
<string name="send_track_body_format">このトラックに興味を持って頂けると思います.
このトラックを閲覧するには,Google Earthまたは他のマッピングソフトウェアが必要です.</string>
<string name="share_track">トラックの共有</string>
<!-- Visibility -->
<string name="public_map">公開</string>
+4 -21
View File
@@ -103,6 +103,9 @@ limitations under the License.
<string name="success">Powodzenie</string>
<string name="waypoint">Punkt orientacyjny</string>
<string name="cancel">Anuluj</string>
<string name="close">Zamknij</string>
<string name="edit">Edytuj</string>
<string name="save">Zapisz</string>
<!-- Placemark labels for start and end of track -->
<string name="start">(Początek)</string>
@@ -233,27 +236,6 @@ limitations under the License.
<!-- MyTracksSky -->
<string name="mytracks_sky">Satelity GPS</string>
<!-- My Maps -->
<string name="select_map_message">Wybierz mapę z twojego konta:</string>
<string name="create_new_map">Utwórz nową mapę...</string>
<string name="map_list_title">Wyślij do Moich Map Google</string>
<string name="maps_list_loading">Wczytywanie map...</string>
<string name="maps_list_failed">Nie można wczytać twoich map!</string>
<string name="open_map">Wybierz tę mapę</string>
<string name="edit_map_details">Edytuj szczegóły mapy</string>
<string name="share_map">Podziel się mapą z przyjaciółmi</string>
<string name="share_track">Podziel się trasą z przyjaciółmi</string>
<string name="delete_map">Usuń mapę z twojego konta</string>
<string name="map_title">Tytuł mapy:</string>
<string name="map_description">Opis mapy:</string>
<string name="map_searchable_edit">Pokazuj tę pamę i jej zawartość w wynikach wyszukiwania</string>
<string name="map_not_searchable_edit">Nie pokazuj tej mapy i jej zawartości w wynikach wyszukiwania. Dostęp do mapy będzie ciągle możliwy poprzez odnośnik</string>
<string name="map_searchable">Ta mapa i jej zawartość będzie dostępna w wynikach wyszukiwania</string>
<string name="map_not_searchable">Mapa i jej zawartość nie będzie dostępna w wynikach wyszukiwania, ale będzie dostępna przez bezpośredni odnośnik</string>
<string name="close">Zamknij</string>
<string name="edit">Edytuj</string>
<string name="save">Zapisz</string>
<!-- Sharing -->
<string name="share_map_subject">Chciałbym się z Tobą podzielić mapą</string>
<string name="share_map_body_format">Myślę, że może Cię zainteresować ta mapa:
@@ -263,6 +245,7 @@ limitations under the License.
<string name="send_track_body_format">Myślę, że może Cię zainteresować ta trasa.
Trasę możesz obejrzeć w Google Earth lub innym programie do obsługi map.</string>
<string name="share_track">Podziel się trasą z przyjaciółmi</string>
<!-- Visibility -->
<string name="public_map">Publiczna</string>
+4 -21
View File
@@ -101,6 +101,9 @@ limitations under the License.
<string name="success">Successo</string>
<string name="waypoint">Ponto de passagem</string>
<string name="cancel">Cancelar</string>
<string name="close">Fechar</string>
<string name="edit">Editar</string>
<string name="save">Salvar</string>
<!-- Placemark labels for start and end of track -->
<string name="start">(Início)</string>
@@ -184,27 +187,6 @@ limitations under the License.
<!-- MyTracksSky -->
<string name="mytracks_sky">Satélites de GPS</string>
<!-- My Maps -->
<string name="select_map_message">Escolha um mapa da sua conta:</string>
<string name="create_new_map">Criar novo mapa...</string>
<string name="map_list_title">Enviar para o Google Meus Mapas</string>
<string name="maps_list_loading">Carregando mapas...</string>
<string name="maps_list_failed">Seus mapas não puderam ser carregados neste momento!</string>
<string name="open_map">Selecionar este Mapa</string>
<string name="edit_map_details">Editar detalhes do mapa</string>
<string name="share_map">Compartilhar mapa com amigos</string>
<string name="share_track">Compartilhar caminho com amigos</string>
<string name="delete_map">Apagar mapa da sua conta</string>
<string name="map_title">Título do Mapa:</string>
<string name="map_description">Descrição do Mapa:</string>
<string name="map_searchable_edit">Fazer com que o conteúdo deste mapa apareça em resultados de buscas</string>
<string name="map_not_searchable_edit">Não permitir que este mapa ou seu conteúdo apareçam em resultados de buscas, porém ele ainda pode ser visto por sua URL direta</string>
<string name="map_searchable">Este mapa e seu conteúdo vão aparecer em resultados de buscas</string>
<string name="map_not_searchable">Nem este mapa nem seu conteúdo vão aparecer em resultados de buscas, porém outras pessoas ainda podem vê-los se obtiverem sua URL direta</string>
<string name="close">Fechar</string>
<string name="edit">Editar</string>
<string name="save">Salvar</string>
<!-- Sharing -->
<string name="share_map_subject">Eu gostaria de compartilhar um mapa com você</string>
<string name="share_map_body_format">Eu acredito que você pode se interessar por este mapa:
@@ -214,6 +196,7 @@ limitations under the License.
<string name="send_track_body_format">Eu acredito que você pode se interesasr por este caminho.
Para visualizar este caminho, use o Google Earth ou outro software de mapas.</string>
<string name="share_track">Compartilhar caminho com amigos</string>
<!-- Visibility -->
<string name="public_map">Público</string>
+4 -21
View File
@@ -103,6 +103,9 @@ limitations under the License.
<string name="success">Lyckades</string>
<string name="waypoint">Positionsmärke</string>
<string name="cancel">Avbryt</string>
<string name="close">Stäng</string>
<string name="edit">Ändra</string>
<string name="save">Spara</string>
<!-- Placemark labels for start and end of track -->
<string name="start">(Start)</string>
@@ -202,27 +205,6 @@ limitations under the License.
<!-- MyTracksSky -->
<string name="mytracks_sky">GPS-satelliter</string>
<!-- My Maps -->
<string name="select_map_message">Välj en karta från ditt konto:</string>
<string name="create_new_map">Skapa en ny karta...</string>
<string name="map_list_title">Skicka till Google Mina Kartor</string>
<string name="maps_list_loading">Laddar kartor...</string>
<string name="maps_list_failed">Dina kartor kunde inte laddas just nu!</string>
<string name="open_map">Välj den här kartan</string>
<string name="edit_map_details">Ändra kartdetaljer</string>
<string name="share_map">Dela kartan med vänner</string>
<string name="share_track">Dela spår med vänner</string>
<string name="delete_map">Ta bort kartan från ditt konto</string>
<string name="map_title">Karttitel:</string>
<string name="map_description">Kartbeskrivning:</string>
<string name="map_searchable_edit">Gör så att kartan och dess innehåll visas i sökresultat</string>
<string name="map_not_searchable_edit">Låt inte kartan och dess innehåll visas i sökresultat, men de kan ändå ses av andra genom en direktlänk</string>
<string name="map_searchable">Kartan och dess innehåll kommer att visas i sökresultat</string>
<string name="map_not_searchable">Varken kartan eller dess innehåll visas i sökresultat, men de kan ändå ses av andra genom en direktlänk</string>
<string name="close">Stäng</string>
<string name="edit">Ändra</string>
<string name="save">Spara</string>
<!-- Sharing -->
<string name="share_map_subject">Jag vill dela en karta med dig</string>
<string name="share_map_body_format">Jag tror att du skulle vara intresserad av den här kartan:
@@ -232,6 +214,7 @@ limitations under the License.
<string name="send_track_body_format">Jag tror att du skulle vara intresserad av det här spåret.
För att se det här spåret använd Google Earth eller något annat kartprogram.</string>
<string name="share_track">Dela spår med vänner</string>
<!-- Visibility -->
<string name="public_map">Publik</string>
+4 -21
View File
@@ -106,6 +106,9 @@ limitations under the License.
<string name="success">成功</string>
<string name="waypoint">路点</string>
<string name="cancel">取消</string>
<string name="close">关闭</string>
<string name="edit">编辑</string>
<string name="save">保存</string>
<!-- Placemark labels for start and end of track -->
<string name="start">(开始)</string>
@@ -239,27 +242,6 @@ limitations under the License.
<!-- MyTracksSky -->
<string name="mytracks_sky">GPS 卫星</string>
<!-- My Maps -->
<string name="select_map_message">从你的帐户里选择地图:</string>
<string name="create_new_map">创建新地图...</string>
<string name="map_list_title">发送到 Google My Maps</string>
<string name="maps_list_loading">载入地图中...</string>
<string name="maps_list_failed">现在无法载入你的地图!</string>
<string name="open_map">选择此地图</string>
<string name="edit_map_details">编辑地图详细信息</string>
<string name="share_map">与朋友分享地图</string>
<string name="share_track">与朋友分享轨迹</string>
<string name="delete_map">删除你帐号下的此地图</string>
<string name="map_title">地图标题:</string>
<string name="map_description">地图描述:</string>
<string name="map_searchable_edit">允许此地图及其内容出现在搜索结果中</string>
<string name="map_not_searchable_edit">不允许地图及其内容出现在搜索结果中, 但它的内容依然可以通过网址直接访问</string>
<string name="map_searchable">此地图及其内容会出现在搜索结果中</string>
<string name="map_not_searchable">此地图及其内容不会出现在搜索结果中, 但它的内容依然可以通过网址直接访问</string>
<string name="close">关闭</string>
<string name="edit">编辑</string>
<string name="save">保存</string>
<!-- Sharing -->
<string name="share_map_subject">我想与你分享一张地图</string>
<string name="share_map_body_format">我想你可能会对这个地图感兴趣:
@@ -269,6 +251,7 @@ limitations under the License.
<string name="send_track_body_format">我想你可能会对这条轨迹感兴趣.
请用 Google Earth 或其它地图软件查看此轨迹.</string>
<string name="share_track">与朋友分享轨迹</string>
<!-- Visibility -->
<string name="public_map">公开</string>
+3
View File
@@ -106,6 +106,9 @@ limitations under the License.
<string name="success">Success</string>
<string name="waypoint">Waypoint</string>
<string name="cancel">Cancel</string>
<string name="close">Close</string>
<string name="edit">Edit</string>
<string name="save">Save</string>
<!-- Placemark labels for start and end of track -->
<string name="start">(Start)</string>
@@ -85,12 +85,12 @@ public class DialogManager {
builder.setTitle("Title");
builder.setMessage("Message");
builder.setPositiveButton(activity.getString(R.string.ok), null);
builder.setNeutralButton(activity.getString(R.string.share_map),
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
builder.setNeutralButton(activity.getString(R.string.share_track),
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
activity.shareLinkToFusionTable(activity.sendToTrackId);
dialog.dismiss();
}
}
});
sendToGoogleResultDialog = builder.create();
return sendToGoogleResultDialog;
@@ -52,9 +52,6 @@ import android.content.Intent;
import android.content.ServiceConnection;
import android.content.SharedPreferences;
import android.content.SharedPreferences.OnSharedPreferenceChangeListener;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException;
import android.content.res.Resources;
import android.location.Location;
import android.location.LocationManager;
@@ -213,23 +210,6 @@ public class MyTracks extends TabActivity implements OnTouchListener,
return instance;
}
/**
* Get the My Tracks version from the manifest.
*
* @return the version, or an empty string in case of failure.
*/
public static String getMyTracksVersion(Context context) {
try {
PackageInfo pi = context.getPackageManager().getPackageInfo(
"com.google.android.maps.mytracks",
PackageManager.GET_META_DATA);
return pi.versionName;
} catch (NameNotFoundException e) {
Log.w(MyTracksConstants.TAG, "Failed to get version info.", e);
return "";
}
}
/**
* Checks whether we have a track recording session in progress.
* In some cases, when the service has crashed or has been restarted
@@ -661,7 +641,7 @@ public class MyTracks extends TabActivity implements OnTouchListener,
if (selectedTrack.getTableId().length() > 0) {
shareLinkToFusionTable(selectedTrackId);
} else {
shareRequested = true;
shareRequested = true;
dialogManager.showDialogSafely(DIALOG_SEND_TO_GOOGLE);
}
}
@@ -1112,8 +1092,7 @@ public class MyTracks extends TabActivity implements OnTouchListener,
dialogManager.showDialogSafely(DIALOG_PROGRESS);
if (sendToGoogleDialog.getSendToFusionTables()) {
setProgressValue(0);
setProgressMessage(
R.string.progress_message_authenticating_fusiontables);
setProgressMessage(R.string.progress_message_authenticating_fusiontables);
authenticate(new Intent(), MyTracksConstants.SEND_TO_GOOGLE,
SendToFusionTables.SERVICE_ID);
} else {
@@ -1235,10 +1214,10 @@ public class MyTracks extends TabActivity implements OnTouchListener,
* Notifies that uploading to fusion tables is finished.
*/
private void handleFusionTablesFinish(long trackId) {
if (shareRequested && sendToFusionTablesSuccess) {
if (shareRequested && sendToFusionTablesSuccess) {
// Just share
Toast.makeText(this, getFusionTablesResultMessage(), Toast.LENGTH_LONG).show();
shareLinkToFusionTable(trackId);
Toast.makeText(this, getFusionTablesResultMessage(), Toast.LENGTH_LONG).show();
shareLinkToFusionTable(trackId);
} else {
dialogManager.showDialogSafely(DialogManager.DIALOG_SEND_TO_GOOGLE_RESULT);
}
@@ -15,6 +15,7 @@
*/
package com.google.android.apps.mytracks;
import com.google.android.apps.mytracks.util.MyTracksUtils;
import com.google.android.maps.mytracks.R;
import android.app.Activity;
@@ -74,6 +75,6 @@ public class WelcomeActivity extends Activity {
AlertDialog dialog = builder.create();
dialog.show();
((TextView) dialog.findViewById(R.id.about_version_register)).
setText(MyTracks.getMyTracksVersion(this));
setText(MyTracksUtils.getMyTracksVersion(this));
}
}
@@ -144,15 +144,13 @@ public class MyTracksProvider extends ContentProvider {
db.execSQL("DROP TABLE IF EXISTS " + WAYPOINTS_TABLE);
onCreate(db);
} else {
Log.w(TAG, "Upgrading database from version " + oldVersion + " to "
+ newVersion + ", adding sensor column.");
if (oldVersion == 17) {
Log.w(TAG, "Upgrading database from version " + oldVersion + " to "
+ newVersion + ", adding sensor column.");
db.execSQL("ALTER TABLE " + TRACKPOINTS_TABLE
+ " ADD " + TrackPointsColumns.SENSOR + " BLOB");
};
if (oldVersion >= 17) {
Log.w(TAG, "Upgrading database from version " + oldVersion + " to "
+ newVersion + ", adding tableid column.");
db.execSQL("ALTER TABLE " + TRACKS_TABLE
+ " ADD " + TracksColumns.TABLEID + " STRING");
}
@@ -329,8 +329,8 @@ public class SendToDocs {
break;
}
}
} catch (ParseException e) {
throw new GDataWrapper.ParseException();
} catch (ParseException e) {
throw new GDataWrapper.ParseException(e);
} catch (HttpException e) {
throw new GDataWrapper.HttpException(e.getStatusCode(), e.getMessage());
}
@@ -346,27 +346,27 @@ public class SendToDocs {
throws GDataWrapper.AuthenticationException, IOException, GDataWrapper.ParseException {
String uri = String.format(DOCS_WORKSHEETS_URL_FORMAT, spreadSheetId);
GDataParser sheetParser;
try {
sheetParser = ((SpreadsheetsClient) client).getParserForWorksheetsFeed(uri,
wiseAuth.getAuthToken());
sheetParser.init();
if (!sheetParser.hasMoreData()) {
Log.i(MyTracksConstants.TAG, "Found no worksheets");
return; // failure
}
try {
sheetParser = ((SpreadsheetsClient) client).getParserForWorksheetsFeed(uri,
wiseAuth.getAuthToken());
sheetParser.init();
if (!sheetParser.hasMoreData()) {
Log.i(MyTracksConstants.TAG, "Found no worksheets");
return; // failure
}
// just grab the first.
WorksheetEntry worksheetEntry =
(WorksheetEntry) sheetParser.readNextEntry(new WorksheetEntry());
// just grab the first.
WorksheetEntry worksheetEntry =
(WorksheetEntry) sheetParser.readNextEntry(new WorksheetEntry());
int lastSlash = worksheetEntry.getId().lastIndexOf('/');
workSheetId = worksheetEntry.getId().substring(lastSlash + 1);
int lastSlash = worksheetEntry.getId().lastIndexOf('/');
workSheetId = worksheetEntry.getId().substring(lastSlash + 1);
} catch (AuthenticationException e) {
throw new GDataWrapper.AuthenticationException();
} catch (ParseException e) {
throw new GDataWrapper.ParseException();
}
} catch (AuthenticationException e) {
throw new GDataWrapper.AuthenticationException(e);
} catch (ParseException e) {
throw new GDataWrapper.ParseException(e);
}
}
});
}
@@ -15,7 +15,6 @@
*/
package com.google.android.apps.mytracks.io;
import com.google.android.apps.mytracks.MyTracks;
import com.google.android.apps.mytracks.MyTracksConstants;
import com.google.android.apps.mytracks.MyTracksSettings;
import com.google.android.apps.mytracks.ProgressIndicator;
@@ -60,18 +59,21 @@ import java.util.Vector;
*/
public class SendToFusionTables implements Runnable {
/**
* Listener invoked when sending to fusion tables completes.
*/
public interface OnSendCompletedListener {
void onSendCompleted(String tableId, boolean success, int statusMessage);
}
/** The GData service id for Fusion Tables. */
/** The GData service id for Fusion Tables. */
public static final String SERVICE_ID = "fusiontables";
/** The path for viewing a map visualization of a table. */
private static final String FUSIONTABLES_MAP =
"http://www.google.com/fusiontables/embedviz?" +
"viz=MAP&q=select+col0,+col1,+col2,+col3+from+%s+&h=false&" +
"lat=%f&lng=%f&z=%d&t=1&l=col2";
"http://www.google.com/fusiontables/embedviz?" +
"viz=MAP&q=select+col0,+col1,+col2,+col3+from+%s+&h=false&" +
"lat=%f&lng=%f&z=%d&t=1&l=col2";
/** Standard base feed url for Fusion Tables. */
private static final String FUSIONTABLES_BASE_FEED_URL =
@@ -79,6 +81,8 @@ public class SendToFusionTables implements Runnable {
private static final int MAX_POINTS_PER_UPLOAD = 2048;
private static final String GDATA_VERSION = "2";
private final Activity context;
private final AuthManager auth;
private final long trackId;
@@ -97,6 +101,10 @@ public class SendToFusionTables implements Runnable {
private HttpTransport transport;
private String tableId;
private static String MARKER_TYPE_START = "large_green";
private static String MARKER_TYPE_END = "large_red";
private static String MARKER_TYPE_WAYPOINT = "large_yellow";
public SendToFusionTables(Activity context, AuthManager auth,
long trackId, ProgressIndicator progressIndicator,
OnSendCompletedListener onCompletion) {
@@ -109,8 +117,8 @@ public class SendToFusionTables implements Runnable {
this.providerUtils = MyTracksProviderUtils.Factory.get(context);
transport = GoogleTransport.create();
GoogleHeaders headers = (GoogleHeaders) transport.defaultHeaders;
headers.setApplicationName("Google-MyTracks-" + MyTracks.getMyTracksVersion(context));
headers.gdataVersion = "2";
headers.setApplicationName("Google-MyTracks-" + MyTracksUtils.getMyTracksVersion(context));
headers.gdataVersion = GDATA_VERSION;
}
@Override
@@ -121,11 +129,11 @@ public class SendToFusionTables implements Runnable {
public static String getMapVisualizationUrl(Track track) {
// TODO(leifhendrik): Determine correct bounding box and zoom level that will show the entire track.
TripStatistics stats = track.getStatistics();
double latE6 = stats.getBottom() + (stats.getTop() - stats.getBottom()) / 2;
double lonE6 = stats.getLeft() + (stats.getRight() - stats.getLeft()) / 2;
TripStatistics stats = track.getStatistics();
double latE6 = stats.getBottom() + (stats.getTop() - stats.getBottom()) / 2;
double lonE6 = stats.getLeft() + (stats.getRight() - stats.getLeft()) / 2;
int z = 15;
return String.format(FUSIONTABLES_MAP, track.getTableId(), latE6 / 1.E6, lonE6 / 1.E6, z);
return String.format(FUSIONTABLES_MAP, track.getTableId(), latE6 / 1.E6, lonE6 / 1.E6, z);
}
private void doUpload() {
@@ -191,17 +199,17 @@ public class SendToFusionTables implements Runnable {
* @return the values formatted as: ('value1','value2',...,'value_n').
*/
private static String values(String... values) {
StringBuilder builder = new StringBuilder("(");
for (int i = 0; i < values.length; i++) {
builder.append('\'');
builder.append(values[i].replaceAll("'", "xxx"));
StringBuilder builder = new StringBuilder("(");
for (int i = 0; i < values.length; i++) {
if (i > 0) {
builder.append(',');
}
builder.append('\'');
if (i < values.length - 1) {
builder.append(',');
}
}
builder.append(')');
return builder.toString();
builder.append(values[i].replaceAll("'", "''"));
builder.append('\'');
}
builder.append(')');
return builder.toString();
}
/**
@@ -213,7 +221,7 @@ public class SendToFusionTables implements Runnable {
* @return true in case of success.
*/
private boolean createNewPoint(String name, String description, Location location,
String marker) {
String marker) {
Log.d(MyTracksConstants.TAG, "Creating a new row with a point.");
String query = "INSERT INTO " + tableId + " (name,description,geometry,marker) VALUES "
+ values(name, description, getKmlPoint(location), marker);
@@ -229,8 +237,8 @@ public class SendToFusionTables implements Runnable {
private boolean createNewLineString(Track track) {
Log.d(MyTracksConstants.TAG, "Creating a new row with a point.");
String query = "INSERT INTO " + tableId
+ " (name,description,geometry) VALUES "
+ values(track.getName(), track.getDescription(), getKmlLineString(track));
+ " (name,description,geometry) VALUES "
+ values(track.getName(), track.getDescription(), getKmlLineString(track));
return runUpdate(query);
}
@@ -248,25 +256,25 @@ public class SendToFusionTables implements Runnable {
Log.w(MyTracksConstants.TAG, "Unable to get any points to upload");
return false;
}
totalLocationsRead = 0;
totalLocationsPrepared = 0;
totalLocationsUploaded = 0;
totalLocations = locationsCursor.getCount();
totalSegmentsUploaded = 0;
// Limit the number of elevation readings. Ideally we would want around 250.
int elevationSamplingFrequency =
Math.max(1, (int) (totalLocations / 250.0));
Log.d(MyTracksConstants.TAG,
"Using elevation sampling factor: " + elevationSamplingFrequency
+ " on " + totalLocations);
"Using elevation sampling factor: " + elevationSamplingFrequency
+ " on " + totalLocations);
double totalDistance = 0;
Vector<Double> distances = new Vector<Double>();
Vector<Double> elevations = new Vector<Double>();
DoubleBuffer elevationBuffer = new DoubleBuffer(MyTracksConstants.ELEVATION_SMOOTHING_FACTOR);
List<Location> locations = new ArrayList<Location>(MAX_POINTS_PER_UPLOAD);
progressIndicator.setProgressMessage(R.string.progress_message_reading_track);
Location lastLocation = null;
@@ -274,16 +282,16 @@ public class SendToFusionTables implements Runnable {
if (totalLocationsRead % 100 == 0) {
updateProgress();
}
Location loc = providerUtils.createLocation(locationsCursor);
locations.add(loc);
if (totalLocationsRead == 0) {
// Put a marker at the first point of the first valid segment:
String name = track.getName() + " " + context.getString(R.string.start);
createNewPoint(name, "", loc, "large_green");
String name = track.getName() + " " + context.getString(R.string.start);
createNewPoint(name, "", loc, MARKER_TYPE_START);
}
// Add to the elevation profile.
if (loc != null && MyTracksUtils.isValidLocation(loc)) {
// All points go into the smoothing buffer...
@@ -293,43 +301,41 @@ public class SendToFusionTables implements Runnable {
double dist = lastLocation.distanceTo(loc);
totalDistance += dist;
}
// ...but only a few points are really used to keep the url short.
if (totalLocationsRead % elevationSamplingFrequency == 0) {
distances.add(totalDistance);
elevations.add(elevationBuffer.getAverage());
}
}
// If the location was not valid, it's a segment split, so make sure the
// distance between the previous segment and the new one is not accounted
// for in the next iteration.
lastLocation = loc;
// Every now and then, upload the accumulated points
if (totalLocationsRead % MAX_POINTS_PER_UPLOAD
== MAX_POINTS_PER_UPLOAD - 1) {
if (totalLocationsRead % MAX_POINTS_PER_UPLOAD == MAX_POINTS_PER_UPLOAD - 1) {
if (!prepareAndUploadPoints(track, locations)) {
return false;
}
}
totalLocationsRead++;
} while (locationsCursor.moveToNext());
// Do a final upload with what's left
if (!prepareAndUploadPoints(track, locations)) {
return false;
}
// Put an end marker at the last point of the last valid segment:
if (lastLocation != null) {
track.setDescription("<p>" + originalDescription + "</p><p>"
+ stringUtils.generateTrackDescription(
track, distances, elevations)
+ stringUtils.generateTrackDescription(track, distances, elevations)
+ "</p>");
String name = track.getName() + " " + context.getString(R.string.end);
return createNewPoint(name, track.getDescription(), lastLocation, "large_red");
String name = track.getName() + " " + context.getString(R.string.end);
return createNewPoint(name, track.getDescription(), lastLocation, MARKER_TYPE_END);
}
return true;
@@ -337,7 +343,7 @@ public class SendToFusionTables implements Runnable {
locationsCursor.close();
}
}
/**
* Appends the given location to the string in the format:
* longitude,latitude[,altitude]
@@ -346,14 +352,14 @@ public class SendToFusionTables implements Runnable {
* @param builder the string builder to use
*/
private void appendCoordinate(Location location, StringBuilder builder) {
builder
.append(location.getLongitude())
.append(",")
.append(location.getLatitude());
if (location.hasAltitude()) {
builder.append(",");
builder.append(location.getAltitude());
}
builder
.append(location.getLongitude())
.append(",")
.append(location.getLatitude());
if (location.hasAltitude()) {
builder.append(",");
builder.append(location.getAltitude());
}
}
/**
@@ -376,29 +382,29 @@ public class SendToFusionTables implements Runnable {
* @return the kml.
*/
private String getKmlLineString(Track track) {
StringBuilder builder = new StringBuilder("<LineString><coordinates>");
for (Location location : track.getLocations()) {
appendCoordinate(location, builder);
builder.append(' ');
}
builder.append("</coordinates></LineString>");
return builder.toString();
StringBuilder builder = new StringBuilder("<LineString><coordinates>");
for (Location location : track.getLocations()) {
appendCoordinate(location, builder);
builder.append(' ');
}
builder.append("</coordinates></LineString>");
return builder.toString();
}
private boolean prepareAndUploadPoints(Track track, List<Location> locations) {
progressIndicator.setProgressMessage(R.string.progress_message_preparing_track);
updateProgress();
int numLocations = locations.size();
if (numLocations < 2) {
Log.d(MyTracksConstants.TAG, "Not preparing/uploading too few points");
totalLocationsUploaded += numLocations;
return true;
}
// Prepare/pre-process the points
ArrayList<Track> splitTracks = prepareLocations(track, locations);
// Start uploading them
progressIndicator.setProgressMessage(R.string.progress_message_sending_fusiontables);
for (Track splitTrack : splitTracks) {
@@ -411,7 +417,7 @@ public class SendToFusionTables implements Runnable {
Log.d(MyTracksConstants.TAG,
"SendToFusionTables: Prepared feature for upload w/ "
+ splitTrack.getLocations().size() + " points.");
// Transmit tracks via GData feed:
// -------------------------------
Log.d(MyTracksConstants.TAG,
@@ -421,7 +427,7 @@ public class SendToFusionTables implements Runnable {
return false;
}
}
locations.clear();
totalLocationsUploaded += numLocations;
updateProgress();
@@ -439,7 +445,7 @@ public class SendToFusionTables implements Runnable {
private ArrayList<Track> prepareLocations(
Track track, Iterable<Location> locations) {
ArrayList<Track> splitTracks = new ArrayList<Track>();
// Create segments from each full track:
Track segment = new Track();
TripStatistics segmentStats = segment.getStatistics();
@@ -458,11 +464,11 @@ public class SendToFusionTables implements Runnable {
if (loc.getLatitude() > 90) {
startNewTrackSegment = true;
}
if (startNewTrackSegment) {
// Close up the last segment.
prepareTrackSegment(segment, splitTracks);
Log.d(MyTracksConstants.TAG,
"MyTracksSendToFusionTables: Starting new track segment...");
startNewTrackSegment = false;
@@ -472,7 +478,7 @@ public class SendToFusionTables implements Runnable {
segment.setDescription(/* track.getDescription() */ "");
segment.setCategory(track.getCategory());
}
if (loc.getLatitude() <= 90) {
segment.addLocation(loc);
if (segmentStats.getStartTime() < 0) {
@@ -481,9 +487,9 @@ public class SendToFusionTables implements Runnable {
}
totalLocationsPrepared++;
}
prepareTrackSegment(segment, splitTracks);
return splitTracks;
}
@@ -506,13 +512,13 @@ public class SendToFusionTables implements Runnable {
&& segment.getLocations().size() > 0) {
segmentStats.setStopTime(segment.getLocations().size() - 1);
}
/*
* Decimate to 2 meter precision. Fusion tables doesn't like too many
* points:
*/
MyTracksUtils.decimate(segment, 2.0);
/* If the track still has > 2500 points, split it in pieces: */
final int maxPoints = 2500;
if (segment.getLocations().size() > maxPoints) {
@@ -557,7 +563,7 @@ public class SendToFusionTables implements Runnable {
Waypoint wpt = providerUtils.createWaypoint(c);
Log.d(MyTracksConstants.TAG, "SendToFusionTables: Creating waypoint.");
success = createNewPoint(wpt.getName(), wpt.getDescription(), wpt.getLocation(),
"large_yellow");
MARKER_TYPE_WAYPOINT);
if (!success) {
break;
}
@@ -611,20 +617,20 @@ public class SendToFusionTables implements Runnable {
HttpResponse response = request.execute();
boolean success = response.isSuccessStatusCode;
if (success) {
byte[] result = new byte[1024];
response.getContent().read(result);
String s = Strings.fromBytesUtf8(result);
String[] lines = s.split(Strings.LINE_SEPARATOR);
if (lines[0].equals("tableid")) {
tableId = lines[1];
Log.d(MyTracksConstants.TAG, "tableId = " + tableId);
} else {
Log.w(MyTracksConstants.TAG, "Unrecognized response: " + lines[0]);
}
byte[] result = new byte[1024];
response.getContent().read(result);
String s = Strings.fromBytesUtf8(result);
String[] lines = s.split(Strings.LINE_SEPARATOR);
if (lines[0].equals("tableid")) {
tableId = lines[1];
Log.d(MyTracksConstants.TAG, "tableId = " + tableId);
} else {
Log.w(MyTracksConstants.TAG, "Unrecognized response: " + lines[0]);
}
} else {
Log.d(MyTracksConstants.TAG, "Query failed: " + response.statusMessage + " (" +
response.statusCode + ")");
throw new GDataWrapper.HttpException(response.statusCode, response.statusMessage);
Log.d(MyTracksConstants.TAG, "Query failed: " + response.statusMessage + " (" +
response.statusCode + ")");
throw new GDataWrapper.HttpException(response.statusCode, response.statusMessage);
}
}
});
@@ -37,13 +37,15 @@ public class BackupColumns {
TracksColumns.MOVINGTIME, TracksColumns.AVGSPEED, TracksColumns.AVGMOVINGSPEED,
TracksColumns.MAXSPEED, TracksColumns.MINELEVATION, TracksColumns.MAXELEVATION,
TracksColumns.ELEVATIONGAIN, TracksColumns.MINGRADE, TracksColumns.MAXGRADE,
TracksColumns.MINLAT, TracksColumns.MAXLAT, TracksColumns.MINLON, TracksColumns.MAXLON };
TracksColumns.MINLAT, TracksColumns.MAXLAT, TracksColumns.MINLON, TracksColumns.MAXLON,
TracksColumns.MAPID, TracksColumns.TABLEID};
public static final byte[] TRACKS_BACKUP_COLUMN_TYPES = {
LONG_TYPE_ID, STRING_TYPE_ID, STRING_TYPE_ID, STRING_TYPE_ID,
LONG_TYPE_ID, LONG_TYPE_ID, LONG_TYPE_ID, LONG_TYPE_ID, INT_TYPE_ID,
FLOAT_TYPE_ID, LONG_TYPE_ID, LONG_TYPE_ID, FLOAT_TYPE_ID, FLOAT_TYPE_ID,
FLOAT_TYPE_ID, FLOAT_TYPE_ID, FLOAT_TYPE_ID, FLOAT_TYPE_ID, FLOAT_TYPE_ID,
FLOAT_TYPE_ID, INT_TYPE_ID, INT_TYPE_ID, INT_TYPE_ID, INT_TYPE_ID };
FLOAT_TYPE_ID, INT_TYPE_ID, INT_TYPE_ID, INT_TYPE_ID, INT_TYPE_ID, STRING_TYPE_ID,
STRING_TYPE_ID};
public static final String[] WAYPOINTS_BACKUP_COLUMNS = {
WaypointsColumns._ID, WaypointsColumns.TRACKID, WaypointsColumns.NAME,
@@ -39,33 +39,54 @@ import java.util.concurrent.TimeoutException;
*/
public class GDataWrapper<C> {
public static class AuthenticationException extends Exception {
private static final long serialVersionUID = 1L;
public static class AuthenticationException extends Exception {
private Exception exception;
private static final long serialVersionUID = 1L;
public AuthenticationException(Exception caught) {
this.exception = caught;
}
public Exception getException() {
return exception;
}
};
public static class ParseException extends Exception {
private static final long serialVersionUID = 1L;
public static class ParseException extends Exception {
private Exception exception;
private static final long serialVersionUID = 1L;
public ParseException(Exception caught) {
this.exception = caught;
}
public Exception getException() {
return exception;
}
};
public static class ConflictDetectedException extends Exception {
private static final long serialVersionUID = 1L;
private Exception exception;
private static final long serialVersionUID = 1L;
public ConflictDetectedException(Exception caught) {
this.exception = caught;
}
public Exception getException() {
return exception;
}
};
public static class HttpException extends Exception {
private static final long serialVersionUID = 1L;
private int statusCode;
private String statusMessage;
public HttpException(int statusCode, String statusMessage) {
super();
this.statusCode = statusCode;
this.statusMessage = statusMessage;
}
public int getStatusCode() {
return statusCode;
}
public String getStatusMessage() {
return statusMessage;
}
public static class HttpException extends Exception {
private static final long serialVersionUID = 1L;
private int statusCode;
private String statusMessage;
public HttpException(int statusCode, String statusMessage) {
super();
this.statusCode = statusCode;
this.statusMessage = statusMessage;
}
public int getStatusCode() {
return statusCode;
}
public String getStatusMessage() {
return statusMessage;
}
};
/**
@@ -21,6 +21,10 @@ import com.google.android.apps.mytracks.stats.TripStatistics;
import com.google.android.maps.GeoPoint;
import android.content.Context;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException;
import android.location.Location;
import android.util.Log;
@@ -246,6 +250,23 @@ public class MyTracksUtils {
(int) (location.getLongitude() * 1E6));
}
/**
* Get the My Tracks version from the manifest.
*
* @return the version, or an empty string in case of failure.
*/
public static String getMyTracksVersion(Context context) {
try {
PackageInfo pi = context.getPackageManager().getPackageInfo(
"com.google.android.maps.mytracks",
PackageManager.GET_META_DATA);
return pi.versionName;
} catch (NameNotFoundException e) {
Log.w(MyTracksConstants.TAG, "Failed to get version info.", e);
return "";
}
}
/**
* This is a utility class w/ only static memebers.
*/