Compare commits

..

28 Commits

Author SHA1 Message Date
Philipp Crocoll
18f989fae4 Merge branch 'master' of https://github.com/PhilippC/keepass2android into nonet 2020-11-16 10:24:47 +01:00
Philipp Crocoll
1ecfe83706 Merge remote-tracking branch 'remotes/origin/master' into nonet 2020-11-16 10:23:52 +01:00
Philipp Crocoll
ad4b719f3f Merge branch 'master' of https://github.com/PhilippC/keepass2android 2020-11-16 10:21:23 +01:00
Philipp Crocoll
24b690d19b fix typo in changelog 2020-11-16 10:21:12 +01:00
Philipp Crocoll
57308b476d add some logging to ChooseForAutofillActivity to diagnose a problem of a user 2020-11-02 10:02:57 +01:00
PhilippC
90ae1bd7d7 Merge pull request #1459 from CommName/SerbianTranslation
Serbian translation
2020-10-30 15:57:47 +01:00
CommName
67e40bc284 Fixed typo 2020-10-29 15:28:15 +01:00
CommName
58a0f4d536 Added serbian translation 2020-10-29 15:24:38 +01:00
Philipp Crocoll
174c440813 Merge branch 'master' of https://github.com/PhilippC/keepass2android 2020-10-24 09:47:11 +02:00
Philipp Crocoll
1479ecf03f allow to open .xml files (as unencrypted database) in read-only mode, closes https://github.com/PhilippC/keepass2android/issues/1450 2020-10-24 09:47:00 +02:00
PhilippC
c8ac6ec972 Add 2 FAQs regarding Google Drive 2020-10-24 09:20:04 +02:00
Philipp Crocoll
f2ca846093 1.07b-r0 offline 2019-10-21 19:29:37 +02:00
Philipp Crocoll
38cee50f34 Merge commit 'cc8cea00491016abea0332799e7f85072a076014' into nonet
# Resolved Conflicts:
#	src/KeePass.sln
#	src/Kp2aBusinessLogic/Kp2aBusinessLogic.csproj
#	src/Kp2aKeyboardBinding/Kp2aKeyboardBinding.csproj
#	src/keepass2android/Properties/AndroidManifest_nonet.xml
#	src/keepass2android/keepass2android.csproj
2019-10-21 10:42:39 +02:00
Philipp Crocoll
d45fd99235 manifest for 1.06g offline 2019-10-21 10:34:59 +02:00
Philipp Crocoll
05eea4aae1 don't show donation notice in Changelog when using the app for one of the first times. Disable link to playstore with additional storage options as required by Google. 2019-10-21 10:34:32 +02:00
Philipp Crocoll
8468049935 manifest for 1.06f release 2018-11-10 08:38:13 +01:00
Philipp Crocoll
7cef6c8566 Merge branch 'nonet' of https://github.com/PhilippC/keepass2android into nonet
# Conflicts:
#	src/keepass2android/Properties/AndroidManifest_nonet.xml
#	src/keepass2android/keepass2android.csproj
2018-11-08 05:23:10 +01:00
Philipp Crocoll
98f2a139e9 Merge remote-tracking branch 'remotes/origin/1.06' into nonet
# Conflicts:
#	src/keepass2android/Properties/AndroidManifest_nonet.xml
2018-11-08 04:55:44 +01:00
Philipp Crocoll
832d3b3a95 1.05d release for nonet 2018-06-23 09:07:47 +02:00
Philipp Crocoll
37867634cd Merge branch 'master' into nonet
Conflicts:
	src/keepass2android/Properties/AndroidManifest_nonet.xml
2018-06-18 13:08:07 +02:00
Philipp Crocoll
d9713f8e18 switch to using Release build type instead of ReleaseNoNet (separation no longer required because a custom branch exists for the offline variant) 2018-02-28 06:06:26 +01:00
Philipp Crocoll
c583b58cb9 adjust manifest version for 1.04b release 2018-02-27 06:06:35 +01:00
Philipp Crocoll
bfeaf5dbf5 Merge branch '1.04' into nonet
Conflicts:
	src/keepass2android/Properties/AndroidManifest_nonet.xml
2018-02-21 05:58:01 +01:00
Philipp Crocoll
0907fa5685 manifest for 1.03-nonet release 2017-12-02 15:30:04 +01:00
Philipp Crocoll
ff8dc76c75 Merge branch 'master' into nonet
Conflicts:
	docs/README.md
2017-12-02 14:25:37 +01:00
Philipp Crocoll
0b09e2790f remove online file storages from project file 2017-10-25 06:49:02 +02:00
Philipp Crocoll
781350aa5f manifest for 1.02 release 2017-10-25 06:24:01 +02:00
Philipp Crocoll
9716130336 remove references to libraries only required for online build, adjust build script and README 2017-10-25 06:23:53 +02:00
21 changed files with 1881 additions and 2830 deletions

View File

