Compare commits
13 Commits
bugfix/237
...
update/upg
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
96960ef376 | ||
|
|
46194317a8 | ||
|
|
c4d6e18759 | ||
|
|
ee41a600b1 | ||
|
|
07562cc5a9 | ||
|
|
7577e3064c | ||
|
|
d33e1f266c | ||
|
|
aeda21f163 | ||
|
|
4d1142df4d | ||
|
|
4c632d0c72 | ||
|
|
deb3701ebf | ||
|
|
980df2b3a7 | ||
|
|
f001d1fa54 |
48
src/DropboxBinding/Additions/AboutAdditions.txt
Normal file
48
src/DropboxBinding/Additions/AboutAdditions.txt
Normal file
@@ -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; }
|
||||||
|
}
|
||||||
8
src/DropboxBinding/DropboxBinding.csproj
Normal file
8
src/DropboxBinding/DropboxBinding.csproj
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
|
<PropertyGroup>
|
||||||
|
<TargetFramework>net8.0-android</TargetFramework>
|
||||||
|
<SupportedOSPlatformVersion>21</SupportedOSPlatformVersion>
|
||||||
|
<Nullable>enable</Nullable>
|
||||||
|
<ImplicitUsings>enable</ImplicitUsings>
|
||||||
|
</PropertyGroup>
|
||||||
|
</Project>
|
||||||
14
src/DropboxBinding/Transforms/EnumFields.xml
Normal file
14
src/DropboxBinding/Transforms/EnumFields.xml
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
<enum-field-mappings>
|
||||||
|
<!--
|
||||||
|
This example converts the constants Fragment_id, Fragment_name,
|
||||||
|
and Fragment_tag from android.support.v4.app.FragmentActivity.FragmentTag
|
||||||
|
to an enum called Android.Support.V4.App.FragmentTagType with values
|
||||||
|
Id, Name, and Tag.
|
||||||
|
|
||||||
|
<mapping jni-class="android/support/v4/app/FragmentActivity$FragmentTag" clr-enum-type="Android.Support.V4.App.FragmentTagType">
|
||||||
|
<field jni-name="Fragment_name" clr-name="Name" value="0" />
|
||||||
|
<field jni-name="Fragment_id" clr-name="Id" value="1" />
|
||||||
|
<field jni-name="Fragment_tag" clr-name="Tag" value="2" />
|
||||||
|
</mapping>
|
||||||
|
-->
|
||||||
|
</enum-field-mappings>
|
||||||
13
src/DropboxBinding/Transforms/EnumMethods.xml
Normal file
13
src/DropboxBinding/Transforms/EnumMethods.xml
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
<enum-method-mappings>
|
||||||
|
<!--
|
||||||
|
This example changes the Java method:
|
||||||
|
android.support.v4.app.Fragment.SavedState.writeToParcel (int flags)
|
||||||
|
to be:
|
||||||
|
android.support.v4.app.Fragment.SavedState.writeToParcel (Android.OS.ParcelableWriteFlags flags)
|
||||||
|
when bound in C#.
|
||||||
|
|
||||||
|
<mapping jni-class="android/support/v4/app/Fragment.SavedState">
|
||||||
|
<method jni-name="writeToParcel" parameter="flags" clr-enum-type="Android.OS.ParcelableWriteFlags" />
|
||||||
|
</mapping>
|
||||||
|
-->
|
||||||
|
</enum-method-mappings>
|
||||||
35
src/DropboxBinding/Transforms/Metadata.xml
Normal file
35
src/DropboxBinding/Transforms/Metadata.xml
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
<metadata>
|
||||||
|
|
||||||
|
<remove-node path="/api/package[@name='com.dropbox.core']" />
|
||||||
|
<remove-node path="/api/package[@name='com.dropbox.core.http']" />
|
||||||
|
<remove-node path="/api/package[@name='com.dropbox.core.json']" />
|
||||||
|
<remove-node path="/api/package[@name='com.dropbox.core.oauth']" />
|
||||||
|
<remove-node path="/api/package[@name='com.dropbox.core.sdk.android']" />
|
||||||
|
<remove-node path="/api/package[@name='com.dropbox.core.stone']" />
|
||||||
|
<remove-node path="/api/package[@name='com.dropbox.core.util']" />
|
||||||
|
<remove-node path="/api/package[@name='com.dropbox.core.v1']" />
|
||||||
|
<remove-node path="/api/package[@name='com.dropbox.core.v2']" />
|
||||||
|
<remove-node path="/api/package[@name='com.dropbox.core.v2.account']" />
|
||||||
|
<remove-node path="/api/package[@name='com.dropbox.core.v2.callbacks']" />
|
||||||
|
<remove-node path="/api/package[@name='com.dropbox.core.v2.check']" />
|
||||||
|
<remove-node path="/api/package[@name='com.dropbox.core.v2.seenstate']" />
|
||||||
|
<remove-node path="/api/package[@name='com.dropbox.core.v2.teamcommon']" />
|
||||||
|
<remove-node path="/api/package[@name='com.dropbox.core.v2.secondaryemails']" />
|
||||||
|
<remove-node path="/api/package[@name='com.dropbox.core.v2.async']" />
|
||||||
|
<remove-node path="/api/package[@name='com.dropbox.core.v2.auth']" />
|
||||||
|
<remove-node path="/api/package[@name='com.dropbox.core.v2.common']" />
|
||||||
|
<remove-node path="/api/package[@name='com.dropbox.core.v2.contacts']" />
|
||||||
|
<remove-node path="/api/package[@name='com.dropbox.core.v2.fileproperties']" />
|
||||||
|
<remove-node path="/api/package[@name='com.dropbox.core.v2.filerequests']" />
|
||||||
|
<remove-node path="/api/package[@name='com.dropbox.core.v2.files']" />
|
||||||
|
<remove-node path="/api/package[@name='com.dropbox.core.v2.paper']" />
|
||||||
|
<remove-node path="/api/package[@name='com.dropbox.core.v2.openid']" />
|
||||||
|
<remove-node path="/api/package[@name='com.dropbox.core.v2.sharing']" />
|
||||||
|
<remove-node path="/api/package[@name='com.dropbox.core.v2.team']" />
|
||||||
|
<remove-node path="/api/package[@name='com.dropbox.core.v2.teamlog']" />
|
||||||
|
<remove-node path="/api/package[@name='com.dropbox.core.v2.teampolicies']" />
|
||||||
|
<remove-node path="/api/package[@name='com.dropbox.core.v2.users']" />
|
||||||
|
<remove-node path="/api/package[@name='com.dropbox.core.v2.userscommon']" />
|
||||||
|
<remove-node path="/api/package[@name='com.dropbox.android']" />
|
||||||
|
<remove-node path="/api/package[@name='com.dropbox.core.android']" />
|
||||||
|
</metadata>
|
||||||
BIN
src/DropboxBinding/dropbox-android-sdk-7.0.0.aar
Normal file
BIN
src/DropboxBinding/dropbox-android-sdk-7.0.0.aar
Normal file
Binary file not shown.
Binary file not shown.
@@ -29,6 +29,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PCloudBindings", "PCloudBin
|
|||||||
EndProject
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Kp2aAutofillParser.Tests", "Kp2aAutofillParser.Tests\Kp2aAutofillParser.Tests.csproj", "{F5A2A8F9-C084-498F-9603-9D927BA5C626}"
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Kp2aAutofillParser.Tests", "Kp2aAutofillParser.Tests\Kp2aAutofillParser.Tests.csproj", "{F5A2A8F9-C084-498F-9603-9D927BA5C626}"
|
||||||
EndProject
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DropboxBinding", "DropboxBinding\DropboxBinding.csproj", "{2FE6E335-E834-4F86-AB83-2C5D225DA929}"
|
||||||
|
EndProject
|
||||||
Global
|
Global
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
Debug|Any CPU = Debug|Any CPU
|
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|Win32.Build.0 = Release|Any CPU
|
||||||
{F5A2A8F9-C084-498F-9603-9D927BA5C626}.ReleaseNoNet|x64.ActiveCfg = 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
|
{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
|
EndGlobalSection
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
HideSolutionNode = FALSE
|
HideSolutionNode = FALSE
|
||||||
|
|||||||
@@ -12,7 +12,6 @@
|
|||||||
<PackageReference Include="FluentFTP" Version="51.1.0" />
|
<PackageReference Include="FluentFTP" Version="51.1.0" />
|
||||||
<PackageReference Include="MegaApiClient" Version="1.10.4" />
|
<PackageReference Include="MegaApiClient" Version="1.10.4" />
|
||||||
<PackageReference Include="Microsoft.Graph" Version="5.68.0" />
|
<PackageReference Include="Microsoft.Graph" Version="5.68.0" />
|
||||||
<PackageReference Include="Microsoft.Graph.Auth" Version="1.0.0-preview.7" />
|
|
||||||
<PackageReference Include="Microsoft.Identity.Client" Version="4.67.1" />
|
<PackageReference Include="Microsoft.Identity.Client" Version="4.67.1" />
|
||||||
<PackageReference Include="Xamarin.AndroidX.Browser" Version="1.8.0" />
|
<PackageReference Include="Xamarin.AndroidX.Browser" Version="1.8.0" />
|
||||||
<PackageReference Include="Xamarin.AndroidX.Core" Version="1.13.1.5" />
|
<PackageReference Include="Xamarin.AndroidX.Core" Version="1.13.1.5" />
|
||||||
|
|||||||
@@ -138,7 +138,8 @@ namespace keepass2android
|
|||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (host.IndexOf(otherHost, StringComparison.InvariantCultureIgnoreCase) > -1)
|
if (string.Equals(host, otherHost, StringComparison.OrdinalIgnoreCase) ||
|
||||||
|
host.EndsWith("." + otherHost, StringComparison.OrdinalIgnoreCase))
|
||||||
{
|
{
|
||||||
pgResults.AddEntry(entry, false);
|
pgResults.AddEntry(entry, false);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -41,7 +41,8 @@ dependencies {
|
|||||||
exclude group: 'com.google.android.google-play-services'
|
exclude group: 'com.google.android.google-play-services'
|
||||||
}
|
}
|
||||||
implementation 'com.google.apis:google-api-services-drive:v2-rev102-1.16.0-rc'
|
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:1.30.5'
|
||||||
implementation 'com.google.api-client:google-api-client-android:1.30.5'
|
implementation 'com.google.api-client:google-api-client-android:1.30.5'
|
||||||
|
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import com.dropbox.core.DbxOAuth1Upgrader;
|
|||||||
import com.dropbox.core.DbxRequestConfig;
|
import com.dropbox.core.DbxRequestConfig;
|
||||||
import com.dropbox.core.InvalidAccessTokenException;
|
import com.dropbox.core.InvalidAccessTokenException;
|
||||||
import com.dropbox.core.android.Auth;
|
import com.dropbox.core.android.Auth;
|
||||||
|
|
||||||
import com.dropbox.core.json.JsonReadException;
|
import com.dropbox.core.json.JsonReadException;
|
||||||
import com.dropbox.core.oauth.DbxCredential;
|
import com.dropbox.core.oauth.DbxCredential;
|
||||||
import com.dropbox.core.v2.DbxClientV2;
|
import com.dropbox.core.v2.DbxClientV2;
|
||||||
@@ -154,7 +155,7 @@ public class DropboxV2Storage extends JavaFileStorageBase
|
|||||||
{
|
{
|
||||||
if ((previousFileVersion == null) || (previousFileVersion.equals("")))
|
if ((previousFileVersion == null) || (previousFileVersion.equals("")))
|
||||||
return false;
|
return false;
|
||||||
path = removeProtocol(path);
|
path = removeProtocol(path);
|
||||||
try {
|
try {
|
||||||
Metadata entry = dbxClient.files().getMetadata(path);
|
Metadata entry = dbxClient.files().getMetadata(path);
|
||||||
return !String.valueOf(entry.hashCode()) .equals(previousFileVersion);
|
return !String.valueOf(entry.hashCode()) .equals(previousFileVersion);
|
||||||
|
|||||||
@@ -356,7 +356,13 @@ public class KP2AKeyboard extends InputMethodService
|
|||||||
pFilter.addAction("android.intent.action.PACKAGE_ADDED");
|
pFilter.addAction("android.intent.action.PACKAGE_ADDED");
|
||||||
pFilter.addAction("android.intent.action.PACKAGE_REPLACED");
|
pFilter.addAction("android.intent.action.PACKAGE_REPLACED");
|
||||||
pFilter.addAction("android.intent.action.PACKAGE_REMOVED");
|
pFilter.addAction("android.intent.action.PACKAGE_REMOVED");
|
||||||
registerReceiver(mPluginManager, pFilter);
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
||||||
|
registerReceiver(mPluginManager, pFilter, RECEIVER_EXPORTED);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
registerReceiver(mPluginManager, pFilter);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
LatinIMEUtil.GCUtils.getInstance().reset();
|
LatinIMEUtil.GCUtils.getInstance().reset();
|
||||||
@@ -375,16 +381,28 @@ public class KP2AKeyboard extends InputMethodService
|
|||||||
|
|
||||||
// register to receive ringer mode changes for silent mode
|
// register to receive ringer mode changes for silent mode
|
||||||
IntentFilter filter = new IntentFilter(AudioManager.RINGER_MODE_CHANGED_ACTION);
|
IntentFilter filter = new IntentFilter(AudioManager.RINGER_MODE_CHANGED_ACTION);
|
||||||
registerReceiver(mSilentModeReceiver, filter);
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
||||||
|
registerReceiver(mSilentModeReceiver, filter, RECEIVER_EXPORTED);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
registerReceiver(mSilentModeReceiver, filter);
|
||||||
|
}
|
||||||
|
|
||||||
prefs.registerOnSharedPreferenceChangeListener(this);
|
prefs.registerOnSharedPreferenceChangeListener(this);
|
||||||
|
|
||||||
//check if we have KP2A data available:
|
//check if we have KP2A data available:
|
||||||
mHadKp2aData = mShowKp2aKeyboard = keepass2android.kbbridge.KeyboardData.hasData();
|
mHadKp2aData = mShowKp2aKeyboard = KeyboardData.hasData();
|
||||||
|
|
||||||
mClearKeyboardReceiver = new ClearKeyboardBroadcastReceiver();
|
mClearKeyboardReceiver = new ClearKeyboardBroadcastReceiver();
|
||||||
registerReceiver(mClearKeyboardReceiver, new IntentFilter(get_KEEPASS2ANDROID_KEYBOARD_CLEARED(this)));
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
||||||
android.util.Log.d("KP2AK", "registered receiver for clear keyboard broadcast: "+get_KEEPASS2ANDROID_KEYBOARD_CLEARED(this));
|
registerReceiver(mClearKeyboardReceiver, new IntentFilter(get_KEEPASS2ANDROID_KEYBOARD_CLEARED(this)), RECEIVER_EXPORTED);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
registerReceiver(mClearKeyboardReceiver, new IntentFilter(get_KEEPASS2ANDROID_KEYBOARD_CLEARED(this)));
|
||||||
|
}
|
||||||
|
Log.d("KP2AK", "registered receiver for clear keyboard broadcast: "+get_KEEPASS2ANDROID_KEYBOARD_CLEARED(this));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -53,6 +53,7 @@ using keepass2android.fileselect;
|
|||||||
using KeeTrayTOTP.Libraries;
|
using KeeTrayTOTP.Libraries;
|
||||||
using Boolean = Java.Lang.Boolean;
|
using Boolean = Java.Lang.Boolean;
|
||||||
using Android.Util;
|
using Android.Util;
|
||||||
|
using AndroidX.Core.Content;
|
||||||
using Google.Android.Material.Dialog;
|
using Google.Android.Material.Dialog;
|
||||||
using keepass2android;
|
using keepass2android;
|
||||||
|
|
||||||
@@ -491,9 +492,9 @@ namespace keepass2android
|
|||||||
App.Kp2a.LastOpenedEntry = new PwEntryOutput(Entry, App.Kp2a.CurrentDb);
|
App.Kp2a.LastOpenedEntry = new PwEntryOutput(Entry, App.Kp2a.CurrentDb);
|
||||||
|
|
||||||
_pluginActionReceiver = new PluginActionReceiver(this);
|
_pluginActionReceiver = new PluginActionReceiver(this);
|
||||||
RegisterReceiver(_pluginActionReceiver, new IntentFilter(Strings.ActionAddEntryAction), ReceiverFlags.Exported);
|
ContextCompat.RegisterReceiver(this, _pluginActionReceiver, new IntentFilter(Strings.ActionAddEntryAction), (int)ReceiverFlags.Exported);
|
||||||
_pluginFieldReceiver = new PluginFieldReceiver(this);
|
_pluginFieldReceiver = new PluginFieldReceiver(this);
|
||||||
RegisterReceiver(_pluginFieldReceiver, new IntentFilter(Strings.ActionSetEntryField), ReceiverFlags.Exported);
|
ContextCompat.RegisterReceiver(this, _pluginFieldReceiver, new IntentFilter(Strings.ActionSetEntryField), (int)ReceiverFlags.Exported);
|
||||||
|
|
||||||
var notifyPluginsOnOpenThread = new Thread(NotifyPluginsOnOpen);
|
var notifyPluginsOnOpenThread = new Thread(NotifyPluginsOnOpen);
|
||||||
notifyPluginsOnOpenThread.Start();
|
notifyPluginsOnOpenThread.Start();
|
||||||
|
|||||||
@@ -21,6 +21,7 @@ using Android.OS;
|
|||||||
using Android.Preferences;
|
using Android.Preferences;
|
||||||
using Android.Runtime;
|
using Android.Runtime;
|
||||||
using Android.Views;
|
using Android.Views;
|
||||||
|
using AndroidX.Core.Content;
|
||||||
using KeePassLib.Serialization;
|
using KeePassLib.Serialization;
|
||||||
|
|
||||||
namespace keepass2android
|
namespace keepass2android
|
||||||
@@ -69,7 +70,7 @@ namespace keepass2android
|
|||||||
IntentFilter filter = new IntentFilter();
|
IntentFilter filter = new IntentFilter();
|
||||||
filter.AddAction(Intents.DatabaseLocked);
|
filter.AddAction(Intents.DatabaseLocked);
|
||||||
filter.AddAction(Intent.ActionScreenOff);
|
filter.AddAction(Intent.ActionScreenOff);
|
||||||
RegisterReceiver(_intentReceiver, filter, ReceiverFlags.Exported);
|
ContextCompat.RegisterReceiver(this, _intentReceiver, filter, (int)ReceiverFlags.Exported);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void OnDestroy()
|
protected override void OnDestroy()
|
||||||
|
|||||||
@@ -21,6 +21,7 @@ using Android.OS;
|
|||||||
using Android.Preferences;
|
using Android.Preferences;
|
||||||
using Android.Runtime;
|
using Android.Runtime;
|
||||||
using Android.Views;
|
using Android.Views;
|
||||||
|
using AndroidX.Core.Content;
|
||||||
using KeePassLib.Serialization;
|
using KeePassLib.Serialization;
|
||||||
|
|
||||||
namespace keepass2android
|
namespace keepass2android
|
||||||
@@ -55,7 +56,7 @@ namespace keepass2android
|
|||||||
|
|
||||||
filter.AddAction(Intents.DatabaseLocked);
|
filter.AddAction(Intents.DatabaseLocked);
|
||||||
filter.AddAction(Intent.ActionScreenOff);
|
filter.AddAction(Intent.ActionScreenOff);
|
||||||
RegisterReceiver(_intentReceiver, filter, ReceiverFlags.Exported);
|
ContextCompat.RegisterReceiver(this, _intentReceiver, filter, (int)ReceiverFlags.Exported);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ This file is part of Keepass2Android, Copyright 2013 Philipp Crocoll. This file
|
|||||||
using System;
|
using System;
|
||||||
using Android.Content;
|
using Android.Content;
|
||||||
using Android.OS;
|
using Android.OS;
|
||||||
|
using AndroidX.Core.Content;
|
||||||
using KeePassLib.Serialization;
|
using KeePassLib.Serialization;
|
||||||
|
|
||||||
namespace keepass2android
|
namespace keepass2android
|
||||||
@@ -39,7 +40,7 @@ namespace keepass2android
|
|||||||
_intentReceiver = new LockCloseActivityBroadcastReceiver(this);
|
_intentReceiver = new LockCloseActivityBroadcastReceiver(this);
|
||||||
IntentFilter filter = new IntentFilter();
|
IntentFilter filter = new IntentFilter();
|
||||||
filter.AddAction(Intents.DatabaseLocked);
|
filter.AddAction(Intents.DatabaseLocked);
|
||||||
RegisterReceiver(_intentReceiver, filter, ReceiverFlags.Exported);
|
ContextCompat.RegisterReceiver(this, _intentReceiver, filter, (int)ReceiverFlags.Exported);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void OnResume() {
|
protected override void OnResume() {
|
||||||
|
|||||||
@@ -65,6 +65,7 @@ using Enum = System.Enum;
|
|||||||
using Exception = System.Exception;
|
using Exception = System.Exception;
|
||||||
using String = System.String;
|
using String = System.String;
|
||||||
using Toolbar = AndroidX.AppCompat.Widget.Toolbar;
|
using Toolbar = AndroidX.AppCompat.Widget.Toolbar;
|
||||||
|
using AndroidX.Core.Content;
|
||||||
|
|
||||||
namespace keepass2android
|
namespace keepass2android
|
||||||
{
|
{
|
||||||
@@ -647,7 +648,7 @@ namespace keepass2android
|
|||||||
_intentReceiver = new PasswordActivityBroadcastReceiver(this);
|
_intentReceiver = new PasswordActivityBroadcastReceiver(this);
|
||||||
IntentFilter filter = new IntentFilter();
|
IntentFilter filter = new IntentFilter();
|
||||||
filter.AddAction(Intent.ActionScreenOff);
|
filter.AddAction(Intent.ActionScreenOff);
|
||||||
RegisterReceiver(_intentReceiver, filter, ReceiverFlags.Exported);
|
ContextCompat.RegisterReceiver(this, _intentReceiver, filter, (int)ReceiverFlags.Exported);
|
||||||
|
|
||||||
|
|
||||||
//use FlagSecure to make sure the last (revealed) character of the master password is not visible in recent apps
|
//use FlagSecure to make sure the last (revealed) character of the master password is not visible in recent apps
|
||||||
|
|||||||
@@ -34,6 +34,7 @@ using keepass2android;
|
|||||||
using KeePassLib;
|
using KeePassLib;
|
||||||
using KeePassLib.Serialization;
|
using KeePassLib.Serialization;
|
||||||
using Toolbar = AndroidX.AppCompat.Widget.Toolbar;
|
using Toolbar = AndroidX.AppCompat.Widget.Toolbar;
|
||||||
|
using AndroidX.Core.Content;
|
||||||
|
|
||||||
namespace keepass2android
|
namespace keepass2android
|
||||||
{
|
{
|
||||||
@@ -153,7 +154,7 @@ namespace keepass2android
|
|||||||
_intentReceiver = new QuickUnlockBroadcastReceiver(this);
|
_intentReceiver = new QuickUnlockBroadcastReceiver(this);
|
||||||
IntentFilter filter = new IntentFilter();
|
IntentFilter filter = new IntentFilter();
|
||||||
filter.AddAction(Intents.DatabaseLocked);
|
filter.AddAction(Intents.DatabaseLocked);
|
||||||
RegisterReceiver(_intentReceiver, filter, ReceiverFlags.Exported);
|
ContextCompat.RegisterReceiver(this, _intentReceiver, filter, (int)ReceiverFlags.Exported);
|
||||||
|
|
||||||
Util.SetNoPersonalizedLearning(FindViewById<EditText>(Resource.Id.QuickUnlock_password));
|
Util.SetNoPersonalizedLearning(FindViewById<EditText>(Resource.Id.QuickUnlock_password));
|
||||||
|
|
||||||
|
|||||||
@@ -69,6 +69,7 @@
|
|||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:orientation="vertical">
|
android:orientation="vertical">
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
|
android:orientation="vertical"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content">
|
android:layout_height="wrap_content">
|
||||||
<com.google.android.material.textfield.TextInputLayout
|
<com.google.android.material.textfield.TextInputLayout
|
||||||
@@ -82,7 +83,7 @@
|
|||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:singleLine="true"
|
android:singleLine="true"
|
||||||
android:inputType="textPassword"
|
android:inputType="textPassword"
|
||||||
android:hint="password"
|
android:hint="@string/hint_pass"
|
||||||
android:importantForAccessibility="no"/>
|
android:importantForAccessibility="no"/>
|
||||||
</com.google.android.material.textfield.TextInputLayout>
|
</com.google.android.material.textfield.TextInputLayout>
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
@@ -135,6 +136,7 @@
|
|||||||
</com.google.android.material.textfield.TextInputLayout>
|
</com.google.android.material.textfield.TextInputLayout>
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
|
android:orientation="vertical"
|
||||||
android:id="@+id/entry_extras_container"
|
android:id="@+id/entry_extras_container"
|
||||||
style="@style/EntryEditSingleLine_container">
|
style="@style/EntryEditSingleLine_container">
|
||||||
<ImageView
|
<ImageView
|
||||||
@@ -173,6 +175,7 @@
|
|||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
<!-- file attachments -->
|
<!-- file attachments -->
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
|
android:orientation="vertical"
|
||||||
android:id="@+id/entry_binaries_container"
|
android:id="@+id/entry_binaries_container"
|
||||||
style="@style/EntryEditSingleLine_container">
|
style="@style/EntryEditSingleLine_container">
|
||||||
<ImageView
|
<ImageView
|
||||||
@@ -228,6 +231,7 @@
|
|||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
<!--expires-->
|
<!--expires-->
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
|
android:orientation="vertical"
|
||||||
android:id="@+id/expires_section"
|
android:id="@+id/expires_section"
|
||||||
style="@style/EntryEditSingleLine_container">
|
style="@style/EntryEditSingleLine_container">
|
||||||
<ImageView
|
<ImageView
|
||||||
|
|||||||
@@ -26,6 +26,7 @@ using KeePassLib.Keys;
|
|||||||
using KeePassLib.Serialization;
|
using KeePassLib.Serialization;
|
||||||
using Console = System.Console;
|
using Console = System.Console;
|
||||||
using Object = Java.Lang.Object;
|
using Object = Java.Lang.Object;
|
||||||
|
using AndroidX.Core.Content;
|
||||||
|
|
||||||
namespace keepass2android
|
namespace keepass2android
|
||||||
{
|
{
|
||||||
@@ -343,7 +344,7 @@ namespace keepass2android
|
|||||||
IntentFilter filter = new IntentFilter();
|
IntentFilter filter = new IntentFilter();
|
||||||
filter.AddAction(Intents.DatabaseLocked);
|
filter.AddAction(Intents.DatabaseLocked);
|
||||||
filter.AddAction(Intent.ActionScreenOff);
|
filter.AddAction(Intent.ActionScreenOff);
|
||||||
RegisterReceiver(_intentReceiver, filter, ReceiverFlags.Exported);
|
ContextCompat.RegisterReceiver(this, _intentReceiver, filter, (int)ReceiverFlags.Exported);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1342,7 +1342,7 @@ namespace keepass2android
|
|||||||
intentFilter.AddAction(Intents.LockDatabase);
|
intentFilter.AddAction(Intents.LockDatabase);
|
||||||
intentFilter.AddAction(Intents.LockDatabaseByTimeout);
|
intentFilter.AddAction(Intents.LockDatabaseByTimeout);
|
||||||
intentFilter.AddAction(Intents.CloseDatabase);
|
intentFilter.AddAction(Intents.CloseDatabase);
|
||||||
Context.RegisterReceiver(broadcastReceiver, intentFilter, ReceiverFlags.Exported);
|
ContextCompat.RegisterReceiver(Context, broadcastReceiver, intentFilter, (int)ReceiverFlags.Exported);
|
||||||
|
|
||||||
//ZXing.Net.Mobile.Forms.Android.Platform.Init();
|
//ZXing.Net.Mobile.Forms.Android.Platform.Init();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -748,6 +748,7 @@
|
|||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ProjectReference Include="..\AndroidFileChooserBinding\AndroidFileChooserBinding.csproj" />
|
<ProjectReference Include="..\AndroidFileChooserBinding\AndroidFileChooserBinding.csproj" />
|
||||||
|
<ProjectReference Include="..\DropboxBinding\DropboxBinding.csproj" />
|
||||||
<ProjectReference Include="..\JavaFileStorageBindings\JavaFileStorageBindings.csproj" />
|
<ProjectReference Include="..\JavaFileStorageBindings\JavaFileStorageBindings.csproj" />
|
||||||
<ProjectReference Include="..\Kp2aAutofillParser\Kp2aAutofillParser.csproj" />
|
<ProjectReference Include="..\Kp2aAutofillParser\Kp2aAutofillParser.csproj" />
|
||||||
<ProjectReference Include="..\KP2AKdbLibraryBinding\KP2AKdbLibraryBinding.csproj" />
|
<ProjectReference Include="..\KP2AKdbLibraryBinding\KP2AKdbLibraryBinding.csproj" />
|
||||||
|
|||||||
@@ -39,6 +39,7 @@ using KeePass.Util.Spr;
|
|||||||
using keepass2android;
|
using keepass2android;
|
||||||
using KeePassLib.Serialization;
|
using KeePassLib.Serialization;
|
||||||
using PluginTOTP;
|
using PluginTOTP;
|
||||||
|
using AndroidX.Core.Content;
|
||||||
|
|
||||||
namespace keepass2android
|
namespace keepass2android
|
||||||
{
|
{
|
||||||
@@ -322,7 +323,8 @@ namespace keepass2android
|
|||||||
_stopOnLockBroadcastReceiver = new StopOnLockBroadcastReceiver(this);
|
_stopOnLockBroadcastReceiver = new StopOnLockBroadcastReceiver(this);
|
||||||
IntentFilter filter = new IntentFilter();
|
IntentFilter filter = new IntentFilter();
|
||||||
filter.AddAction(Intents.DatabaseLocked);
|
filter.AddAction(Intents.DatabaseLocked);
|
||||||
RegisterReceiver(_stopOnLockBroadcastReceiver, filter, ReceiverFlags.Exported);
|
|
||||||
|
ContextCompat.RegisterReceiver(this, _stopOnLockBroadcastReceiver, filter, (int)ReceiverFlags.Exported);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((intent.Action == Intents.ShowNotification) || (intent.Action == Intents.UpdateKeyboard))
|
if ((intent.Action == Intents.ShowNotification) || (intent.Action == Intents.UpdateKeyboard))
|
||||||
@@ -529,7 +531,7 @@ namespace keepass2android
|
|||||||
_notificationDeletedBroadcastReceiver = new NotificationDeletedBroadcastReceiver(this);
|
_notificationDeletedBroadcastReceiver = new NotificationDeletedBroadcastReceiver(this);
|
||||||
IntentFilter deletefilter = new IntentFilter();
|
IntentFilter deletefilter = new IntentFilter();
|
||||||
deletefilter.AddAction(ActionNotificationCancelled);
|
deletefilter.AddAction(ActionNotificationCancelled);
|
||||||
RegisterReceiver(_notificationDeletedBroadcastReceiver, deletefilter, ReceiverFlags.Exported);
|
ContextCompat.RegisterReceiver(this, _notificationDeletedBroadcastReceiver, deletefilter, (int)ReceiverFlags.Exported);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,6 +23,7 @@ using Android.Graphics;
|
|||||||
using Android.OS;
|
using Android.OS;
|
||||||
using Android.Preferences;
|
using Android.Preferences;
|
||||||
using AndroidX.Core.App;
|
using AndroidX.Core.App;
|
||||||
|
using AndroidX.Core.Content;
|
||||||
using keepass2android;
|
using keepass2android;
|
||||||
using KeePassLib.Utility;
|
using KeePassLib.Utility;
|
||||||
|
|
||||||
@@ -60,8 +61,8 @@ namespace keepass2android
|
|||||||
_screenOffReceiver = new ScreenOffReceiver();
|
_screenOffReceiver = new ScreenOffReceiver();
|
||||||
IntentFilter filter = new IntentFilter();
|
IntentFilter filter = new IntentFilter();
|
||||||
filter.AddAction(Intent.ActionScreenOff);
|
filter.AddAction(Intent.ActionScreenOff);
|
||||||
RegisterReceiver(_screenOffReceiver, filter, ReceiverFlags.Exported);
|
ContextCompat.RegisterReceiver(this, _screenOffReceiver, filter, (int)ReceiverFlags.Exported);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public override StartCommandResult OnStartCommand(Intent intent, StartCommandFlags flags, int startId)
|
public override StartCommandResult OnStartCommand(Intent intent, StartCommandFlags flags, int startId)
|
||||||
|
|||||||
Reference in New Issue
Block a user