diff --git a/data/src/main/java/org/cryptomator/data/cloud/webdav/WebDavImpl.kt b/data/src/main/java/org/cryptomator/data/cloud/webdav/WebDavImpl.kt index f8b66e75..36878331 100644 --- a/data/src/main/java/org/cryptomator/data/cloud/webdav/WebDavImpl.kt +++ b/data/src/main/java/org/cryptomator/data/cloud/webdav/WebDavImpl.kt @@ -2,6 +2,7 @@ package org.cryptomator.data.cloud.webdav import android.content.Context import org.cryptomator.data.cloud.webdav.network.ConnectionHandlerHandlerImpl +import org.cryptomator.data.cloud.webdav.network.ServerNotWebdavCompatibleException import org.cryptomator.data.util.CopyStream import org.cryptomator.data.util.TransferredBytesAwareInputStream import org.cryptomator.data.util.TransferredBytesAwareOutputStream @@ -14,6 +15,7 @@ import org.cryptomator.domain.exception.FatalBackendException import org.cryptomator.domain.exception.NotFoundException import org.cryptomator.domain.exception.ParentFolderDoesNotExistException import org.cryptomator.domain.exception.ParentFolderIsNullException +import org.cryptomator.domain.exception.authentication.WebDavNotSupportedException import org.cryptomator.domain.usecases.ProgressAware import org.cryptomator.domain.usecases.cloud.DataSource import org.cryptomator.domain.usecases.cloud.DownloadState @@ -142,7 +144,11 @@ internal class WebDavImpl(private val cloud: WebDavCloud, private val connection @Throws(BackendException::class) fun checkAuthenticationAndServerCompatibility(url: String) { - connectionHandler.checkAuthenticationAndServerCompatibility(url) + try { + connectionHandler.checkAuthenticationAndServerCompatibility(url) + } catch (ex: ServerNotWebdavCompatibleException) { + throw WebDavNotSupportedException(cloud) + } } @Throws(BackendException::class, IOException::class) diff --git a/data/src/main/java/org/cryptomator/data/cloud/webdav/network/ServerNotWebdavCompatibleException.java b/data/src/main/java/org/cryptomator/data/cloud/webdav/network/ServerNotWebdavCompatibleException.java new file mode 100644 index 00000000..9d54ff0f --- /dev/null +++ b/data/src/main/java/org/cryptomator/data/cloud/webdav/network/ServerNotWebdavCompatibleException.java @@ -0,0 +1,7 @@ +package org.cryptomator.data.cloud.webdav.network; + +import org.cryptomator.domain.exception.BackendException; + +public class ServerNotWebdavCompatibleException extends BackendException { + +} diff --git a/data/src/main/java/org/cryptomator/data/cloud/webdav/network/WebDavClient.kt b/data/src/main/java/org/cryptomator/data/cloud/webdav/network/WebDavClient.kt index 7bb6bd4c..62041233 100644 --- a/data/src/main/java/org/cryptomator/data/cloud/webdav/network/WebDavClient.kt +++ b/data/src/main/java/org/cryptomator/data/cloud/webdav/network/WebDavClient.kt @@ -10,7 +10,6 @@ import org.cryptomator.domain.exception.FatalBackendException import org.cryptomator.domain.exception.ForbiddenException import org.cryptomator.domain.exception.NotFoundException import org.cryptomator.domain.exception.ParentFolderDoesNotExistException -import org.cryptomator.domain.exception.ServerNotWebdavCompatibleException import org.cryptomator.domain.exception.TypeMismatchException import org.cryptomator.domain.exception.UnauthorizedException import org.xmlpull.v1.XmlPullParserException @@ -18,7 +17,6 @@ import java.io.ByteArrayInputStream import java.io.IOException import java.io.InputStream import java.net.HttpURLConnection -import java.util.ArrayList import java.util.Collections import okhttp3.MediaType.Companion.toMediaTypeOrNull import okhttp3.Request diff --git a/domain/src/main/java/org/cryptomator/domain/exception/ServerNotWebdavCompatibleException.java b/domain/src/main/java/org/cryptomator/domain/exception/ServerNotWebdavCompatibleException.java deleted file mode 100644 index 60287ac6..00000000 --- a/domain/src/main/java/org/cryptomator/domain/exception/ServerNotWebdavCompatibleException.java +++ /dev/null @@ -1,5 +0,0 @@ -package org.cryptomator.domain.exception; - -public class ServerNotWebdavCompatibleException extends BackendException { - -}