diff --git a/src/DropboxBinding/Additions/AboutAdditions.txt b/src/DropboxBinding/Additions/AboutAdditions.txt new file mode 100644 index 000000000..2775bd360 --- /dev/null +++ b/src/DropboxBinding/Additions/AboutAdditions.txt @@ -0,0 +1,48 @@ +Additions allow you to add arbitrary C# to the generated classes +before they are compiled. This can be helpful for providing convenience +methods or adding pure C# classes. + +== Adding Methods to Generated Classes == + +Let's say the library being bound has a Rectangle class with a constructor +that takes an x and y position, and a width and length size. It will look like +this: + +public partial class Rectangle +{ + public Rectangle (int x, int y, int width, int height) + { + // JNI bindings + } +} + +Imagine we want to add a constructor to this class that takes a Point and +Size structure instead of 4 ints. We can add a new file called Rectangle.cs +with a partial class containing our new method: + +public partial class Rectangle +{ + public Rectangle (Point location, Size size) : + this (location.X, location.Y, size.Width, size.Height) + { + } +} + +At compile time, the additions class will be added to the generated class +and the final assembly will a Rectangle class with both constructors. + + +== Adding C# Classes == + +Another thing that can be done is adding fully C# managed classes to the +generated library. In the above example, let's assume that there isn't a +Point class available in Java or our library. The one we create doesn't need +to interact with Java, so we'll create it like a normal class in C#. + +By adding a Point.cs file with this class, it will end up in the binding library: + +public class Point +{ + public int X { get; set; } + public int Y { get; set; } +} \ No newline at end of file diff --git a/src/DropboxBinding/DropboxBinding.csproj b/src/DropboxBinding/DropboxBinding.csproj new file mode 100644 index 000000000..f7a94a3c3 --- /dev/null +++ b/src/DropboxBinding/DropboxBinding.csproj @@ -0,0 +1,8 @@ + + + net8.0-android + 21 + enable + enable + + \ No newline at end of file diff --git a/src/DropboxBinding/Transforms/EnumFields.xml b/src/DropboxBinding/Transforms/EnumFields.xml new file mode 100644 index 000000000..22959957e --- /dev/null +++ b/src/DropboxBinding/Transforms/EnumFields.xml @@ -0,0 +1,14 @@ + + + \ No newline at end of file diff --git a/src/DropboxBinding/Transforms/EnumMethods.xml b/src/DropboxBinding/Transforms/EnumMethods.xml new file mode 100644 index 000000000..49216c618 --- /dev/null +++ b/src/DropboxBinding/Transforms/EnumMethods.xml @@ -0,0 +1,13 @@ + + + \ No newline at end of file diff --git a/src/DropboxBinding/Transforms/Metadata.xml b/src/DropboxBinding/Transforms/Metadata.xml new file mode 100644 index 000000000..860ede52e --- /dev/null +++ b/src/DropboxBinding/Transforms/Metadata.xml @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/DropboxBinding/dropbox-android-sdk-7.0.0.aar b/src/DropboxBinding/dropbox-android-sdk-7.0.0.aar new file mode 100644 index 000000000..6026de7ca Binary files /dev/null and b/src/DropboxBinding/dropbox-android-sdk-7.0.0.aar differ diff --git a/src/JavaFileStorageBindings/dropbox-core-sdk-5.4.6.jar b/src/DropboxBinding/dropbox-core-sdk-7.0.0.jar similarity index 60% rename from src/JavaFileStorageBindings/dropbox-core-sdk-5.4.6.jar rename to src/DropboxBinding/dropbox-core-sdk-7.0.0.jar index 9004a26d7..72175ca37 100644 Binary files a/src/JavaFileStorageBindings/dropbox-core-sdk-5.4.6.jar and b/src/DropboxBinding/dropbox-core-sdk-7.0.0.jar differ diff --git a/src/KeePass.sln b/src/KeePass.sln index 2a9b97007..4123c9ff1 100644 --- a/src/KeePass.sln +++ b/src/KeePass.sln @@ -29,6 +29,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PCloudBindings", "PCloudBin EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Kp2aAutofillParser.Tests", "Kp2aAutofillParser.Tests\Kp2aAutofillParser.Tests.csproj", "{F5A2A8F9-C084-498F-9603-9D927BA5C626}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DropboxBinding", "DropboxBinding\DropboxBinding.csproj", "{2FE6E335-E834-4F86-AB83-2C5D225DA929}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -369,6 +371,30 @@ Global {F5A2A8F9-C084-498F-9603-9D927BA5C626}.ReleaseNoNet|Win32.Build.0 = Release|Any CPU {F5A2A8F9-C084-498F-9603-9D927BA5C626}.ReleaseNoNet|x64.ActiveCfg = Release|Any CPU {F5A2A8F9-C084-498F-9603-9D927BA5C626}.ReleaseNoNet|x64.Build.0 = Release|Any CPU + {2FE6E335-E834-4F86-AB83-2C5D225DA929}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2FE6E335-E834-4F86-AB83-2C5D225DA929}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2FE6E335-E834-4F86-AB83-2C5D225DA929}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {2FE6E335-E834-4F86-AB83-2C5D225DA929}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {2FE6E335-E834-4F86-AB83-2C5D225DA929}.Debug|Win32.ActiveCfg = Debug|Any CPU + {2FE6E335-E834-4F86-AB83-2C5D225DA929}.Debug|Win32.Build.0 = Debug|Any CPU + {2FE6E335-E834-4F86-AB83-2C5D225DA929}.Debug|x64.ActiveCfg = Debug|Any CPU + {2FE6E335-E834-4F86-AB83-2C5D225DA929}.Debug|x64.Build.0 = Debug|Any CPU + {2FE6E335-E834-4F86-AB83-2C5D225DA929}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2FE6E335-E834-4F86-AB83-2C5D225DA929}.Release|Any CPU.Build.0 = Release|Any CPU + {2FE6E335-E834-4F86-AB83-2C5D225DA929}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {2FE6E335-E834-4F86-AB83-2C5D225DA929}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {2FE6E335-E834-4F86-AB83-2C5D225DA929}.Release|Win32.ActiveCfg = Release|Any CPU + {2FE6E335-E834-4F86-AB83-2C5D225DA929}.Release|Win32.Build.0 = Release|Any CPU + {2FE6E335-E834-4F86-AB83-2C5D225DA929}.Release|x64.ActiveCfg = Release|Any CPU + {2FE6E335-E834-4F86-AB83-2C5D225DA929}.Release|x64.Build.0 = Release|Any CPU + {2FE6E335-E834-4F86-AB83-2C5D225DA929}.ReleaseNoNet|Any CPU.ActiveCfg = Release|Any CPU + {2FE6E335-E834-4F86-AB83-2C5D225DA929}.ReleaseNoNet|Any CPU.Build.0 = Release|Any CPU + {2FE6E335-E834-4F86-AB83-2C5D225DA929}.ReleaseNoNet|Mixed Platforms.ActiveCfg = Release|Any CPU + {2FE6E335-E834-4F86-AB83-2C5D225DA929}.ReleaseNoNet|Mixed Platforms.Build.0 = Release|Any CPU + {2FE6E335-E834-4F86-AB83-2C5D225DA929}.ReleaseNoNet|Win32.ActiveCfg = Release|Any CPU + {2FE6E335-E834-4F86-AB83-2C5D225DA929}.ReleaseNoNet|Win32.Build.0 = Release|Any CPU + {2FE6E335-E834-4F86-AB83-2C5D225DA929}.ReleaseNoNet|x64.ActiveCfg = Release|Any CPU + {2FE6E335-E834-4F86-AB83-2C5D225DA929}.ReleaseNoNet|x64.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/src/java/JavaFileStorage/app/build.gradle b/src/java/JavaFileStorage/app/build.gradle index 939b6eddd..a1cde9c30 100644 --- a/src/java/JavaFileStorage/app/build.gradle +++ b/src/java/JavaFileStorage/app/build.gradle @@ -41,7 +41,8 @@ dependencies { exclude group: 'com.google.android.google-play-services' } implementation 'com.google.apis:google-api-services-drive:v2-rev102-1.16.0-rc' - implementation 'com.dropbox.core:dropbox-core-sdk:5.4.6' + implementation 'com.dropbox.core:dropbox-core-sdk:7.0.0' + implementation 'com.dropbox.core:dropbox-android-sdk:7.0.0' implementation 'com.google.api-client:google-api-client:1.30.5' implementation 'com.google.api-client:google-api-client-android:1.30.5' 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 2ce9c1665..e6288d6c0 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 @@ -7,6 +7,7 @@ import com.dropbox.core.DbxRequestConfig; import com.dropbox.core.InvalidAccessTokenException; import com.dropbox.core.android.Auth; + import com.dropbox.core.json.JsonReadException; import com.dropbox.core.oauth.DbxCredential; import com.dropbox.core.v2.DbxClientV2; @@ -154,7 +155,7 @@ public boolean checkForFileChangeFast(String path, String previousFileVersion) t { if ((previousFileVersion == null) || (previousFileVersion.equals(""))) return false; - path = removeProtocol(path); + path = removeProtocol(path); try { Metadata entry = dbxClient.files().getMetadata(path); return !String.valueOf(entry.hashCode()) .equals(previousFileVersion); diff --git a/src/keepass2android-app/keepass2android-app.csproj b/src/keepass2android-app/keepass2android-app.csproj index 0190d54ff..543812e3d 100644 --- a/src/keepass2android-app/keepass2android-app.csproj +++ b/src/keepass2android-app/keepass2android-app.csproj @@ -748,6 +748,7 @@ +