From 2d9a450b34acf7211ec59f2d75fd072a94f1d4eb Mon Sep 17 00:00:00 2001 From: xyoye Date: Sun, 3 Mar 2024 14:49:13 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E5=AE=8C=E5=96=84:=20?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=BF=9C=E7=A8=8B=E5=AA=92=E4=BD=93=E5=BA=93?= =?UTF-8?q?=E5=9C=B0=E5=9D=80=E4=B8=BA=E8=87=AA=E5=AE=9A=E4=B9=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit close #224 --- .../storage/impl/RemoteStorage.kt | 12 +++- .../ui/dialog/AlistStorageEditDialog.kt | 2 +- .../ui/dialog/RemoteStorageEditDialog.kt | 17 ++++-- .../ui/dialog/WebDavStorageEditDialog.kt | 2 +- .../main/res/layout/dialog_alist_login.xml | 2 +- .../main/res/layout/dialog_remote_login.xml | 55 +++++-------------- .../main/res/layout/dialog_web_dav_login.xml | 2 +- .../src/main/res/values/strings.xml | 2 +- 8 files changed, 43 insertions(+), 51 deletions(-) diff --git a/common_component/src/main/java/com/xyoye/common_component/storage/impl/RemoteStorage.kt b/common_component/src/main/java/com/xyoye/common_component/storage/impl/RemoteStorage.kt index 3de2f6615..d89b37fd8 100644 --- a/common_component/src/main/java/com/xyoye/common_component/storage/impl/RemoteStorage.kt +++ b/common_component/src/main/java/com/xyoye/common_component/storage/impl/RemoteStorage.kt @@ -26,7 +26,7 @@ class RemoteStorage(library: MediaLibraryEntity) : AbstractStorage(library) { private var storageFilesSnapshot = listOf() - override var rootUri: Uri = Uri.parse("http://${library.url}:${library.port}") + override var rootUri: Uri = generateRootUri() override suspend fun listFiles(file: StorageFile): List { return if (file.isRootFile()) { @@ -133,4 +133,14 @@ class RemoteStorage(library: MediaLibraryEntity) : AbstractStorage(library) { } } } + + private fun generateRootUri(): Uri { + // 兼容旧模式数据 + val noScheme = Uri.parse(library.url).scheme.isNullOrEmpty() + if (noScheme) { + return Uri.parse("http://${library.url}:${library.port}") + } + + return Uri.parse(library.url) + } } \ No newline at end of file diff --git a/storage_component/src/main/java/com/xyoye/storage_component/ui/dialog/AlistStorageEditDialog.kt b/storage_component/src/main/java/com/xyoye/storage_component/ui/dialog/AlistStorageEditDialog.kt index 7eabca5e6..7f02965a1 100644 --- a/storage_component/src/main/java/com/xyoye/storage_component/ui/dialog/AlistStorageEditDialog.kt +++ b/storage_component/src/main/java/com/xyoye/storage_component/ui/dialog/AlistStorageEditDialog.kt @@ -82,7 +82,7 @@ class AlistStorageEditDialog( private fun checkParams(serverData: MediaLibraryEntity): Boolean { if (serverData.url.isEmpty()) { - ToastCenter.showWarning("请填写服务器名称或IP地址") + ToastCenter.showWarning("请填写服务器地址") return false } if (!serverData.url.endsWith("/")) { diff --git a/storage_component/src/main/java/com/xyoye/storage_component/ui/dialog/RemoteStorageEditDialog.kt b/storage_component/src/main/java/com/xyoye/storage_component/ui/dialog/RemoteStorageEditDialog.kt index 62ed8b010..079474b5f 100644 --- a/storage_component/src/main/java/com/xyoye/storage_component/ui/dialog/RemoteStorageEditDialog.kt +++ b/storage_component/src/main/java/com/xyoye/storage_component/ui/dialog/RemoteStorageEditDialog.kt @@ -80,7 +80,7 @@ class RemoteStorageEditDialog( if (remoteData.displayName.isEmpty()) { remoteData.displayName = "远程媒体库" } - remoteData.describe = "http://${remoteData.url}:${remoteData.port}" + remoteData.describe = remoteData.url activity.addStorage(remoteData) } } @@ -102,7 +102,17 @@ class RemoteStorageEditDialog( private fun checkParams(remoteData: MediaLibraryEntity): Boolean { if (remoteData.url.isEmpty()) { - ToastCenter.showWarning("请填写IP地址") + ToastCenter.showWarning("请填写服务器地址") + return false + } + + if (!remoteData.url.endsWith("/")) { + remoteData.url = "${remoteData.url}/" + } + + val serverUrl = remoteData.url + if (!serverUrl.startsWith("http://") && !serverUrl.startsWith("https://")) { + ToastCenter.showWarning("请填写服务器协议:http或https") return false } @@ -129,8 +139,7 @@ class RemoteStorageEditDialog( if (data == null) { return@block } - remoteData.url = data.selectedIP ?: "" - remoteData.port = data.port + remoteData.url = "http://${data.selectedIP.orEmpty()}:${data.port}/" remoteData.displayName = data.machineName ?: "" tokenRequired = data.tokenRequired binding.remoteData = remoteData diff --git a/storage_component/src/main/java/com/xyoye/storage_component/ui/dialog/WebDavStorageEditDialog.kt b/storage_component/src/main/java/com/xyoye/storage_component/ui/dialog/WebDavStorageEditDialog.kt index 7c358885a..72382b212 100644 --- a/storage_component/src/main/java/com/xyoye/storage_component/ui/dialog/WebDavStorageEditDialog.kt +++ b/storage_component/src/main/java/com/xyoye/storage_component/ui/dialog/WebDavStorageEditDialog.kt @@ -105,7 +105,7 @@ class WebDavStorageEditDialog( private fun checkParams(serverData: MediaLibraryEntity): Boolean { if (serverData.url.isEmpty()) { - ToastCenter.showWarning("请填写服务器名称或IP地址") + ToastCenter.showWarning("请填写服务器地址") return false } if (!serverData.url.endsWith("/")) { diff --git a/storage_component/src/main/res/layout/dialog_alist_login.xml b/storage_component/src/main/res/layout/dialog_alist_login.xml index 56cec5468..356340f7c 100644 --- a/storage_component/src/main/res/layout/dialog_alist_login.xml +++ b/storage_component/src/main/res/layout/dialog_alist_login.xml @@ -25,7 +25,7 @@ android:layout_height="48dp" android:background="@drawable/background_dialog_edit" android:gravity="center_vertical" - android:hint="@string/hint_web_dav_address" + android:hint="@string/hint_server_address" android:maxLines="1" android:paddingStart="20dp" android:paddingEnd="20dp" diff --git a/storage_component/src/main/res/layout/dialog_remote_login.xml b/storage_component/src/main/res/layout/dialog_remote_login.xml index e9fd077c7..abb2ae16e 100644 --- a/storage_component/src/main/res/layout/dialog_remote_login.xml +++ b/storage_component/src/main/res/layout/dialog_remote_login.xml @@ -23,48 +23,21 @@ android:layout_gravity="center_vertical" android:orientation="vertical"> - - - - - - + android:layout_height="48dp" + android:background="@drawable/background_dialog_edit" + android:gravity="center_vertical" + android:hint="@string/hint_server_address" + android:maxLines="1" + android:paddingStart="20dp" + android:paddingEnd="20dp" + android:singleLine="true" + android:text="@={remoteData.url}" + android:textColor="@color/text_black" + android:textColorHint="@color/text_gray" + android:textSize="14sp" /> com.xyoye.storage_component.ui.weight.StorageFileBehavior storage_component - 服务器名称或IP地址 + 服务器地址,如:http://127.0.0.1:80/ 显示名称(可空) 登录模式 帐号登录