From 56ec2e204fa6fa14d8aaf7d6dcc3c89263e6fbd1 Mon Sep 17 00:00:00 2001 From: Julian Raufelder Date: Sun, 14 Feb 2021 10:48:25 +0100 Subject: [PATCH] #192 create first two sample assisted WebDAV clouds --- .../org/cryptomator/domain/CloudType.java | 2 +- .../intent/WebDavAddOrChangeIntent.java | 4 +++ .../presentation/model/CloudTypeModel.kt | 23 +++++++++++++--- .../model/mappers/CloudModelMapper.kt | 2 +- .../presenter/CloudConnectionListPresenter.kt | 25 +++++++++++++++--- .../ui/activity/ChooseCloudServiceActivity.kt | 2 +- .../ui/activity/WebDavAddOrChangeActivity.kt | 2 +- .../ui/fragment/WebDavAddOrChangeFragment.kt | 13 +++++++-- .../drawable-xhdpi/cloud_type_webde_large.png | Bin 0 -> 17478 bytes .../cloud_type_webde_large.png | Bin 0 -> 25100 bytes presentation/src/main/res/values/strings.xml | 2 ++ 11 files changed, 62 insertions(+), 13 deletions(-) create mode 100644 presentation/src/main/res/drawable-xhdpi/cloud_type_webde_large.png create mode 100644 presentation/src/main/res/drawable-xxhdpi/cloud_type_webde_large.png diff --git a/domain/src/main/java/org/cryptomator/domain/CloudType.java b/domain/src/main/java/org/cryptomator/domain/CloudType.java index 5161e418..ba2470c2 100644 --- a/domain/src/main/java/org/cryptomator/domain/CloudType.java +++ b/domain/src/main/java/org/cryptomator/domain/CloudType.java @@ -2,6 +2,6 @@ package org.cryptomator.domain; public enum CloudType { - DROPBOX, GOOGLE_DRIVE, ONEDRIVE, WEBDAV, LOCAL, CRYPTO + DROPBOX, GOOGLE_DRIVE, ONEDRIVE, LOCAL, CRYPTO, WEBDAV, WEB_DE, MAILBOX_ORG } diff --git a/presentation/src/main/java/org/cryptomator/presentation/intent/WebDavAddOrChangeIntent.java b/presentation/src/main/java/org/cryptomator/presentation/intent/WebDavAddOrChangeIntent.java index 55f1f516..92074195 100644 --- a/presentation/src/main/java/org/cryptomator/presentation/intent/WebDavAddOrChangeIntent.java +++ b/presentation/src/main/java/org/cryptomator/presentation/intent/WebDavAddOrChangeIntent.java @@ -10,4 +10,8 @@ public interface WebDavAddOrChangeIntent { @Optional WebDavCloudModel webDavCloud(); + + @Optional + String preFilledURL(); + } diff --git a/presentation/src/main/java/org/cryptomator/presentation/model/CloudTypeModel.kt b/presentation/src/main/java/org/cryptomator/presentation/model/CloudTypeModel.kt index 74f9d2b6..da83a2ad 100644 --- a/presentation/src/main/java/org/cryptomator/presentation/model/CloudTypeModel.kt +++ b/presentation/src/main/java/org/cryptomator/presentation/model/CloudTypeModel.kt @@ -15,24 +15,36 @@ enum class CloudTypeModel(builder: Builder) { ONEDRIVE(Builder("ONEDRIVE", R.string.cloud_names_onedrive) // .withCloudImageResource(R.drawable.cloud_type_onedrive) // .withCloudImageLargeResource(R.drawable.cloud_type_onedrive_large)), // + LOCAL(Builder("LOCAL", R.string.cloud_names_local_storage) // + .withCloudImageResource(R.drawable.storage_type_local) // + .withCloudImageLargeResource(R.drawable.storage_type_local_large)), // WEBDAV(Builder("WEBDAV", R.string.cloud_names_webdav) // .withCloudImageResource(R.drawable.cloud_type_webdav) // .withCloudImageLargeResource(R.drawable.cloud_type_webdav_large) // .withMultiInstances()), // - LOCAL(Builder("LOCAL", R.string.cloud_names_local_storage) // - .withCloudImageResource(R.drawable.storage_type_local) // - .withCloudImageLargeResource(R.drawable.storage_type_local_large)); + WEB_DE(Builder("WEB", R.string.cloud_names_webde) // + .withCloudImageResource(R.drawable.cloud_type_webdav) // + .withCloudImageLargeResource(R.drawable.cloud_type_webde_large) // + .withMultiInstances() + .withPreFilledURL("https://webdav.smartdrive.web.de")), // + MAILBOX_ORG(Builder("MAILBOX", R.string.cloud_names_mailboxorg) // + .withCloudImageResource(R.drawable.cloud_type_webdav) // + .withCloudImageLargeResource(R.drawable.cloud_type_webdav_large) // + .withMultiInstances() + .withPreFilledURL("https://dav.mailbox.org/servlet/webdav.infostore")); val cloudName: String = builder.cloudName val displayNameResource: Int = builder.displayNameResource val cloudImageResource: Int = builder.cloudImageResource val cloudImageLargeResource: Int = builder.cloudImageLargeResource val isMultiInstance: Boolean = builder.multiInstances + val preFilledURL: String = builder.preFilledURL private class Builder(val cloudName: String, val displayNameResource: Int) { var cloudImageResource = 0 var cloudImageLargeResource = 0 var multiInstances = false + var preFilledURL = "" fun withCloudImageResource(cloudImageResource: Int): Builder { this.cloudImageResource = cloudImageResource @@ -48,6 +60,11 @@ enum class CloudTypeModel(builder: Builder) { multiInstances = true return this } + + fun withPreFilledURL(preFilledURL: String): Builder { + this.preFilledURL = preFilledURL + return this + } } companion object { diff --git a/presentation/src/main/java/org/cryptomator/presentation/model/mappers/CloudModelMapper.kt b/presentation/src/main/java/org/cryptomator/presentation/model/mappers/CloudModelMapper.kt index 9beca39f..b955e7a0 100644 --- a/presentation/src/main/java/org/cryptomator/presentation/model/mappers/CloudModelMapper.kt +++ b/presentation/src/main/java/org/cryptomator/presentation/model/mappers/CloudModelMapper.kt @@ -18,7 +18,7 @@ class CloudModelMapper @Inject constructor() : ModelMapper() CloudTypeModel.ONEDRIVE -> OnedriveCloudModel(domainObject) CloudTypeModel.CRYPTO -> CryptoCloudModel(domainObject) CloudTypeModel.LOCAL -> LocalStorageModel(domainObject) - CloudTypeModel.WEBDAV -> WebDavCloudModel(domainObject) + CloudTypeModel.WEBDAV, CloudTypeModel.WEB_DE, CloudTypeModel.MAILBOX_ORG -> WebDavCloudModel(domainObject) } } } diff --git a/presentation/src/main/java/org/cryptomator/presentation/presenter/CloudConnectionListPresenter.kt b/presentation/src/main/java/org/cryptomator/presentation/presenter/CloudConnectionListPresenter.kt index b4a11094..0957f097 100644 --- a/presentation/src/main/java/org/cryptomator/presentation/presenter/CloudConnectionListPresenter.kt +++ b/presentation/src/main/java/org/cryptomator/presentation/presenter/CloudConnectionListPresenter.kt @@ -6,9 +6,7 @@ import android.net.Uri import android.os.Build import android.widget.Toast import androidx.annotation.RequiresApi -import org.cryptomator.domain.Cloud -import org.cryptomator.domain.LocalStorageCloud -import org.cryptomator.domain.Vault +import org.cryptomator.domain.* import org.cryptomator.domain.di.PerView import org.cryptomator.domain.usecases.cloud.AddOrChangeCloudConnectionUseCase import org.cryptomator.domain.usecases.cloud.GetCloudsUseCase @@ -48,8 +46,13 @@ class CloudConnectionListPresenter @Inject constructor( // } fun loadCloudList() { + val cloudTypeFilter = when(selectedCloudType.get()) { + CloudTypeModel.WEB_DE, CloudTypeModel.MAILBOX_ORG -> CloudTypeModel.WEBDAV + else -> selectedCloudType.get() + } + getCloudsUseCase // - .withCloudType(CloudTypeModel.valueOf(selectedCloudType.get())) // + .withCloudType(CloudTypeModel.valueOf(cloudTypeFilter)) // .run(object : DefaultResultHandler>() { override fun onSuccess(clouds: List) { val cloudModels: MutableList = ArrayList() @@ -60,6 +63,18 @@ class CloudConnectionListPresenter @Inject constructor( // return@forEach } } + + // WebDAV but WEB.DE, MAILBOX_ORG, or ... + if(cloud.type() == CloudType.WEBDAV && selectedCloudType.get() != cloud.type()) { + when (selectedCloudType.get()) { + CloudTypeModel.WEB_DE, CloudTypeModel.MAILBOX_ORG -> { + if(!(cloud as WebDavCloud).url().startsWith(selectedCloudType.get().preFilledURL)) { + return@forEach + } + } + } + } + cloudModels.add(cloudModelMapper.toModel(cloud)) } view?.showCloudModels(cloudModels) @@ -123,6 +138,8 @@ class CloudConnectionListPresenter @Inject constructor( // CloudTypeModel.WEBDAV -> requestActivityResult(ActivityResultCallbacks.addChangeWebDavCloud(), // Intents.webDavAddOrChangeIntent()) CloudTypeModel.LOCAL -> openDocumentTree() + CloudTypeModel.WEB_DE, CloudTypeModel.MAILBOX_ORG -> requestActivityResult(ActivityResultCallbacks.addChangeWebDavCloud(), // + Intents.webDavAddOrChangeIntent().withPreFilledURL(selectedCloudType.get().preFilledURL)) } } diff --git a/presentation/src/main/java/org/cryptomator/presentation/ui/activity/ChooseCloudServiceActivity.kt b/presentation/src/main/java/org/cryptomator/presentation/ui/activity/ChooseCloudServiceActivity.kt index 1ef30889..55df6694 100644 --- a/presentation/src/main/java/org/cryptomator/presentation/ui/activity/ChooseCloudServiceActivity.kt +++ b/presentation/src/main/java/org/cryptomator/presentation/ui/activity/ChooseCloudServiceActivity.kt @@ -29,7 +29,7 @@ class ChooseCloudServiceActivity : BaseActivity(), ChooseCloudServiceView { setSupportActionBar(toolbar) } - override fun createFragment(): Fragment? = ChooseCloudServiceFragment() + override fun createFragment(): Fragment = ChooseCloudServiceFragment() override fun getCustomMenuResource(): Int = R.menu.menu_cloud_services diff --git a/presentation/src/main/java/org/cryptomator/presentation/ui/activity/WebDavAddOrChangeActivity.kt b/presentation/src/main/java/org/cryptomator/presentation/ui/activity/WebDavAddOrChangeActivity.kt index 15715be8..ea0257b1 100644 --- a/presentation/src/main/java/org/cryptomator/presentation/ui/activity/WebDavAddOrChangeActivity.kt +++ b/presentation/src/main/java/org/cryptomator/presentation/ui/activity/WebDavAddOrChangeActivity.kt @@ -31,7 +31,7 @@ class WebDavAddOrChangeActivity : BaseActivity(), setSupportActionBar(toolbar) } - override fun createFragment(): Fragment = WebDavAddOrChangeFragment.newInstance(webDavAddOrChangeIntent.webDavCloud()) + override fun createFragment(): Fragment = WebDavAddOrChangeFragment.newInstance(webDavAddOrChangeIntent.webDavCloud(), webDavAddOrChangeIntent.preFilledURL()) override fun onCheckUserInputSucceeded(urlPort: String, username: String, password: String, cloudId: Long?, certificate: String?) { webDavAddOrChangeFragment().hideKeyboard() diff --git a/presentation/src/main/java/org/cryptomator/presentation/ui/fragment/WebDavAddOrChangeFragment.kt b/presentation/src/main/java/org/cryptomator/presentation/ui/fragment/WebDavAddOrChangeFragment.kt index 3285b987..1af409e8 100644 --- a/presentation/src/main/java/org/cryptomator/presentation/ui/fragment/WebDavAddOrChangeFragment.kt +++ b/presentation/src/main/java/org/cryptomator/presentation/ui/fragment/WebDavAddOrChangeFragment.kt @@ -23,6 +23,9 @@ class WebDavAddOrChangeFragment : BaseFragment() { private val webDavCloudModel: WebDavCloudModel? get() = arguments?.getSerializable(ARG_WEBDAV_CLOUD) as? WebDavCloudModel + private val preFilledPath: String? + get() = arguments?.getSerializable(ARG_PRE_FILLED_PATH) as? String + override fun setupView() { createCloudButton.setOnClickListener { createCloud() } createCloudButton.setOnEditorActionListener { _, actionId, _ -> @@ -32,12 +35,16 @@ class WebDavAddOrChangeFragment : BaseFragment() { false } + preFilledPath?.let { + urlPortEditText.setText(it) + } + urlPortEditText.text?.length?.let { urlPortEditText.setSelection(it) } showEditableCloudContent(webDavCloudModel) } private fun showEditableCloudContent(webDavCloudModel: WebDavCloudModel?) { - if (webDavCloudModel != null) { + webDavCloudModel?.let { urlPortEditText.setText(webDavCloudModel.url()) userNameEditText.setText(webDavCloudModel.username()) passwordEditText.setText(getPassword(webDavCloudModel.accessToken())) @@ -74,11 +81,13 @@ class WebDavAddOrChangeFragment : BaseFragment() { companion object { private const val ARG_WEBDAV_CLOUD = "WEBDAV_CLOUD" + private const val ARG_PRE_FILLED_PATH = "PRE_FILLED_CLOUD_PATH" - fun newInstance(cloudModel: WebDavCloudModel?): WebDavAddOrChangeFragment { + fun newInstance(cloudModel: WebDavCloudModel?, preFilledURL: String?): androidx.fragment.app.Fragment { val result = WebDavAddOrChangeFragment() val args = Bundle() args.putSerializable(ARG_WEBDAV_CLOUD, cloudModel) + args.putSerializable(ARG_PRE_FILLED_PATH, preFilledURL) result.arguments = args return result } diff --git a/presentation/src/main/res/drawable-xhdpi/cloud_type_webde_large.png b/presentation/src/main/res/drawable-xhdpi/cloud_type_webde_large.png new file mode 100644 index 0000000000000000000000000000000000000000..48bf071477825dfc4cfe33824bc22ae12388c49f GIT binary patch literal 17478 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 q*;!lnr~jBM9UCwEjFABY)a;R7lSUb_ymBGkcC7 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 &GflshGC$ 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 literal 0 HcmV?d00001 diff --git a/presentation/src/main/res/values/strings.xml b/presentation/src/main/res/values/strings.xml index 240d713f..daf287a5 100644 --- a/presentation/src/main/res/values/strings.xml +++ b/presentation/src/main/res/values/strings.xml @@ -41,6 +41,8 @@ OneDrive WebDAV Local storage + WEB.DE + Mailbox.org