@@ -98,6 +98,23 @@ It's time for action! As soon as possible, select Settings - Database - Export a
## Why is Keepass2Android's apk so big?
Please see [Keepass2Android Apk](Keepass2Android-Apk.md) for more information.
## I get a message "File is trashed" when reading or writing a file on Google Drive
This happens because ocaml-fuse (I guess you are on Linux  and use that) moves files to trash and then creates a new one instead of correctly updating the file on Google Drive (each file has a unique ID which Keepass2Android uses). Fortunately, this was fixed: https://github.com/astrada/google-drive-ocamlfuse/issues/494After activating this option, please select "Change database" in KP2A, tap ,"Open file" and browse to the file on Google Drive again. After that, the message should no longer pop up.
## I get a message "The name must not be empty: null" when opening from Google Drive
Please follow these steps:
* select "Change database" on the password screen, then "Open database" and browse to your file again
* go to Android app settings and disable all permissions for the KP2A app. Then try again to open the database file.
* reboot the device
(Before running the following steps, make sure you don't have local changes in your database which have not been synchronized with Google Drive (this can happen if you worked offline). If you have, please open the database from the local cache and go to settings - database settings - export database and make a backup copy of the data.)
* clear KP2A's app cache in the Android settings
* uninstall & reinstall
One of these has helped all users so far, but unfortunately it's not totally clear to me why different steps are required (or nothing for most users).
# For developers
If you are interested in adding new features, you have two options:
Either your features can be implemented as a plug-in. Please see [How to create a plug-in?](How-to-create-a-plug-in_.md) for more information. Or you add the features directly in the source code of the projects and create a pull request.

View File

@@ -19,4 +19,4 @@ Beta-releases can be obtained by opting in to the [Beta testing channel](https:/
# How do I learn more?
Please see the [documentation](Documentation.md).
[![Build Status](https://www.bitrise.io/app/43a23ab54dee9f7e/status.svg?token=2vryTsMQzTX3XRPikhgRwA&branch=master)](https://www.bitrise.io/app/43a23ab54dee9f7e)
[![Build Status](https://www.bitrise.io/app/43a23ab54dee9f7e/status.svg?token=2vryTsMQzTX3XRPikhgRwA&branch=nonet)](https://www.bitrise.io/app/43a23ab54dee9f7e)

View File

@@ -13,8 +13,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Kp2aBusinessLogic", "Kp2aBu
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TwofishCipher", "TwofishCipher\TwofishCipher.csproj", "{5CF675A5-9BEE-4720-BED9-D5BF14A2EBF9}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "JavaFileStorageBindings", "JavaFileStorageBindings\JavaFileStorageBindings.csproj", "{48574278-4779-4B3A-A9E4-9CF1BC285D0B}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AndroidFileChooserBinding", "AndroidFileChooserBinding\AndroidFileChooserBinding.csproj", "{3C0F7FE5-639F-4422-A087-8B26CF862D1B}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KP2AKdbLibraryBinding", "KP2AKdbLibraryBinding\KP2AKdbLibraryBinding.csproj", "{70D3844A-D9FA-4A64-B205-A84C6A822196}"
@@ -109,8 +107,8 @@ Global
{A8779D4D-7C49-4C2F-82BD-2CDC448391DA}.Release|Win32.Build.0 = Release|Any CPU
{A8779D4D-7C49-4C2F-82BD-2CDC448391DA}.Release|x64.ActiveCfg = Release|Any CPU
{A8779D4D-7C49-4C2F-82BD-2CDC448391DA}.Release|x64.Build.0 = Release|Any CPU
{A8779D4D-7C49-4C2F-82BD-2CDC448391DA}.ReleaseNoNet|Any CPU.ActiveCfg = Debug|Any CPU
{A8779D4D-7C49-4C2F-82BD-2CDC448391DA}.ReleaseNoNet|Any CPU.Build.0 = Debug|Any CPU
{A8779D4D-7C49-4C2F-82BD-2CDC448391DA}.ReleaseNoNet|Any CPU.ActiveCfg = ReleaseNoNet|Any CPU
{A8779D4D-7C49-4C2F-82BD-2CDC448391DA}.ReleaseNoNet|Any CPU.Build.0 = ReleaseNoNet|Any CPU
{A8779D4D-7C49-4C2F-82BD-2CDC448391DA}.ReleaseNoNet|Mixed Platforms.ActiveCfg = ReleaseNoNet|Any CPU
{A8779D4D-7C49-4C2F-82BD-2CDC448391DA}.ReleaseNoNet|Mixed Platforms.Build.0 = ReleaseNoNet|Any CPU
{A8779D4D-7C49-4C2F-82BD-2CDC448391DA}.ReleaseNoNet|Win32.ActiveCfg = Release|Any CPU
@@ -187,8 +185,8 @@ Global
{3C0F7FE5-639F-4422-A087-8B26CF862D1B}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{3C0F7FE5-639F-4422-A087-8B26CF862D1B}.Release|Win32.ActiveCfg = Release|Any CPU
{3C0F7FE5-639F-4422-A087-8B26CF862D1B}.Release|x64.ActiveCfg = Release|Any CPU
{3C0F7FE5-639F-4422-A087-8B26CF862D1B}.ReleaseNoNet|Any CPU.ActiveCfg = Release|Any CPU
{3C0F7FE5-639F-4422-A087-8B26CF862D1B}.ReleaseNoNet|Any CPU.Build.0 = Release|Any CPU
{3C0F7FE5-639F-4422-A087-8B26CF862D1B}.ReleaseNoNet|Any CPU.ActiveCfg = ReleaseNoNet|Any CPU
{3C0F7FE5-639F-4422-A087-8B26CF862D1B}.ReleaseNoNet|Any CPU.Build.0 = ReleaseNoNet|Any CPU
{3C0F7FE5-639F-4422-A087-8B26CF862D1B}.ReleaseNoNet|Mixed Platforms.ActiveCfg = ReleaseNoNet|Any CPU
{3C0F7FE5-639F-4422-A087-8B26CF862D1B}.ReleaseNoNet|Mixed Platforms.Build.0 = ReleaseNoNet|Any CPU
{3C0F7FE5-639F-4422-A087-8B26CF862D1B}.ReleaseNoNet|Win32.ActiveCfg = Release|Any CPU
@@ -205,8 +203,8 @@ Global
{70D3844A-D9FA-4A64-B205-A84C6A822196}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{70D3844A-D9FA-4A64-B205-A84C6A822196}.Release|Win32.ActiveCfg = Release|Any CPU
{70D3844A-D9FA-4A64-B205-A84C6A822196}.Release|x64.ActiveCfg = Release|Any CPU
{70D3844A-D9FA-4A64-B205-A84C6A822196}.ReleaseNoNet|Any CPU.ActiveCfg = Release|Any CPU
{70D3844A-D9FA-4A64-B205-A84C6A822196}.ReleaseNoNet|Any CPU.Build.0 = Release|Any CPU
{70D3844A-D9FA-4A64-B205-A84C6A822196}.ReleaseNoNet|Any CPU.ActiveCfg = ReleaseNoNet|Any CPU
{70D3844A-D9FA-4A64-B205-A84C6A822196}.ReleaseNoNet|Any CPU.Build.0 = ReleaseNoNet|Any CPU
{70D3844A-D9FA-4A64-B205-A84C6A822196}.ReleaseNoNet|Mixed Platforms.ActiveCfg = ReleaseNoNet|Any CPU
{70D3844A-D9FA-4A64-B205-A84C6A822196}.ReleaseNoNet|Mixed Platforms.Build.0 = ReleaseNoNet|Any CPU
{70D3844A-D9FA-4A64-B205-A84C6A822196}.ReleaseNoNet|Win32.ActiveCfg = Release|Any CPU
@@ -223,8 +221,8 @@ Global
{3DA3911E-36DE-465E-8F15-F1991B6437E5}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{3DA3911E-36DE-465E-8F15-F1991B6437E5}.Release|Win32.ActiveCfg = Release|Any CPU
{3DA3911E-36DE-465E-8F15-F1991B6437E5}.Release|x64.ActiveCfg = Release|Any CPU
{3DA3911E-36DE-465E-8F15-F1991B6437E5}.ReleaseNoNet|Any CPU.ActiveCfg = Release|Any CPU
{3DA3911E-36DE-465E-8F15-F1991B6437E5}.ReleaseNoNet|Any CPU.Build.0 = Release|Any CPU
{3DA3911E-36DE-465E-8F15-F1991B6437E5}.ReleaseNoNet|Any CPU.ActiveCfg = ReleaseNoNet|Any CPU
{3DA3911E-36DE-465E-8F15-F1991B6437E5}.ReleaseNoNet|Any CPU.Build.0 = ReleaseNoNet|Any CPU
{3DA3911E-36DE-465E-8F15-F1991B6437E5}.ReleaseNoNet|Mixed Platforms.ActiveCfg = ReleaseNoNet|Any CPU
{3DA3911E-36DE-465E-8F15-F1991B6437E5}.ReleaseNoNet|Mixed Platforms.Build.0 = ReleaseNoNet|Any CPU
{3DA3911E-36DE-465E-8F15-F1991B6437E5}.ReleaseNoNet|Win32.ActiveCfg = Release|Any CPU

View File

@@ -28,9 +28,9 @@ namespace KeePassLib.Serialization
/// </summary>
public static KdbxFormat GetFormatToUse(string fileExt)
{
// If the filename ends in .kdbp, use ProtocolBuffers format.
return fileExt.Equals(KdbpFile.FileNameExtension, StringComparison.OrdinalIgnoreCase) ? KdbxFormat.ProtocolBuffers : KdbxFormat.Default;
}
return fileExt.Equals(KdbpFile.FileNameExtension, StringComparison.OrdinalIgnoreCase) ? KdbxFormat.ProtocolBuffers :
(fileExt.Equals("xml", StringComparison.OrdinalIgnoreCase) ? KdbxFormat.PlainXml : KdbxFormat.Default);
}
public static void WriteDocument(PwDatabase database, Stream stream, byte[] protectedStreamKey, byte[] hashOfHeader)
{

View File

@@ -31,7 +31,7 @@
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<DefineConstants>TRACE;NoNet;EXCLUDE_JAVAFILESTORAGE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<JavaMaximumHeapSize>4G</JavaMaximumHeapSize>
@@ -54,7 +54,6 @@
<Reference Include="mscorlib" />
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Xml" />
</ItemGroup>
@@ -78,23 +77,13 @@
<Compile Include="Io\AndroidContentStorage.cs" />
<Compile Include="Io\BuiltInFileStorage.cs" />
<Compile Include="Io\CachingFileStorage.cs" />
<Compile Include="Io\DropboxFileStorage.cs" />
<Compile Include="Io\DropboxFileStorageKeys.cs" />
<Compile Include="Io\FileDescription.cs" />
<Compile Include="Io\FileStorageSetupActivity.cs" />
<Compile Include="Io\FileStorageSetupInitiatorActivity.cs" />
<Compile Include="Io\GDriveFileStorage.cs" />
<Compile Include="Io\IFileStorage.cs" />
<Compile Include="Io\IoUtil.cs" />
<Compile Include="Io\JavaFileStorage.cs" />
<Compile Include="Io\NetFtpFileStorage.cs" />
<Compile Include="Io\OfflineSwitchableFileStorage.cs" />
<Compile Include="Io\OneDrive2FileStorage.cs" />
<Compile Include="Io\OneDrive2PrefixContainer.cs" />
<Compile Include="Io\PCloudFileStorage.cs" />
<Compile Include="Io\SftpFileStorage.cs" />
<Compile Include="Io\OneDriveFileStorage.cs" />
<Compile Include="Io\WebDavFileStorage.cs" />
<Compile Include="IProgressDialog.cs" />
<Compile Include="PreferenceKey.cs" />
<Compile Include="SelectStorageLocationActivityBase.cs" />
@@ -130,14 +119,6 @@
<Compile Include="Utils\Spr\SprEngine.PickChars.cs" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\AndroidFileChooserBinding\AndroidFileChooserBinding.csproj">
<Project>{3c0f7fe5-639f-4422-a087-8b26cf862d1b}</Project>
<Name>AndroidFileChooserBinding</Name>
</ProjectReference>
<ProjectReference Include="..\JavaFileStorageBindings\JavaFileStorageBindings.csproj">
<Project>{48574278-4779-4b3a-a9e4-9cf1bc285d0b}</Project>
<Name>JavaFileStorageBindings</Name>
</ProjectReference>
<ProjectReference Include="..\KeePassLib2Android\KeePassLib2Android.csproj">
<Project>{545B4A6B-8BBA-4FBE-92FC-4AC060122A54}</Project>
<Name>KeePassLib2Android</Name>
@@ -146,10 +127,7 @@
<Project>{70D3844A-D9FA-4A64-B205-A84C6A822196}</Project>
<Name>KP2AKdbLibraryBinding</Name>
</ProjectReference>
<ProjectReference Include="..\PCloudBindings\PCloudBindings.csproj">
<Project>{2db80c77-d46f-4970-b967-e9ffa9b2ac2e}</Project>
<Name>PCloudBindings</Name>
</ProjectReference>
<ProjectReference Include="..\TwofishCipher\TwofishCipher.csproj">
<Project>{5CF675A5-9BEE-4720-BED9-D5BF14A2EBF9}</Project>
<Name>TwofishCipher</Name>
@@ -162,20 +140,8 @@
<None Include="app.config" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="FluentFTP">
<Version>31.3.1</Version>
</PackageReference>
<PackageReference Include="Microsoft.Graph">
<Version>1.21.0</Version>
</PackageReference>
<PackageReference Include="Microsoft.Graph.Auth">
<Version>1.0.0-preview.1</Version>
</PackageReference>
<PackageReference Include="Microsoft.Identity.Client">
<Version>4.8.2</Version>
</PackageReference>
<PackageReference Include="Xamarin.Android.Arch.Core.Common">
<Version>1.1.1.3</Version>
<Version>1.1.1.1</Version>
</PackageReference>
<PackageReference Include="Xamarin.Android.Arch.Core.Runtime">
<Version>1.1.1.3</Version>

File diff suppressed because it is too large Load Diff

View File

@@ -27,7 +27,7 @@ namespace keepass2android
}
public byte[] HashOfLastStream { get; private set; }
public bool CanWrite { get { return true; } }
public bool CanWrite { get { return _format != KdbxFormat.PlainXml; } }
public string SuccessMessage { get { return null; } }
public void Save(PwDatabase kpDatabase, Stream stream)
{

View File

@@ -6,11 +6,11 @@ if exist "DropboxFileStorageKeys.cs" (
)
cd ..\..\keepass2android
call UseManifestDebug.bat
call UseManifestNoNet.bat
cd ..
call "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" x86_amd64
msbuild KeePass.sln /target:keepass2android /p:BuildProjectReferences=true /p:Configuration="Debug" /p:Platform="Any CPU"
msbuild KeePass.sln /target:keepass2android /p:BuildProjectReferences=true /p:Configuration="Release" /p:Platform="Any CPU"
cd build-scripts

View File

@@ -27,7 +27,7 @@ namespace keepass2android
AlertDialog.Builder builder = new AlertDialog.Builder(new ContextThemeWrapper(ctx, Android.Resource.Style.ThemeHoloLightDialog));
builder.SetTitle(ctx.GetString(Resource.String.ChangeLog_title));
List<string> changeLog = new List<string>{
BuildChangelogString(ctx, Resource.Array.ChangeLog_1_08b, "1.08b"),
BuildChangelogString(ctx, Resource.Array.ChangeLog_1_08c, "1.08c"),
BuildChangelogString(ctx, Resource.Array.ChangeLog_1_08b, "1.08b"),
BuildChangelogString(ctx, Resource.Array.ChangeLog_1_08, "1.08"),
ctx.GetString(Resource.String.ChangeLog_1_07b),
@@ -129,7 +129,7 @@ namespace keepass2android
}
private const string HtmlStart = @"<html>
private const string HtmlStart = @"<html>
<head>
<style type='text/css'>
a { color:#000000 }
@@ -165,36 +165,36 @@ namespace keepass2android
{
string versionLog2 = versionLog;
bool title = true;
if (isFirst)
{
if (isFirst)
{
bool showDonateOption = true;
ISharedPreferences prefs = PreferenceManager.GetDefaultSharedPreferences(ctx);
if (prefs.GetBoolean(ctx.GetString(Resource.String.NoDonationReminder_key), false))
showDonateOption = false;
bool showDonateOption = true;
ISharedPreferences prefs = PreferenceManager.GetDefaultSharedPreferences(ctx);
if (prefs.GetBoolean(ctx.GetString(Resource.String.NoDonationReminder_key), false))
showDonateOption = false;
long usageCount = prefs.GetLong(ctx.GetString(Resource.String.UsageCount_key), 0);
long usageCount = prefs.GetLong(ctx.GetString(Resource.String.UsageCount_key), 0);
if (usageCount <= 5)
showDonateOption = false;
if (usageCount <= 5)
showDonateOption = false;
if (showDonateOption)
{
if (versionLog2.EndsWith("\n") == false)
versionLog2 += "\n";
string donateUrl = ctx.GetString(Resource.String.donate_url,
new Java.Lang.Object[]{ctx.Resources.Configuration.Locale.Language,
ctx.PackageName
});
if (showDonateOption)
{
if (versionLog2.EndsWith("\n") == false)
versionLog2 += "\n";
string donateUrl = ctx.GetString(Resource.String.donate_url,
new Java.Lang.Object[]{ctx.Resources.Configuration.Locale.Language,
ctx.PackageName
});
versionLog2 += " * <a href=\"" + donateUrl
+ "\">" +
ctx.GetString(Resource.String.ChangeLog_keptDonate)
+ "<a/>";
}
isFirst = false;
}
foreach (string line in versionLog2.Split('\n'))
versionLog2 += " * <a href=\"" + donateUrl
+ "\">" +
ctx.GetString(Resource.String.ChangeLog_keptDonate)
+ "<a/>";
}
isFirst = false;
}
foreach (string line in versionLog2.Split('\n'))
{
string w = line.Trim();
if (title)

View File

@@ -4,6 +4,8 @@ using System.Linq;
using System.Net;
#if !NoNet
using FluentFTP;
using Keepass2android.Javafilestorage;
#endif
using System.Text;
@@ -16,9 +18,6 @@ using Android.Widget;
using Java.IO;
using keepass2android.Io;
#if !EXCLUDE_JAVAFILESTORAGE
using Keepass2android.Javafilestorage;
#endif
using KeePassLib.Serialization;
using KeePassLib.Utility;

View File

@@ -84,7 +84,8 @@ namespace keepass2android
if (context.Intent.GetBooleanExtra(AllowThirdPartyAppSend, false))
_displayedProtocolIds.Add("androidsend");
#if NoNet
_displayedProtocolIds.Add("kp2a");
//don't display "get regular version", is classified as deceptive ad by Google. Haha.
//_displayedProtocolIds.Add("kp2a");
#endif
_displayedProtocolIds = _displayedProtocolIds.GroupBy(p => App.Kp2a.GetStorageMainTypeDisplayName(p))
.Select(g => string.Join(",", g)).ToList();

View File

@@ -1,12 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
android:versionCode="93"
android:versionName="1.01-g"
android:versionCode="162"
android:versionName="1.08c-r1"
package="keepass2android.keepass2android_nonet"
android:installLocation="auto">
<uses-sdk android:minSdkVersion="14" android:targetSdkVersion="29" />
<permission android:description="@string/permission_desc2" android:icon="@drawable/ic_launcher" android:label="KP2A entry search" android:name="keepass2android.keepass2android_nonet.permission.KP2aInternalSearch" android:protectionLevel="signature" />
<permission android:description="@string/permission_desc3" android:icon="@drawable/ic_launcher" android:label="KP2A choose autofill dataset" android:name="keepass2android.keepass2android_nonet.permission.Kp2aChooseAutofill" android:protectionLevel="signature" />
<uses-sdk android:minSdkVersion="14" android:targetSdkVersion="26" />
<permission android:description="@string/permission_desc2" android:icon="@drawable/ic_launcher_offline" android:label="KP2A entry search" android:name="keepass2android.keepass2android_nonet.permission.KP2aInternalSearch" android:protectionLevel="signature" />
<permission android:description="@string/permission_desc3" android:icon="@drawable/ic_launcher_offline" android:label="KP2A choose autofill dataset" android:name="keepass2android.keepass2android_nonet.permission.Kp2aChooseAutofill" android:protectionLevel="signature" />
<application
android:label="keepass2android"
android:icon="@mipmap/ic_launcher_offline"
@@ -44,7 +45,6 @@
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity android:configChanges="orientation|keyboard|keyboardHidden" android:label="@string/app_name" android:theme="@style/MyTheme_Blue" android:name="keepass2android.SelectCurrentDbActivity" android:windowSoftInputMode="adjustResize">
<intent-filter android:label="@string/app_name">
<action android:name="android.intent.action.VIEW" />
@@ -54,12 +54,13 @@
<data android:mimeType="application/octet-stream" />
<data android:host="*" />
</intent-filter>
<intent-filter>
<action android:name="kp2a.action.SelectCurrentDbActivity" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<intent-filter android:label="@string/app_name">
<action android:name="android.intent.action.SEND" />
<action android:name="android.intent.action.SEND_MULTIPLE" />
@@ -205,10 +206,9 @@ The scheme=file is still there for old OS devices. It's also queried by apps lik
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.USE_FINGERPRINT" />
<uses-permission android:name="android.permission.USE_BIOMETRIC" />
<uses-permission android:name="keepass2android.keepass2android.permission.KP2aInternalFileBrowsing" />
<uses-permission android:name="keepass2android.keepass2android.permission.KP2aInternalSearch" />
<uses-permission android:name="keepass2android.keepass2android_nonet.permission.KP2aInternalFileBrowsing" />
<uses-permission android:name="keepass2android.keepass2android_nonet.permission.KP2aInternalSearch" />
<!-- Samsung Pass permission -->
<uses-permission android:name="com.samsung.android.providers.context.permission.WRITE_USE_APP_FEATURE_SURVEY" />
</manifest>

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

View File

@@ -19,9 +19,18 @@
<string name="short_app_name">KP2A</string>
<string name="app_name_nonet">Keepass2Android Offline</string>
<string name="short_app_name_nonet">KP2A Offline</string>
<string name="app_timeout">Временско прекорачење апликације</string>
<string name="app_timeout_summary">Време пре закључавања базе података када апликација није активна</string>
<string name="kill_app_label">Угасите процес апликације</string>
<string name="show_kill_app">Дугме за излаз</string>
<string name="application">Апликација</string>
<string name="application_settings">Подешавања апликације</string>
<string name="ShowGroupnameInSearchResult_title">Прикажи име групе у резултату претраге</string>
<string name="ShowGroupnameInSearchResult_resume">Прикажи име групе испод унешених назива у резултату претраге. Корисно уколико неколико уноса имају исто име.</string>
<string name="AutofillDisabledQueriesPreference_title">Онемогућено аутоматско попуњавање</string>
<string name="AutofillDisabledQueriesPreference_summary">Преглед листе апликација и веб страница за које је аутоматско попуњавање угашено</string>
<string name="OfferSaveCredentials_summary">Ако је омогућено, Андроид ће вас питати да ли желите да сачувате корисничко име и шифру након што сте ручно унели податке у поља са аутоматским попуњавањем.</string>
<string name="OfferSaveCredentials_title">Понуди чување корисничког имена и шифре</string>
<string name="NavigationToGroupCompleted_message">Приказ групе је сада: %1$s</string>
<string name="ShowGroupInEntry_title">Прикажи назив групе у погледу за унос</string>
<string name="unknown_uri_scheme">Извините! Keepass2Android не може да обради повратни URI %1$s. Контактирајте девелопера!</string>
@@ -36,18 +45,22 @@
<string name="FileHandling_prefs">Управљање датотеком</string>
<string name="keyboard_prefs">Тастатура</string>
<string name="export_prefs">Извоз базе података...</string>
<string name="import_db_prefs">Увоз базе података у унутрашњу фасциклу</string>
<string name="import_keyfile_prefs">Увоз кључа у унутрашњу фасциклу</string>
<string name="fingerprint_prefs">Биометријско откључавање</string>
<string name="import_db_prefs">Увоз базе података у унутрашњи директоријум</string>
<string name="import_keyfile_prefs">Увоз кључа у унутрашњи директоријум</string>
<string name="keyboardswitch_prefs">Промена тастатуре</string>
<string name="OnlyAvailableForLocalFiles">Доступно само за локалне датотеке.</string>
<string name="FileIsInInternalDirectory">Датотека се чува у унтрашњем директоријуму.</string>
<string name="DatabaseFileMoved">Датотека базе података је копирана у унутрашњу фасциклу. Притисните Ok да бисте је отворили на новој локацији. Напомена: Не заборавите да редовно извозите базу података на сигурно складиште!</string>
<string name="DatabaseFileMoved">Датотека базе података је копирана у унутрашњи директоријум. Притисните Ok да бисте је отворили на новој локацији. Напомена: Не заборавите да редовно извозите базу података на сигурно складиште!</string>
<string name="KeyfileMoved">Кључ је копиран у унутрашњи директоријум. Уверите се да имате сигурно резервну копију пре брисања са тренутне локације!</string>
<string name="KeyfileMoveRequiresRememberKeyfile">Не можете користити унутрашњи директоријум кад локација кључа није запамћена. Промените жељене поставке безбедности.</string>
<string name="unlock_database_button">Откључај</string>
<string name="unlock_database_title">Откључај базу података</string>
<string name="brackets">Заграде</string>
<string name="cancel">Прекини</string>
<string name="Ok">У реду</string>
<string name="disable_sensor">Онемогући сензор</string>
<string name="enable_sensor">Омогући сензор</string>
<string name="ClearClipboard">Бележница је очишћена.</string>
<string name="clipboard_timeout">Временско ограничење бележнице</string>
<string name="clipboard_timeout_summary">Време пре чишћења бележнице после копирања корисничког имена или лозинке</string>
@@ -65,6 +78,24 @@
<string name="disclaimer_formal">Keepass2Android долази апсолутно без гаранције: Ово је слободан софтвер, а ви сте добордошли да га дистрибуирате под условима GPL верзије 2 или новије.</string>
<string name="ellipsis">\u2026</string>
<string name="copy_to_clipboard">Копирај у бележницу</string>
<string name="fingerprint_description">Молимо вас урадите аутентификацију како бисте наставили</string>
<string name="fingerprint_fatal">Није могуће подесити биометријско откључавање:</string>
<string name="fingerprint_not_recognized">Биометријска аутентификација није успела. Покушајте поново</string>
<string name="fingerprint_success">Успешна биометријска аутентификација</string>
<string name="fingerprint_os_error">Биометријско откључавање захтева Андроид верзију 6.0 или неку новију.</string>
<string name="fingerprint_hardware_error">Није пронађен биометријски хардвер</string>
<string name="fingerprint_no_enrolled">Нисте конфигурисали биометријску аутентификацију на овом уређају. Молимо вас да прво одрадите системско подешавање</string>
<string name="disable_fingerprint_unlock">Онемогући биометријско откључавање </string>
<string name="enable_fingerprint_unlock">Омогући потпуно биометријско откључавање </string>
<string name="enable_fingerprint_quickunlock">Омогућите биометријско откључавање за брзо откључавање</string>
<string name="fingerprint_unlock_failed">Неуспешно биометријско откључавање. Кључ за дешифровање је поништен од Андроида. Ово се обично дешава ако је дошло до промене биометријске аутентификације или безбедносних подешавања</string>
<string name="fingerprint_disabled_wrong_masterkey">Неуспешно откључавање базе података: Неважећи сложени кључ. Биометријско откључавање је онемогућено јер главна лозинка није више валидна</string>
<string name="fingerprint_reenable">Поново омгућите биометријско откључавање за нову главну лозинку</string>
<string name="fingerprint_reenable2">Откључајте лозинком, а затим понво омогућите биометријско откључавање у поставкама базе података</string>
<string name="FingerprintInitFailed">Неуспешна иницијализација биометријске аутентификације. </string>
<string name="FingerprintSetupFailed">Неуспешно шифровање података. То се може догодити ако додате или уклоните отиске прстију у системским подешавањима док апликација очитава ваш отисак прстију.</string>
<string name="enable_fingerprint_unlock_Info">Ово ће на овом уређају сачувати вашу главну лозинку, шифрирану са Android Keystore-ом и заштићену биометријском потврдом идентитета. Омогућава откључавање базе података само помоћу биометрије.</string>
<string name="enable_fingerprint_quickunlock_Info">Омогућава употребу биометријске потврде идентитета уместо кода за брзо откључавање. Не чува никакве информације везане за вашу главну лозинку.</string>
<string name="enter_filename">Унесите име базе података</string>
<string name="entry_accessed">Приступано</string>
<string name="entry_cancel">Прекини</string>
@@ -84,6 +115,7 @@
<string name="entry_user_name">Корисничко Име</string>
<string name="entry_extra_strings">Додатна string поља</string>
<string name="entry_binaries">Приложене датотеке</string>
<string name="error_can_not_handle_uri">Keepass2Android не може да обради овај URI.</string>
<string name="error_could_not_create_group">Грешка при креирању група.</string>
<string name="error_could_not_create_parent">Није могуће креирати родитељски директоријум.</string>
<string name="error_database_exists">Ова датотека већ постоји.</string>
@@ -100,8 +132,9 @@
<string name="error_rounds_not_number">Заокруживање мора бити број.</string>
<string name="error_param_not_number">Параметар мора бити број.</string>
<string name="error_title_required">Име је неопходно.</string>
<string name="error_wrong_length">Унесите позитиван цео број у поље за дужину</string>
<string name="FileNotFound">Датотека не постоји.</string>
<string name="file_browser">Прегледач фајлова</string>
<string name="file_browser">Претраживач датотека</string>
<string name="generate_password">Генерисање лозинке</string>
<string name="group">Група</string>
<string name="hint_comment">напомене</string>
@@ -134,6 +167,7 @@
<string name="menu_change_key">Промени Главни кључ</string>
<string name="menu_copy_pass">Копирај Лозинку</string>
<string name="menu_copy_user">Копирај Корисника</string>
<string name="menu_copy_totp">Копирај TOTP</string>
<string name="menu_create">Креирај</string>
<string name="menu_app_settings">Поставке</string>
<string name="menu_db_settings">Поставке базе података</string>
@@ -160,6 +194,7 @@
<string name="no">Не</string>
<string name="no_keys">Нема уноса у бази података или групи.</string>
<string name="no_results">Нема резултата претраге</string>
<string name="open_recent">Отвори последњу базу податак (притисни за отварање)</string>
<string name="omitbackup_title">Не претражуј реззервне копије и уносе корпе за отпатке</string>
<string name="omitbackup_summary">Изоставите резервну копију и групу Корпе за Отпатке из резултата претраге</string>
<string name="pass_filename">Име датотеке базе података KeePass</string>
@@ -197,6 +232,7 @@
<string name="search_hint">Пронађи</string>
<string name="search_results">Резултати претраге</string>
<string name="search_in">Тражи у</string>
<string name="select_other_entry">Изабери други унос</string>
<string name="select_group_then_add">Отворите жељену групу, онда притисните \"%1$s\"!</string>
<string name="insert_element_here">Убаците овде</string>
<string name="twofish">Twofish</string>
@@ -208,6 +244,7 @@
<string name="author">Keepass2Android је развио Philipp Crocoll.</string>
<string name="further_authors">Хвала доприносу кода од %1$s.</string>
<string name="designers">Хвала за допринос иконе и распоред дизајна од %1$s.</string>
<string name="supporters">Хвала за финансијску подршку: %1$s.</string>
<string name="credit_plugin1">Twofish Cipher Plugin за Keepass је развио Scott Greenberg и укључен је у KP2A.</string>
<string name="credit_android_filechooser">android-filechooser развио је Hai Bison</string>
<string name="credit_keyboard">The KP2A тастатура је заснована на Gingerbread тастатури Android Open Source Project-а и користи Plugin Manager код од Hacker\'s Keyboard Klaus Weidner-а.</string>
@@ -219,6 +256,7 @@
<string name="ShowUsernameInList_summary">Приказати корисничка имена испод наслова за уносе. Корисно за више рачуна и ТАN-ова.</string>
<string name="RememberRecentFiles_title">Запамти базе података</string>
<string name="RememberRecentFiles_summary">Запамти недавно отворене базе података и покажи их на екрану за отворену базу података.</string>
<string name="kp2a_findUrl">Порнађи шифру</string>
<string name="excludeExpiredEntries">Изостави истекле уносе</string>
<string name="search_options">Опције</string>
<string name="caseSensitive">Разликуј мала/Велика слова</string>
@@ -230,6 +268,7 @@
<string name="enter_filename_details_create_import">Датотека за увоз ће бити изабрана у следећем кораку.</string>
<string name="enable_quickunlock">Омогући Брзо откључавање</string>
<string name="QuickUnlock_label">Унесите последња %1$d карактера ваше лозинке:</string>
<string name="QuickUnlock_label_secure">Унесите код за брзо откључавање:</string>
<string name="QuickUnlock_button">Брзо откључавање!</string>
<string name="QuickUnlock_lockButton">Затвори базу података</string>
<string name="QuickUnlockDefaultEnabled_title">Омогући Брзо откључавање подразумевано</string>
@@ -242,30 +281,83 @@
<string name="QuickUnlockIconHidden16_summary">Брзо откључавање захтева обавештење да би исправно радило. Изаберите ову опцију да прикажете обавештење без иконе.</string>
<string name="QuickUnlockLength_title">Дужина кључа Брзог откључавања</string>
<string name="QuickUnlockLength_summary">Максимални број знакова који се користе за лозинку Брзог откључавања.</string>
<string name="QuickUnlockHideLength_title">Сакри дужину брзог откључавања</string>
<string name="QuickUnlockHideLength_summary">Ако је омогућено, дужина кода за брзо откључавање се не приказуције на екрану за брзо откључавање</string>
<string name="QuickUnlock_fail">Брзо откључавање није успело: неисправна лозинка!</string>
<string name="BinaryDirectory_title">Директоријум датотека прилога</string>
<string name="BinaryDirectory_summary">Директоријум чувања датотека прилога.</string>
<string name="SaveAttachmentDialog_title">Сачувај прилог</string>
<string name="SaveAttachmentDialog_text">Молимо изаберите где желите да сачувате прилог.</string>
<string name="SaveAttachmentDialog_open">Сачувај у кешу и отвори</string>
<string name="ShowAttachedImage">Приказати са уграђеним приказивачом слика</string>
<string name="SaveAttachment_doneMessage">Сачувај датотеку у %1$s.</string>
<string name="SaveAttachment_Failed">Није могуће сачувати датотеку у %1$s.</string>
<string name="AddUrlToEntryDialog_title">Запамти текст претраге?</string>
<string name="AskOverwriteBinary_no">Преименуј</string>
<string name="AttachFailed">Додавање прилога није успело</string>
<string name="RecycleBin">Канта</string>
<string name="AskDeletePermanentlyEntry">Да ли желите заувек да избришете овај унос? Притинисте Не да бисте рециклирали.</string>
<string name="AskDeletePermanentlyGroup">Да ли желите заувек да избришете ову групу? Притисните Не да бисте рециклирали.</string>
<string name="AskDeletePermanentlyItems">Да ли желите заувек да избришете изабране елементе? Притисните Не да бисте рециклирали.</string>
<string name="AskDeletePermanentlyEntryNoRecycle">Да ли желите заувек да избришете овај унос?</string>
<string name="AskDeletePermanentlyGroupNoRecycle">Да ли желите заувек да избришете ову групу? </string>
<string name="AskDeletePermanentlyItemsNoRecycle">Да ли желите заувек да избришете изабране елементе?</string>
<string name="AskDeletePermanently_title">Избриши заувек?</string>
<string name="AskReloadFile_title">Поново учитај датотеку?</string>
<string name="AskReloadFile">Датотеку која је тренутно отворена променио је други програм. Да ли желите да је поново учитате?</string>
<string name="AskDiscardChanges">Да ли желите да одбаците извршене промене? (Дугме Сачувај налази се на врху обрасца.) </string>
<string name="AskDiscardChanges_title">Одбаци промене?</string>
<string name="suggest_improvements">Предложи или гласај за побољшања</string>
<string name="rate_app">Оцени апликацију</string>
<string name="translate_app">Преведи KP2A</string>
<string name="AddingEntry">Додавање уноса…</string>
<string name="AddingGroup">Додавање групе…</string>
<string name="DeletingEntry">Брисање уноса…</string>
<string name="DeletingGroup">Брисање групе…</string>
<string name="DeletingItems">Брисање елемента…</string>
<string name="SettingPassword">Постављање лозинке…</string>
<string name="UndoingChanges">Поништавање промена…</string>
<string name="TransformingKey">Трансформација главног кључа…</string>
<string name="DecodingDatabase">Декодирање базе података…</string>
<string name="CheckingTargetFileForChanges">Провера крајње датотке на промене…</string>
<string name="TitleSyncQuestion">Споји промене?</string>
<string name="MessageSyncQuestion">База података је измењена споља. Да ли желите да учитате и спојите промене пре него што их сачувате? Изаберите Не ако желите да препишете спољне промене.</string>
<string name="SynchronizingDatabase">Спајање промена…</string>
<string name="YesSynchronize">Да, споји</string>
<string name="NoOverwrite">No, препиши</string>
<string name="UseOfflineMode">Ради само са унутрашњим кешом</string>
<string name="UseOnlineMode">Синхронизуј копију кеша са извором</string>
<string name="UseOfflineMode_Info">База података је учитана из унутрашње кеш меморије. Промене се чувају само у унутрашњем кешу и биће синхронизоване само ако се одабере опција Синхронизуј копију кеша са извором.</string>
<string name="InOfflineMode">Ради само на унутрашњој кеш меморији</string>
<string name="SynchronizingCachedDatabase">Синхронизација кеширане базе података…</string>
<string name="DownloadingRemoteFile">Учитавање изворне датотеке…</string>
<string name="UploadingFile">Снимање датотеке…</string>
<string name="RestoringRemoteFile">Повратак изворне датотеке…</string>
<string name="FilesInSync">Датотеке су синхронизоване.</string>
<string name="SynchronizedDatabaseSuccessfully">Базе података су успешно синхронизоване!</string>
<string name="CheckingDatabaseForChanges">Провера базе података за промене…</string>
<string name="CouldNotSaveToRemote">Није могуће сачувати у изворној датотеци: %1$s. Поново сачувајте или користите мени за синхронизацију када датотека поново буде доступна.</string>
<string name="CouldNotLoadFromRemote">Није могуће приступити изворној датотеци: %1$s. Датотека је учитана из унутрашње кеш меморије. И даље можете вршити промене у бази података и касније их синхронизовати.</string>
<string name="UpdatedRemoteFileOnLoad">Изворна датотека је ажурирана.</string>
<string name="NotifyOpenFromLocalDueToConflict">Отворена датотека из унутрашњег кеша, због сукоба са променама у изворној датотеци. За спајање користите мени за синхронизацију.</string>
<string name="LoadedFromRemoteInSync">Изворна датотека и кеш меморија су синхронизовани.</string>
<string name="UpdatedCachedFileOnLoad">Ажурирана кеш копија %1$s.</string>
<string name="RemoteDatabaseUnchanged">Није откривена ниједна промена.</string>
<string name="TemplateField_IdCard_Name">Име</string>
<string name="DbQuicklockedChannel_name">Брзо откључавање</string>
<string-array name="clipboard_timeout_options">
<item>30 seconds</item>
<item>1 minute</item>
<item>5 minutes</item>
<item>10 minutes</item>
<item>15 minutes</item>
<item>30 minutes</item>
<item>1 hour</item>
<item>30 секунди</item>
<item>1 минут</item>
<item>5 минута</item>
<item>10 минута</item>
<item>15 минута</item>
<item>30 минута</item>
<item>1 сат</item>
<item>Никад</item>
</string-array>
<string-array name="sftp_auth_modes">
<item>Лозинка</item>
<item>Private/Public key</item>
<item>Приватни/Јавни кључ</item>
</string-array>
</resources>

View File

@@ -67,7 +67,7 @@
</CustomCommands>
</CustomCommands>
<DeployExternal>True</DeployExternal>
<DefineConstants>RELEASE</DefineConstants>
<DefineConstants>RELEASE;NoNet</DefineConstants>
<AndroidLinkSkip>System.Core%3b</AndroidLinkSkip>
<EmbedAssembliesIntoApk>True</EmbedAssembliesIntoApk>
<AndroidLinkMode>SdkOnly</AndroidLinkMode>
@@ -103,10 +103,17 @@
</JavaOptions>
<AndroidStoreUncompressedFileExtensions>
</AndroidStoreUncompressedFileExtensions>
<AotAssemblies>false</AotAssemblies>
<EnableLLVM>false</EnableLLVM>
<BundleAssemblies>false</BundleAssemblies>
<EnableProguard>true</EnableProguard>
</PropertyGroup>
<ItemGroup>
<Reference Include="Java.Interop" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="Newtonsoft.Json, Version=11.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<HintPath>..\packages\Newtonsoft.Json.11.0.1\lib\netstandard2.0\Newtonsoft.Json.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.IdentityModel" />
<Reference Include="System.IO.Compression" />
@@ -812,14 +819,6 @@
<Folder Include="SupportLib\" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\JavaFileStorageBindings\JavaFileStorageBindings.csproj">
<Project>{48574278-4779-4B3A-A9E4-9CF1BC285D0B}</Project>
<Name>JavaFileStorageBindings</Name>
</ProjectReference>
<ProjectReference Include="..\PCloudBindings\PCloudBindings.csproj">
<Project>{2DB80C77-D46F-4970-B967-E9FFA9B2AC2E}</Project>
<Name>PCloudBindings</Name>
</ProjectReference>
<ProjectReference Include="..\KeePassLib2Android\KeePassLib2Android.csproj">
<Project>{545B4A6B-8BBA-4FBE-92FC-4AC060122A54}</Project>
<Name>KeePassLib2Android</Name>
@@ -1884,6 +1883,15 @@
<ItemGroup>
<AndroidResource Include="Resources\drawable-xhdpi\ic_storage_onedrive2.png" />
</ItemGroup>
<ItemGroup>
<AndroidResource Include="Resources\drawable-hdpi-v4\ic_launcher_offline.png" />
</ItemGroup>
<ItemGroup>
<AndroidResource Include="Resources\drawable-mdpi-v4\ic_launcher_offline.png" />
</ItemGroup>
<ItemGroup>
<AndroidResource Include="Resources\drawable-xhdpi-v4\ic_launcher_offline.png" />
</ItemGroup>
<ItemGroup>
<AndroidResource Include="Resources\layout\no_secure_display_layout.axml">
<SubType>Designer</SubType>

View File

@@ -12,7 +12,6 @@ using Java.Util;
using keepass2android.services.AutofillBase.model;
using System.Linq;
using Android.Content.PM;
using Com.Dropbox.Core.V2.Teamlog;
using AlertDialog = Android.App.AlertDialog;
namespace keepass2android.services.AutofillBase
@@ -34,11 +33,13 @@ namespace keepass2android.services.AutofillBase
protected override void OnCreate(Bundle savedInstanceState)
{
Kp2aLog.Log("ChooseForAutofillActivityBase.OnCreate");
base.OnCreate(savedInstanceState);
//if launched from history, don't re-use the task. Proceed to FileSelect instead.
if (Intent.Flags.HasFlag(ActivityFlags.LaunchedFromHistory))
{
Kp2aLog.Log("ChooseForAutofillActivityBase: started from history");
Kp2aLog.Log("Forwarding to FileSelect. QueryCredentialsActivity started from history.");
RestartApp();
return;
@@ -47,6 +48,7 @@ namespace keepass2android.services.AutofillBase
string requestedUrl = Intent.GetStringExtra(ExtraQueryString);
if (requestedUrl == null)
{
Kp2aLog.Log("ChooseForAutofillActivityBase: no requestedUrl ");
Toast.MakeText(this, "Cannot execute query for null.", ToastLength.Long).Show();
RestartApp();
return;
@@ -54,8 +56,10 @@ namespace keepass2android.services.AutofillBase
if (Intent.HasExtra(ExtraDisplayWarning))
{
AutofillServiceBase.DisplayWarning warning =
(AutofillServiceBase.DisplayWarning)Intent.GetIntExtra(ExtraDisplayWarning, (int)AutofillServiceBase.DisplayWarning.None);
Kp2aLog.Log("ChooseForAutofillActivityBase: ExtraDisplayWarning = " + warning);
if (warning != AutofillServiceBase.DisplayWarning.None)
{
AlertDialog.Builder builder = new AlertDialog.Builder(this);
@@ -118,6 +122,7 @@ namespace keepass2android.services.AutofillBase
}
}
else Kp2aLog.Log("ChooseForAutofillActivityBase: No ExtraDisplayWarning");
Proceed();
}

1
src/netftpandroid Submodule

Submodule src/netftpandroid added at 23df4cf135