From 08b7e42a33f1e47f42e76e63137ddd92e57896a0 Mon Sep 17 00:00:00 2001 From: Philipp Crocoll Date: Mon, 28 Nov 2016 11:44:36 +0100 Subject: [PATCH] fix errors in DropboxV2+WebDav implementation --- .../javafilestorage/DropboxV2Storage.java | 2 + .../javafilestorage/WebDavStorage.java | 30 ++++++++---- .../kp2afilechooser/Kp2aFileProvider.java | 15 ++++-- .../drawable-mdpi/ic_storage_onedrive.png | Bin 0 -> 16504 bytes .../drawable-xhdpi/ic_storage_onedrive.png | Bin 0 -> 16603 bytes .../Resources/layout/ftpcredentials.xml | 6 +-- .../Resources/layout/httpcredentials.axml | 43 ++++++++++++++++++ 7 files changed, 82 insertions(+), 14 deletions(-) create mode 100644 src/keepass2android/Resources/drawable-mdpi/ic_storage_onedrive.png create mode 100644 src/keepass2android/Resources/drawable-xhdpi/ic_storage_onedrive.png create mode 100644 src/keepass2android/Resources/layout/httpcredentials.axml diff --git a/src/java/JavaFileStorage/app/src/main/java/keepass2android/javafilestorage/DropboxV2Storage.java b/src/java/JavaFileStorage/app/src/main/java/keepass2android/javafilestorage/DropboxV2Storage.java index 3361c583..6a0f29fe 100644 --- a/src/java/JavaFileStorage/app/src/main/java/keepass2android/javafilestorage/DropboxV2Storage.java +++ b/src/java/JavaFileStorage/app/src/main/java/keepass2android/javafilestorage/DropboxV2Storage.java @@ -425,6 +425,8 @@ public class DropboxV2Storage extends JavaFileStorageBase //querying root is not supported if ((filename.equals("")) || (filename.equals("/"))) return getRootFileEntry(); + if (filename.endsWith("/")) + filename = filename.substring(0,filename.length()-1); Metadata dbEntry = dbxClient.files().getMetadata(filename); return convertToFileEntry(dbEntry); diff --git a/src/java/JavaFileStorage/app/src/main/java/keepass2android/javafilestorage/WebDavStorage.java b/src/java/JavaFileStorage/app/src/main/java/keepass2android/javafilestorage/WebDavStorage.java index 27d1a0b2..8965a15e 100644 --- a/src/java/JavaFileStorage/app/src/main/java/keepass2android/javafilestorage/WebDavStorage.java +++ b/src/java/JavaFileStorage/app/src/main/java/keepass2android/javafilestorage/WebDavStorage.java @@ -3,6 +3,7 @@ package keepass2android.javafilestorage; import android.content.Context; import android.content.Intent; +import android.net.Uri; import android.os.Bundle; import android.util.Log; @@ -265,7 +266,7 @@ public class WebDavStorage extends JavaFileStorageBase { e.displayName = okprop.DisplayName; if (e.displayName == null) { - e.displayName = getDisplayName(r.href); + e.displayName = getDisplayNameFromHref(r.href); } e.path = r.href; @@ -418,15 +419,28 @@ public class WebDavStorage extends JavaFileStorageBase { } + String getDisplayNameFromHref(String href) + { + if (href.endsWith("/")) + href = href.substring(0, href.length()-1); + int lastIndex = href.lastIndexOf("/"); + if (lastIndex >= 0) + return href.substring(lastIndex + 1); + else + return href; + } + @Override public String getDisplayName(String path) { - if (path.endsWith("/")) - path = path.substring(0, path.length()-1); - int lastIndex = path.lastIndexOf("/"); - if (lastIndex >= 0) - return path.substring(lastIndex + 1); - else - return path; + + try { + ConnectionInfo ci = splitStringToConnectionInfo(path); + return ci.URL; + } + catch (Exception e) + { + return getDisplayNameFromHref(path); + } } diff --git a/src/java/android-filechooser-AS/app/src/main/java/keepass2android/kp2afilechooser/Kp2aFileProvider.java b/src/java/android-filechooser-AS/app/src/main/java/keepass2android/kp2afilechooser/Kp2aFileProvider.java index 160ee800..cefe6487 100644 --- a/src/java/android-filechooser-AS/app/src/main/java/keepass2android/kp2afilechooser/Kp2aFileProvider.java +++ b/src/java/android-filechooser-AS/app/src/main/java/keepass2android/kp2afilechooser/Kp2aFileProvider.java @@ -304,9 +304,18 @@ public abstract class Kp2aFileProvider extends BaseFileProvider { Log.d(CLASSNAME, "parent file is null"); return null; } - - FileEntry e = this.getFileEntryCached(parentPath); - + FileEntry e; + try { + e = this.getFileEntryCached(parentPath); + } + catch (Exception ex) + { + ex.printStackTrace(); + return null; + } + if (e == null) + return null; + matrixCursor = BaseFileProviderUtils.newBaseFileCursor(); int type = parentPath != null ? BaseFile.FILE_TYPE_DIRECTORY diff --git a/src/keepass2android/Resources/drawable-mdpi/ic_storage_onedrive.png b/src/keepass2android/Resources/drawable-mdpi/ic_storage_onedrive.png new file mode 100644 index 0000000000000000000000000000000000000000..fe207bab5c6abde3bc9106ea56a4b7fc13a6065f GIT binary patch literal 16504 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 C)3%@h literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable-xhdpi/ic_storage_onedrive.png b/src/keepass2android/Resources/drawable-xhdpi/ic_storage_onedrive.png new file mode 100644 index 0000000000000000000000000000000000000000..6528dd31fe49d3de7addc609da0a7c136ee89097 GIT binary patch literal 16603 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 @@ -45,7 +45,7 @@ android:layout_width="fill_parent" android:layout_height="wrap_content" android:singleLine="true" - android:text="f00c530c" + android:text="" android:hint="@string/hint_username" /> diff --git a/src/keepass2android/Resources/layout/httpcredentials.axml b/src/keepass2android/Resources/layout/httpcredentials.axml new file mode 100644 index 00000000..e9e45024 --- /dev/null +++ b/src/keepass2android/Resources/layout/httpcredentials.axml @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + \ No newline at end of file