diff options
-rw-r--r-- | main/res/values-cs/strings.xml | 1 | ||||
-rw-r--r-- | main/res/values-da/strings.xml | 1 | ||||
-rw-r--r-- | main/res/values-de/strings.xml | 4 | ||||
-rw-r--r-- | main/res/values-es/strings.xml | 1 | ||||
-rw-r--r-- | main/res/values-fr/strings.xml | 1 | ||||
-rw-r--r-- | main/res/values-hu/strings.xml | 1 | ||||
-rw-r--r-- | main/res/values-it/strings.xml | 1 | ||||
-rw-r--r-- | main/res/values-ja/strings.xml | 1 | ||||
-rw-r--r-- | main/res/values-nb/strings.xml | 1 | ||||
-rw-r--r-- | main/res/values-nl/strings.xml | 1 | ||||
-rw-r--r-- | main/res/values-pl/strings.xml | 1 | ||||
-rw-r--r-- | main/res/values-pt/strings.xml | 1 | ||||
-rw-r--r-- | main/res/values-sk/strings.xml | 1 | ||||
-rw-r--r-- | main/res/values-sv/strings.xml | 1 | ||||
-rw-r--r-- | main/res/values/strings.xml | 3 | ||||
-rw-r--r-- | main/src/cgeo/geocaching/CacheDetailActivity.java | 33 | ||||
-rw-r--r-- | main/src/cgeo/geocaching/cgBase.java | 25 |
17 files changed, 49 insertions, 29 deletions
diff --git a/main/res/values-cs/strings.xml b/main/res/values-cs/strings.xml index a7426f9..ba08272 100644 --- a/main/res/values-cs/strings.xml +++ b/main/res/values-cs/strings.xml @@ -331,7 +331,6 @@ <string name="cache_event">datum</string> <string name="cache_location">místo</string> <string name="cache_coordinates">souřadnice</string> - <string name="cache_calendars">vyberte kalendář</string> <string name="cache_spoiler_images_title">Spoiler images</string> <string name="cache_spoiler_images_loading">Loading spoiler images…</string> diff --git a/main/res/values-da/strings.xml b/main/res/values-da/strings.xml index a995a50..59726c5 100644 --- a/main/res/values-da/strings.xml +++ b/main/res/values-da/strings.xml @@ -233,7 +233,6 @@ <string name="cache_event">Dato</string> <string name="cache_location">Lokation</string> <string name="cache_coordinates">Koordinater</string> - <string name="cache_calendars">Vælg kalender</string> <!-- event --> <string name="event_success">Eventcache tilføjet til kalender</string> diff --git a/main/res/values-de/strings.xml b/main/res/values-de/strings.xml index 9c49956..15e880d 100644 --- a/main/res/values-de/strings.xml +++ b/main/res/values-de/strings.xml @@ -552,7 +552,6 @@ <string name="cache_location">Bundesland</string> <string name="cache_coordinates">Koordinaten</string> <string name="cache_coordinates_original">Ursprüngliche Koordinaten</string> - <string name="cache_calendars">Kalender auswählen</string> <string name="cache_spoiler_images_title">Hinweisbilder</string> <string name="cache_spoiler_images_loading">Lade Hinweisbilder…</string> <string name="cache_log_types">Logs</string> @@ -726,6 +725,9 @@ <!-- helpers --> <string name="helper_manual_title">Anleitung</string> <string name="helper_manual_description">Umfangreiche Anleitung für c:geo mit Beschreibung aller Möglichkeiten dieser App (auch versteckte).</string> + <string name="helper_calendar_title">c:geo Kalendar Add-on</string> + <string name="helper_calendar_missing">c:geo Kalendar Add-on nicht installiert</string> + <string name="helper_calendar_description">Ermöglicht die Übernahme von Event Caches in den Kalendar.</string> <string name="helper_locus_title">Locus</string> <string name="helper_locus_description">Sehr gute App für Online- und Offline-Karten (nur Rasterkarten) mit vielen weiteren Funktionen wie z.B. Trackaufzeichnung, POIs und vieles mehr.</string> <string name="helper_gpsstatus_title">GPS Status</string> diff --git a/main/res/values-es/strings.xml b/main/res/values-es/strings.xml index 76fdd93..980c3c0 100644 --- a/main/res/values-es/strings.xml +++ b/main/res/values-es/strings.xml @@ -497,7 +497,6 @@ <string name="cache_event">Fecha</string> <string name="cache_location">Ubicación</string> <string name="cache_coordinates">Coordenadas</string> - <string name="cache_calendars">Elegir calendario</string> <string name="cache_spoiler_images_title">Imágenes reveladoras</string> <string name="cache_spoiler_images_loading">Cargando imágenes reveladoras…</string> <string name="cache_log_types">Tipos de registro</string> diff --git a/main/res/values-fr/strings.xml b/main/res/values-fr/strings.xml index ea6a6d1..2df3026 100644 --- a/main/res/values-fr/strings.xml +++ b/main/res/values-fr/strings.xml @@ -542,7 +542,6 @@ <string name="cache_location">Lieu</string> <string name="cache_coordinates">Coordonnées</string> <string name="cache_coordinates_original">Coordonnées d\'origine</string> - <string name="cache_calendars">Choisir un agenda</string> <string name="cache_spoiler_images_title">Images indices</string> <string name="cache_spoiler_images_loading">Chargement des images indices…</string> <string name="cache_log_types">Types de visites</string> diff --git a/main/res/values-hu/strings.xml b/main/res/values-hu/strings.xml index 5676c17..1d3077d 100644 --- a/main/res/values-hu/strings.xml +++ b/main/res/values-hu/strings.xml @@ -512,7 +512,6 @@ <string name="cache_event">Dátum</string> <string name="cache_location">Helyszín</string> <string name="cache_coordinates">Koordináták</string> - <string name="cache_calendars">Naptár kiválasztása</string> <string name="cache_spoiler_images_title">Spoiler képek</string> <string name="cache_spoiler_images_loading">Spoiler képek betöltése…</string> <string name="cache_log_types">Bejegyzés típusok</string> diff --git a/main/res/values-it/strings.xml b/main/res/values-it/strings.xml index 02e4fc0..8836b89 100644 --- a/main/res/values-it/strings.xml +++ b/main/res/values-it/strings.xml @@ -551,7 +551,6 @@ <string name="cache_location">Luogo</string> <string name="cache_coordinates">Coordinate</string> <string name="cache_coordinates_original">Coordinate originali</string> - <string name="cache_calendars">Scegli calendario</string> <string name="cache_spoiler_images_title">Immagini spoiler</string> <string name="cache_spoiler_images_loading">Caricamento immagini spoiler…</string> <string name="cache_log_types">Tipi di Log</string> diff --git a/main/res/values-ja/strings.xml b/main/res/values-ja/strings.xml index abea8ca..39b4a42 100644 --- a/main/res/values-ja/strings.xml +++ b/main/res/values-ja/strings.xml @@ -404,7 +404,6 @@ <string name="cache_event">日時</string> <string name="cache_location">場所</string> <string name="cache_coordinates">座標</string> - <string name="cache_calendars">カレンダーを選択</string> <string name="cache_spoiler_images_title">スポイラー画像</string> <string name="cache_spoiler_images_loading">スポイラー画像をロード中…</string> <string name="cache_log_types">ログタイプ</string> diff --git a/main/res/values-nb/strings.xml b/main/res/values-nb/strings.xml index 5063cdc..3e2c6c2 100644 --- a/main/res/values-nb/strings.xml +++ b/main/res/values-nb/strings.xml @@ -318,7 +318,6 @@ <string name="cache_event">Dato</string> <string name="cache_location">Lokasjon</string> <string name="cache_coordinates">Koordinater</string> - <string name="cache_calendars">Velg kalender</string> <!-- gpx --> <string name="gpx_import_caches_imported">Cacher importert</string> diff --git a/main/res/values-nl/strings.xml b/main/res/values-nl/strings.xml index 7366cce..8bfcc1b 100644 --- a/main/res/values-nl/strings.xml +++ b/main/res/values-nl/strings.xml @@ -533,7 +533,6 @@ <string name="cache_event">Datum</string> <string name="cache_location">Locatie</string> <string name="cache_coordinates">Coördinaten</string> - <string name="cache_calendars">Selecteer kalender</string> <string name="cache_spoiler_images_title">Spoiler afbeeldingen</string> <string name="cache_spoiler_images_loading">Spoiler afbeeldingen laden…</string> <string name="cache_log_types">Log types</string> diff --git a/main/res/values-pl/strings.xml b/main/res/values-pl/strings.xml index 0f86f50..a587d5c 100644 --- a/main/res/values-pl/strings.xml +++ b/main/res/values-pl/strings.xml @@ -494,7 +494,6 @@ <string name="cache_event">Data</string> <string name="cache_location">Lokacja</string> <string name="cache_coordinates">Współrzędne</string> - <string name="cache_calendars">Wybierz kalendarz</string> <string name="cache_spoiler_images_title">Zdjęcie spoiler</string> <string name="cache_spoiler_images_loading">Ładuje zdjęcia spoiler…</string> <string name="cache_log_types">Rodzaj logu</string> diff --git a/main/res/values-pt/strings.xml b/main/res/values-pt/strings.xml index cab5104..fa073c9 100644 --- a/main/res/values-pt/strings.xml +++ b/main/res/values-pt/strings.xml @@ -490,7 +490,6 @@ <string name="cache_event">Data</string> <string name="cache_location">Localização</string> <string name="cache_coordinates">Coordenadas</string> - <string name="cache_calendars">Selecionar calendário</string> <string name="cache_spoiler_images_title">Imagens spoiler</string> <string name="cache_spoiler_images_loading">A carregar imagens spoiler…</string> <string name="cache_log_types">Tipos de log</string> diff --git a/main/res/values-sk/strings.xml b/main/res/values-sk/strings.xml index 5ab3f99..4d7b42c 100644 --- a/main/res/values-sk/strings.xml +++ b/main/res/values-sk/strings.xml @@ -544,7 +544,6 @@ <string name="cache_location">Miesto</string> <string name="cache_coordinates">Súradnice</string> <string name="cache_coordinates_original">Pôvodné súradnice</string> - <string name="cache_calendars">vyberte kalendár</string> <string name="cache_spoiler_images_title">Spoilerové obrázky</string> <string name="cache_spoiler_images_loading">Načítanie spoilerových obrázkov…</string> <string name="cache_log_types">Typy záznamov</string> diff --git a/main/res/values-sv/strings.xml b/main/res/values-sv/strings.xml index ca49e92..6cb9204 100644 --- a/main/res/values-sv/strings.xml +++ b/main/res/values-sv/strings.xml @@ -558,7 +558,6 @@ <string name="cache_location">Plats</string> <string name="cache_coordinates">Koordinater</string> <string name="cache_coordinates_original">Ursprungliga koordinater</string> - <string name="cache_calendars">Välj kalender</string> <string name="cache_spoiler_images_title">Spoiler bilder</string> <string name="cache_spoiler_images_loading">Laddar spoiler bilder…</string> <string name="cache_log_types">Loggtyper</string> diff --git a/main/res/values/strings.xml b/main/res/values/strings.xml index 03f74e9..562e460 100644 --- a/main/res/values/strings.xml +++ b/main/res/values/strings.xml @@ -566,7 +566,6 @@ <string name="cache_location">Location</string> <string name="cache_coordinates">Coordinates</string> <string name="cache_coordinates_original">Original Coordinates</string> - <string name="cache_calendars">Select calendar</string> <string name="cache_spoiler_images_title">Spoiler images</string> <string name="cache_spoiler_images_loading">Loading spoiler images…</string> <string name="cache_log_types">Log types</string> @@ -747,6 +746,7 @@ <string name="helper_manual_title">Manual</string> <string name="helper_manual_description">Comprehensive manual for c:geo that contains description of all possibilities of this application (even hidden ones).</string> <string name="helper_calendar_title">c:geo calendar add-on</string> + <string name="helper_calendar_missing">c:geo calendar add-on not installed</string> <string name="helper_calendar_description">Enables you to export event caches into the calendar on your device.</string> <string name="helper_locus_title">Locus</string> <string name="helper_locus_description">Simple usable application showing Online maps and allowing to download them directly into Offline mode (raster maps only). Also support track recording, POI handling and many other useful functions.</string> @@ -975,6 +975,7 @@ <!-- changelog --> <string name="changelog">\n <b>next release</b>\n + · new: calendar add-on. c:geo doesn\'t require anymore calendar permission. · fix: deletion of outdated caches did not work · fix: changed internal caching causing a better overall performance · new: login status at start screen diff --git a/main/src/cgeo/geocaching/CacheDetailActivity.java b/main/src/cgeo/geocaching/CacheDetailActivity.java index 8cea884..9a7b60c 100644 --- a/main/src/cgeo/geocaching/CacheDetailActivity.java +++ b/main/src/cgeo/geocaching/CacheDetailActivity.java @@ -723,20 +723,25 @@ public class CacheDetailActivity extends AbstractActivity { } private void addToCalendarWithIntent() { - // this method is NOT unused :) - final Parameters params = new Parameters( - ICalendar.PARAM_NAME, cache.getName(), - ICalendar.PARAM_NOTE, StringUtils.defaultString(cache.getPersonalNote()), - ICalendar.PARAM_HIDDEN_DATE, String.valueOf(cache.getHiddenDate().getTime()), - ICalendar.PARAM_URL, StringUtils.defaultString(cache.getUrl()), - ICalendar.PARAM_COORDS, cache.getCoords() == null ? "" : cache.getCoords().format(GeopointFormatter.Format.LAT_LON_DECMINUTE_RAW), - ICalendar.PARAM_LOCATION, StringUtils.defaultString(cache.getLocation()), - ICalendar.PARAM_SHORT_DESC, StringUtils.defaultString(cache.getShortDescription()) - ); - - // TODO: Check if addon is installed, if not, tell the user how to get it. - startActivity(new Intent(ICalendar.INTENT, - Uri.parse(ICalendar.URI_SCHEME + "://" + ICalendar.URI_HOST + "?" + params.toString()))); + + final boolean calendarAddOnAvailable = cgBase.isIntentAvailable(this, ICalendar.INTENT); + + if (calendarAddOnAvailable) { + final Parameters params = new Parameters( + ICalendar.PARAM_NAME, cache.getName(), + ICalendar.PARAM_NOTE, StringUtils.defaultString(cache.getPersonalNote()), + ICalendar.PARAM_HIDDEN_DATE, String.valueOf(cache.getHiddenDate().getTime()), + ICalendar.PARAM_URL, StringUtils.defaultString(cache.getUrl()), + ICalendar.PARAM_COORDS, cache.getCoords() == null ? "" : cache.getCoords().format(GeopointFormatter.Format.LAT_LON_DECMINUTE_RAW), + ICalendar.PARAM_LOCATION, StringUtils.defaultString(cache.getLocation()), + ICalendar.PARAM_SHORT_DESC, StringUtils.defaultString(cache.getShortDescription()) + ); + + startActivity(new Intent(ICalendar.INTENT, + Uri.parse(ICalendar.URI_SCHEME + "://" + ICalendar.URI_HOST + "?" + params.toString()))); + } else { + showToast(res.getString(R.string.helper_calendar_missing)); + } } /** diff --git a/main/src/cgeo/geocaching/cgBase.java b/main/src/cgeo/geocaching/cgBase.java index 9cb9e22..c833317 100644 --- a/main/src/cgeo/geocaching/cgBase.java +++ b/main/src/cgeo/geocaching/cgBase.java @@ -61,6 +61,7 @@ import android.content.Context; import android.content.Intent; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; +import android.content.pm.ResolveInfo; import android.content.res.Resources; import android.graphics.drawable.BitmapDrawable; import android.net.Uri; @@ -3116,5 +3117,29 @@ public class cgBase { cgBase.actualStatus = actualStatus; } + /** + * Indicates whether the specified action can be used as an intent. This + * method queries the package manager for installed packages that can + * respond to an intent with the specified action. If no suitable package is + * found, this method returns false. + * + * From: http://android-developers.blogspot.com/2009/01/can-i-use-this-intent.html + * + * @param context + * The application's environment. + * @param action + * The Intent action to check for availability. + * + * @return True if an Intent with the specified action can be sent and + * responded to, false otherwise. + */ + public static boolean isIntentAvailable(Context context, String action) { + final PackageManager packageManager = context.getPackageManager(); + final Intent intent = new Intent(action); + List<ResolveInfo> list = packageManager.queryIntentActivities(intent, + PackageManager.MATCH_DEFAULT_ONLY); + return list.size() > 0; + } + } |