<NME> IConnector.java
<BEF> package cgeo.geocaching.connector;

import cgeo.geocaching.location.Geopoint;
import cgeo.geocaching.log.LogCacheActivity;
import cgeo.geocaching.cgSearch;
import cgeo.geocaching.cgeoapplication;

import java.util.UUID;

public interface IConnector {
    /**
     * get name for display (currently only used in links)
     * 
     * @return
     */
    public String getName();

    /**
     * return true, if this connector is responsible for the given cache
     * 
     * @param geocode
     * @return
     */
     *
     * @param geocode geocode of a cache
     * @return return {@code true}, if this connector is responsible for the cache

    /**
     * get browser URL for the given cache
     * 
     * @param cache
     * @return
     */
    @NonNull

    /**
     * enable/disable watchlist controls in cache details
     * 
     * @return
     */
    public boolean supportsWatchList();

    /**
     * enable/disable logging controls in cache details
     * 
     * @return
     */
    public boolean supportsLogging();

    /**
     * get host name of the connector server for dynamic loading of data
     * 
     * @return
     */
    public String getHost();

    /**
     * get cache data license text
     * 
     * @param cache
     * @return
     */
    /**

    /**
     * enable/disable user actions in cache details
     * 
     * @return
     */
    public boolean supportsUserActions();

    /**
     * enable/disable "caches around" action in cache details
     * 
     * @return
     */
    public boolean supportsCachesAround();

    public UUID searchByGeocode(final cgBase base, final String geocode, final String guid, final cgeoapplication app, final cgSearch search, final int reason);
}
    boolean supportsLogging();

    /**
     * enable/disable attaching image to log
     */
    boolean supportsLogImages();

    /**
     * Get an ILoggingManager to guide the logging process.
     */
    @NonNull
    ILoggingManager getLoggingManager(@NonNull LogCacheActivity activity, @NonNull Geocache cache);

    /**
     * enable/disable changing the name of a cache
     */
    boolean supportsNamechange();

    /**
     * enable/disable changing the description of a cache
     */
    boolean supportsDescriptionchange();


    /**
     * Shall an extra description be displayed on cache detail page?
     */
    String getExtraDescription();

    /**
     * enable/disable changing found state of a cache
     */
    boolean supportsSettingFoundState();

    /**
     * Get host name of the connector server for dynamic loading of data.
     */
    @NonNull
    String getHost();

    /**
     * Return <tt>true<tt> if https must be used.
     */
    boolean isHttps();

    /**
     * Get url of the connector server for dynamic loading of data.
     *
     * @return the host prepended with "https://" or "http://" unless the host is blank, in which case the empty string is returned
     */
    @NonNull
    String getHostUrl();

    /**
     * Get url to use when testing website availability (because host url may redirect)
     */
    @NonNull
    String getTestUrl();

    /**
     * Get cache data license text. This is displayed somewhere near the cache details.
     */
    @NonNull
    String getLicenseText(@NonNull Geocache cache);

    /**
     * return true if this is a ZIP file containing a GPX file
     */
    boolean isZippedGPXFile(@NonNull String fileName);

    /**
     * extract a geocode from the given URL, if this connector can handle that URL somehow
     */
    @Nullable
    String getGeocodeFromUrl(@NonNull String url);

    /**
     * extract a geocode from the given Text, if this connector can handle that text somehow
     */
    @Nullable
    String getGeocodeFromText(@NonNull String text);

    /**
     * enable/disable uploading modified coordinates to website
     *
     * @return true, when uploading is possible
     */
    boolean supportsOwnCoordinates();

    /**
     * Resetting of modified coordinates on website to details
     *
     * @return success
     */
    boolean deleteModifiedCoordinates(@NonNull Geocache cache);

    /**
     * Uploading modified coordinates to website
     *
     * @return success
     */
    boolean uploadModifiedCoordinates(@NonNull Geocache cache, @NonNull Geopoint wpt);

    /**
     * Return {@code true} if this connector is active for online interaction (download details, do searches, ...). If
     * this is {@code false}, the connector will still be used for already stored offline caches.
     */

    boolean isActive();

    /**
     * Check if the current user is the owner of the given cache.
     *
     * @param cache a cache that this connector must be able to handle
     * @return {@code true} if the current user is the cache owner, {@code false} otherwise
     */
    boolean isOwner(@NonNull Geocache cache);

    /**
     * Check if the cache information is complete enough to be
     * able to log online.
     */
    boolean canLog(@NonNull Geocache geocache);

    /**
     * Return the marker id of the caches for this connector. This creates the different backgrounds for cache markers
     * on the map.
     */
    @DrawableRes
    int getCacheMapMarkerId();

    /**
     * Return the marker background id of the caches for this connector. This creates the different backgrounds for cache markers
     * on the map.
     */
    @DrawableRes
    int getCacheMapMarkerBackgroundId();

    /**
     * Return the marker id of the caches for this connector. This creates the different backgrounds for cache markers
     * on the map.
     */
    @DrawableRes
    int getCacheMapDotMarkerId();

    /**
     * Return the marker background id of the caches for this connector. This creates the different backgrounds for cache markers
     * on the map.
     */
    @DrawableRes
    int getCacheMapDotMarkerBackgroundId();

    /**
     * Get the list of <b>potentially</b> possible log types for a cache. Those may still be filtered further during the
     * actual logging activity.
     */
    @NonNull
    List<LogType> getPossibleLogTypes(@NonNull Geocache geocache);

    /**
     * Get the GPX id for a waypoint when exporting. For some connectors there is an inherent name logic,
     * for others its just the 'prefix'.
     */
    @NonNull
    String getWaypointGpxId(@NonNull String prefix, @NonNull String geocode);

    /**
     * Get the 'prefix' (key) for a waypoint from the 'name' in the GPX file
     */
    @NonNull
    String getWaypointPrefix(String name);

    /**
     * Get the maximum value for Terrain
     */
    int getMaxTerrain();

    /**
     * Get a user readable collection of all online features of this connector.
     */
    @NonNull
    Collection<String> getCapabilities();

    @NonNull
    List<UserAction> getUserActions(UserAction.UAContext user);

    /**
     * @return the URL to register a new account or {@code null}
     */
    @Nullable
    String getCreateAccountUrl();

    /**
     * abbreviation of the connector name for shorter display, e.g. for main page login status
     */
    @NonNull
    String getNameAbbreviated();
}

