package cgeo.geocaching.connector.trackable; import cgeo.geocaching.models.Trackable; import cgeo.geocaching.connector.AbstractConnector; import cgeo.geocaching.connector.UserAction; import cgeo.geocaching.log.AbstractLoggingActivity; import cgeo.geocaching.log.TrackableLog; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import java.util.Collections; import java.util.List; import io.reactivex.Observable; public abstract class AbstractTrackableConnector implements TrackableConnector { @Override public int getPreferenceActivity() { return 0; } @Override public boolean isLoggable() { return false; } @Override public boolean canHandleTrackable(@Nullable final String geocode, @Nullable final TrackableBrand brand) { if (brand == null || brand == TrackableBrand.UNKNOWN) { return canHandleTrackable(geocode); } return brand == getBrand() && canHandleTrackable(geocode); } @Override public boolean hasTrackableUrls() { return true; } @Override @Nullable public String getTrackableCodeFromUrl(@NonNull final String url) { return null; } @Override @Nullable public String getTrackableTrackingCodeFromUrl(@NonNull final String url) { return null; } @Override @NonNull public List<UserAction> getUserActions() { return AbstractConnector.getDefaultUserActions(); } @Override @NonNull public String getUrl(@NonNull final Trackable trackable) { throw new IllegalStateException("this trackable does not have a corresponding URL"); } @Override @NonNull public String getHostUrl() { return "https://" + getHost(); } @Override @NonNull public String getTestUrl() { return getHostUrl(); } @Override @Nullable public String getProxyUrl() { return null; } @Override @NonNull public List<Trackable> searchTrackables(final String geocode) { return Collections.emptyList(); } @Override @NonNull public List<Trackable> loadInventory() { return Collections.emptyList(); } @Override public boolean isGenericLoggable() { return false; } @Override public boolean isActive() { return false; } @Override public boolean isRegistered() { return false; } @Override public boolean recommendLogWithGeocode() { return false; } @Override @NonNull public Observable<TrackableLog> trackableLogInventory() { return Observable.empty(); } @Override public int getTrackableLoggingManagerLoaderId() { return 0; } @Override public AbstractTrackableLoggingManager getTrackableLoggingManager(final AbstractLoggingActivity activity) { return null; } }