diff --git a/.gitignore b/.gitignore index af8e3100..b170c7b1 100644 --- a/.gitignore +++ b/.gitignore @@ -153,3 +153,8 @@ intermediates /src/java/Kp2aAccServiceLib/app/app.iml /src/java/Kp2aAccServiceLib/gradle adbprompt.ps1 +/src/java/KP2ASoftkeyboard_AS/build/android-profile/*.rawproto +src/java/KP2ASoftkeyboard_AS/build/generated/mockable-android-23.jar +*.rawproto +src/java/Keepass2AndroidPluginSDK2/build/generated/mockable-Google-Inc.-Google-APIs-23.jar +/src/.vs diff --git a/docs/OreoAutoFill.md b/docs/OreoAutoFill.md new file mode 100644 index 00000000..75b4818a --- /dev/null +++ b/docs/OreoAutoFill.md @@ -0,0 +1,20 @@ +Google has introduced the Android Autofill interface in Android 8. Keepass2Android supports this interface. In most Android apps and all Autofill-enabled browsers, this is the most convenient way of entering passwords. As soon as you focus a field, you will see a popup "Fill with Keepass2Android". + + + +After clicking this popup, you can unlock your KP2A database. If automatic look up succeeds, KP2A will close automatically, if not you are prompted to select the entry you want to auto-fill. When returning to the target app, the fields should be filled automatically already. + +As of January 2018, the following browsers are known to have Android Autofill support: + +* Firefox Focus / Firefox Klar +* Opera Mini + +These browsers do not (yet) have autofill support: + +* Google Chrome +* Firefox for Android +* Brave-Browser +* Opera + +Please use the Share-URL-feature and the built-in KP2A keyboard for these browsers. + diff --git a/docs/autofill-facebook.png b/docs/autofill-facebook.png new file mode 100644 index 00000000..83de5055 Binary files /dev/null and b/docs/autofill-facebook.png differ diff --git a/src/AndroidFileChooserBinding/AndroidFileChooserBinding.csproj b/src/AndroidFileChooserBinding/AndroidFileChooserBinding.csproj index a841a519..c0c6d534 100644 --- a/src/AndroidFileChooserBinding/AndroidFileChooserBinding.csproj +++ b/src/AndroidFileChooserBinding/AndroidFileChooserBinding.csproj @@ -10,7 +10,7 @@ AndroidFileChooserBinding AndroidFileChooserBinding 512 - v7.1 + v8.0 True @@ -47,9 +47,6 @@ - - ..\packages\Xamarin.Android.Support.v4.20.0.0.4\lib\MonoAndroid10\Xamarin.Android.Support.v4.dll - diff --git a/src/AndroidFileChooserBinding/packages.config b/src/AndroidFileChooserBinding/packages.config index 8cdf15fa..1508affa 100644 --- a/src/AndroidFileChooserBinding/packages.config +++ b/src/AndroidFileChooserBinding/packages.config @@ -1,4 +1,4 @@  - + \ No newline at end of file diff --git a/src/JavaFileStorageBindings/JavaFileStorageBindings.csproj b/src/JavaFileStorageBindings/JavaFileStorageBindings.csproj index 9123ffe9..7c7486b5 100644 --- a/src/JavaFileStorageBindings/JavaFileStorageBindings.csproj +++ b/src/JavaFileStorageBindings/JavaFileStorageBindings.csproj @@ -11,7 +11,7 @@ JavaFileStorageBindings 512 True - v7.1 + v8.0 true @@ -50,15 +50,6 @@ ..\Components\googleplayservices-19.0.0\lib\android\GooglePlayServicesLib.dll - - ..\Components\googleplayservices-19.0.0\lib\android\Xamarin.Android.Support.v4.dll - - - ..\Components\googleplayservices-19.0.0\lib\android\Xamarin.Android.Support.v7.AppCompat.dll - - - ..\Components\googleplayservices-19.0.0\lib\android\Xamarin.Android.Support.v7.MediaRouter.dll - diff --git a/src/KP2AKdbLibraryBinding/KP2AKdbLibraryBinding.csproj b/src/KP2AKdbLibraryBinding/KP2AKdbLibraryBinding.csproj index 77429eaa..3ff0ddff 100644 --- a/src/KP2AKdbLibraryBinding/KP2AKdbLibraryBinding.csproj +++ b/src/KP2AKdbLibraryBinding/KP2AKdbLibraryBinding.csproj @@ -10,7 +10,7 @@ KP2AKdbLibraryBinding KP2AKdbLibraryBinding 512 - v7.1 + v8.0 True diff --git a/src/KeePass.sln b/src/KeePass.sln index 0fda9671..2446d655 100644 --- a/src/KeePass.sln +++ b/src/KeePass.sln @@ -1,7 +1,7 @@  Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 2013 -VisualStudioVersion = 12.0.31101.0 +# Visual Studio 15 +VisualStudioVersion = 15.0.27004.2009 MinimumVisualStudioVersion = 10.0.40219.1 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KeePassLib2Android", "KeePassLib2Android\KeePassLib2Android.csproj", "{545B4A6B-8BBA-4FBE-92FC-4AC060122A54}" EndProject @@ -247,6 +247,9 @@ Global GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {2B48EDA2-ABCE-4DB5-A609-DFDF5FAAE767} + EndGlobalSection GlobalSection(MonoDevelopProperties) = preSolution Policies = $0 $0.DotNetNamingPolicy = $1 diff --git a/src/KeePassLib2Android/KeePassLib2Android.csproj b/src/KeePassLib2Android/KeePassLib2Android.csproj index c10e7427..d3029e5f 100644 --- a/src/KeePassLib2Android/KeePassLib2Android.csproj +++ b/src/KeePassLib2Android/KeePassLib2Android.csproj @@ -12,7 +12,7 @@ Resources\Resource.designer.cs Resource KeePassLib2Android - v7.1 + v8.0 True 8482b288 diff --git a/src/Kp2aBusinessLogic/Kp2aBusinessLogic.csproj b/src/Kp2aBusinessLogic/Kp2aBusinessLogic.csproj index a5b3bf8c..32a191a2 100644 --- a/src/Kp2aBusinessLogic/Kp2aBusinessLogic.csproj +++ b/src/Kp2aBusinessLogic/Kp2aBusinessLogic.csproj @@ -12,7 +12,7 @@ 512 Resources\Resource.Designer.cs Off - v7.1 + v8.0 true 06ffb71c diff --git a/src/Kp2aBusinessLogic/database/Database.cs b/src/Kp2aBusinessLogic/database/Database.cs index c795e082..c236a806 100644 --- a/src/Kp2aBusinessLogic/database/Database.cs +++ b/src/Kp2aBusinessLogic/database/Database.cs @@ -289,6 +289,7 @@ namespace keepass2android CanWrite = true; _reloadRequested = false; OtpAuxFileIoc = null; + LastOpenedEntry = null; } public void MarkAllGroupsAsDirty() { diff --git a/src/Kp2aBusinessLogic/database/PwEntryOutput.cs b/src/Kp2aBusinessLogic/database/PwEntryOutput.cs index 8ab57d0b..26d0ea18 100644 --- a/src/Kp2aBusinessLogic/database/PwEntryOutput.cs +++ b/src/Kp2aBusinessLogic/database/PwEntryOutput.cs @@ -56,5 +56,10 @@ namespace keepass2android { get { return _entry; } } + + /// + /// if the entry was selected by searching for a URL, the query URL is returned here. + /// + public string SearchUrl { get; set; } } } \ No newline at end of file diff --git a/src/Kp2aBusinessLogic/database/edit/DeleteRunnable.cs b/src/Kp2aBusinessLogic/database/edit/DeleteRunnable.cs index 5fa72baa..50fed440 100644 --- a/src/Kp2aBusinessLogic/database/edit/DeleteRunnable.cs +++ b/src/Kp2aBusinessLogic/database/edit/DeleteRunnable.cs @@ -181,6 +181,7 @@ namespace keepass2android PwDeletedObject pdo = new PwDeletedObject(pe.Uuid, dtNow); pd.DeletedObjects.Add(pdo); touchedGroups.Add(pgParent); + Db.Entries.Remove(pe.Uuid); } else // Recycle { diff --git a/src/Kp2aKeyboardBinding/Kp2aKeyboardBinding.csproj b/src/Kp2aKeyboardBinding/Kp2aKeyboardBinding.csproj index e21cd150..df9c7b3b 100644 --- a/src/Kp2aKeyboardBinding/Kp2aKeyboardBinding.csproj +++ b/src/Kp2aKeyboardBinding/Kp2aKeyboardBinding.csproj @@ -11,7 +11,7 @@ Resources Kp2aKeyboardBinding True - v7.1 + v8.0 True diff --git a/src/PluginSdkBinding/PluginSdkBinding.csproj b/src/PluginSdkBinding/PluginSdkBinding.csproj index d32a1b32..222df093 100644 --- a/src/PluginSdkBinding/PluginSdkBinding.csproj +++ b/src/PluginSdkBinding/PluginSdkBinding.csproj @@ -11,7 +11,7 @@ PluginSdkBinding 512 True - v7.1 + v8.0 true @@ -53,8 +53,8 @@ - - Jars\app-debug.aar + + Jars\app-release.aar diff --git a/src/SamsungPass b/src/SamsungPass index 79184ec7..c9dd9b21 160000 --- a/src/SamsungPass +++ b/src/SamsungPass @@ -1 +1 @@ -Subproject commit 79184ec7cd77d89602e8ea4d5f38f7e2631aceb1 +Subproject commit c9dd9b21a59eb7d1761ea99ba6a34ac8c5bdbf42 diff --git a/src/TwofishCipher/TwofishCipher.csproj b/src/TwofishCipher/TwofishCipher.csproj index 35a72b44..2368da5f 100644 --- a/src/TwofishCipher/TwofishCipher.csproj +++ b/src/TwofishCipher/TwofishCipher.csproj @@ -13,7 +13,7 @@ Resources\Resource.Designer.cs Off True - v7.1 + v8.0 true diff --git a/src/ZlibAndroid/ZlibAndroid.csproj b/src/ZlibAndroid/ZlibAndroid.csproj index 295d16ac..76403f80 100644 --- a/src/ZlibAndroid/ZlibAndroid.csproj +++ b/src/ZlibAndroid/ZlibAndroid.csproj @@ -13,7 +13,7 @@ Assets True ZlibAndroid - v7.1 + v8.0 true diff --git a/src/java/JavaFileStorage/app/build.gradle b/src/java/JavaFileStorage/app/build.gradle index 547c20c2..ba1bbfcf 100644 --- a/src/java/JavaFileStorage/app/build.gradle +++ b/src/java/JavaFileStorage/app/build.gradle @@ -1,8 +1,8 @@ apply plugin: 'com.android.library' android { - compileSdkVersion 25 - buildToolsVersion '25.0.3' + compileSdkVersion 26 + buildToolsVersion '26.0.2' defaultConfig { minSdkVersion 15 targetSdkVersion 23 @@ -25,7 +25,7 @@ dependencies { compile 'com.squareup.okhttp3:okhttp:3.9.0' compile 'com.burgstaller:okhttp-digest:1.7' compile 'com.google.android.gms:play-services:4.0.30' - compile 'com.google.http-client:google-http-client-gson:1.16.0-rc' + compile 'com.google.http-client:google-http-client-gson:1.20.0' compile('com.google.api-client:google-api-client-android:1.16.0-rc') { exclude group: 'com.google.android.google-play-services' } diff --git a/src/java/JavaFileStorageTest-AS/app/build.gradle b/src/java/JavaFileStorageTest-AS/app/build.gradle index 2531f272..2d8e6d03 100644 --- a/src/java/JavaFileStorageTest-AS/app/build.gradle +++ b/src/java/JavaFileStorageTest-AS/app/build.gradle @@ -1,8 +1,8 @@ apply plugin: 'com.android.application' android { - compileSdkVersion 25 - buildToolsVersion '25.0.3' + compileSdkVersion 26 + buildToolsVersion '26.0.2' defaultConfig { applicationId "com.crocoapps.javafilestoragetest" diff --git a/src/java/JavaFileStorageTest-AS/build.gradle b/src/java/JavaFileStorageTest-AS/build.gradle index dc21c09e..0451ca17 100644 --- a/src/java/JavaFileStorageTest-AS/build.gradle +++ b/src/java/JavaFileStorageTest-AS/build.gradle @@ -3,9 +3,13 @@ buildscript { repositories { jcenter() + maven { + url 'https://maven.google.com/' + name 'Google' + } } dependencies { - classpath 'com.android.tools.build:gradle:2.3.2' + classpath 'com.android.tools.build:gradle:3.0.1' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files @@ -17,6 +21,7 @@ buildscript { allprojects { repositories { jcenter() + google() } } diff --git a/src/java/JavaFileStorageTest-AS/gradle/wrapper/gradle-wrapper.properties b/src/java/JavaFileStorageTest-AS/gradle/wrapper/gradle-wrapper.properties index 1ef1f1f2..10b45347 100644 --- a/src/java/JavaFileStorageTest-AS/gradle/wrapper/gradle-wrapper.properties +++ b/src/java/JavaFileStorageTest-AS/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Mon May 22 10:43:15 CEST 2017 +#Mon Dec 18 11:13:13 CET 2017 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip diff --git a/src/java/KP2ASoftkeyboard_AS/.idea/gradle.xml b/src/java/KP2ASoftkeyboard_AS/.idea/gradle.xml index 9ab4ad8a..3efaea6d 100644 --- a/src/java/KP2ASoftkeyboard_AS/.idea/gradle.xml +++ b/src/java/KP2ASoftkeyboard_AS/.idea/gradle.xml @@ -3,7 +3,7 @@