<MSG> Add verbose cache-loading
<DFF> @@ -5,19 +5,21 @@ import cgeo.geocaching.cgCache;
 import cgeo.geocaching.cgSearch;
 import cgeo.geocaching.cgeoapplication;
 
+import android.os.Handler;
+
 import java.util.UUID;
 
 public interface IConnector {
     /**
      * get name for display (currently only used in links)
-     * 
+     *
      * @return
      */
     public String getName();
 
     /**
      * return true, if this connector is responsible for the given cache
-     * 
+     *
      * @param geocode
      * @return
      */
@@ -27,7 +29,7 @@ public interface IConnector {
 
     /**
      * get browser URL for the given cache
-     * 
+     *
      * @param cache
      * @return
      */
@@ -35,28 +37,28 @@ public interface IConnector {
 
     /**
      * enable/disable watchlist controls in cache details
-     * 
+     *
      * @return
      */
     public boolean supportsWatchList();
 
     /**
      * enable/disable logging controls in cache details
-     * 
+     *
      * @return
      */
     public boolean supportsLogging();
 
     /**
      * get host name of the connector server for dynamic loading of data
-     * 
+     *
      * @return
      */
     public String getHost();
 
     /**
      * get cache data license text
-     * 
+     *
      * @param cache
      * @return
      */
@@ -64,17 +66,17 @@ public interface IConnector {
 
     /**
      * enable/disable user actions in cache details
-     * 
+     *
      * @return
      */
     public boolean supportsUserActions();
 
     /**
      * enable/disable "caches around" action in cache details
-     * 
+     *
      * @return
      */
     public boolean supportsCachesAround();
 
-    public UUID searchByGeocode(final cgBase base, final String geocode, final String guid, final cgeoapplication app, final cgSearch search, final int reason);
+    public UUID searchByGeocode(final cgBase base, final String geocode, final String guid, final cgeoapplication app, final cgSearch search, final int reason, final Handler handler);
 }

Add verbose cache-loading