Compare commits

..

141 Commits

Author SHA1 Message Date
PhilippC
1abee20c02 New translations strings.xml (Belarusian) 2025-02-11 16:10:19 +01:00
PhilippC
7891760723 New translations strings.xml (Yoruba) 2025-02-11 16:09:50 +01:00
PhilippC
985089c792 New translations strings.xml (Norwegian Bokmal) 2025-02-11 16:09:49 +01:00
PhilippC
486624ca24 New translations strings.xml (Sinhala) 2025-02-11 16:09:48 +01:00
PhilippC
0b7661c80b New translations strings.xml (Malayalam) 2025-02-11 16:09:46 +01:00
PhilippC
a49b80443b New translations strings.xml (Azerbaijani) 2025-02-11 16:09:45 +01:00
PhilippC
78890f741d New translations strings.xml (Norwegian Nynorsk) 2025-02-11 16:09:44 +01:00
PhilippC
7b31b52c6d New translations strings.xml (Croatian) 2025-02-11 16:09:43 +01:00
PhilippC
03d81865a8 New translations strings.xml (Persian) 2025-02-11 16:09:41 +01:00
PhilippC
a1348817b4 New translations strings.xml (Indonesian) 2025-02-11 16:09:40 +01:00
PhilippC
c0f717c737 New translations strings.xml (Portuguese, Brazilian) 2025-02-11 16:09:39 +01:00
PhilippC
fd2a74a297 New translations strings.xml (Galician) 2025-02-11 16:09:38 +01:00
PhilippC
17c0b115b2 New translations strings.xml (Vietnamese) 2025-02-11 16:09:36 +01:00
PhilippC
b764587582 New translations strings.xml (Chinese Traditional) 2025-02-11 16:09:35 +01:00
PhilippC
d163d2e101 New translations strings.xml (Chinese Simplified) 2025-02-11 16:09:34 +01:00
PhilippC
e2071e5bd5 New translations strings.xml (Ukrainian) 2025-02-11 16:09:33 +01:00
PhilippC
d1f880079b New translations strings.xml (Turkish) 2025-02-11 16:09:31 +01:00
PhilippC
299dba0d4e New translations strings.xml (Swedish) 2025-02-11 16:09:30 +01:00
PhilippC
8fddf5fa92 New translations strings.xml (Serbian (Cyrillic)) 2025-02-11 16:09:29 +01:00
PhilippC
152e196d62 New translations strings.xml (Slovenian) 2025-02-11 16:09:27 +01:00
PhilippC
21f58050f8 New translations strings.xml (Slovak) 2025-02-11 16:09:26 +01:00
PhilippC
7906102e43 New translations strings.xml (Russian) 2025-02-11 16:09:24 +01:00
PhilippC
3b2536472a New translations strings.xml (Portuguese) 2025-02-11 16:09:23 +01:00
PhilippC
2a93424365 New translations strings.xml (Polish) 2025-02-11 16:09:22 +01:00
PhilippC
09c7f9fa17 New translations strings.xml (Dutch) 2025-02-11 16:09:20 +01:00
PhilippC
ef93eedc63 New translations strings.xml (Korean) 2025-02-11 16:09:19 +01:00
PhilippC
95e51f9c5d New translations strings.xml (Japanese) 2025-02-11 16:09:18 +01:00
PhilippC
1c0528776b New translations strings.xml (Italian) 2025-02-11 16:09:17 +01:00
PhilippC
91a520e773 New translations strings.xml (Hungarian) 2025-02-11 16:09:15 +01:00
PhilippC
720e8d5a70 New translations strings.xml (Hebrew) 2025-02-11 16:09:14 +01:00
PhilippC
0539c7bb6c New translations strings.xml (Finnish) 2025-02-11 16:09:13 +01:00
PhilippC
a568e24e12 New translations strings.xml (Basque) 2025-02-11 16:09:12 +01:00
PhilippC
9cf33e3612 New translations strings.xml (Greek) 2025-02-11 16:09:10 +01:00
PhilippC
ec62f0b7fe New translations strings.xml (German) 2025-02-11 16:09:09 +01:00
PhilippC
34a3a3751e New translations strings.xml (Danish) 2025-02-11 16:09:07 +01:00
PhilippC
9e0b1b837c New translations strings.xml (Czech) 2025-02-11 16:09:06 +01:00
PhilippC
f44a7997bc New translations strings.xml (Catalan) 2025-02-11 16:09:04 +01:00
PhilippC
0e1b2c3ace New translations strings.xml (Bulgarian) 2025-02-11 16:09:03 +01:00
PhilippC
2d58979051 New translations strings.xml (Belarusian) 2025-02-11 16:09:02 +01:00
PhilippC
d5a3db21e9 New translations strings.xml (Arabic) 2025-02-11 16:09:00 +01:00
PhilippC
d56e9ebfd8 New translations strings.xml (Spanish) 2025-02-11 16:08:59 +01:00
PhilippC
24a22b0281 New translations strings.xml (French) 2025-02-11 16:08:58 +01:00
PhilippC
8582cc11aa New translations strings.xml (Romanian) 2025-02-11 16:08:56 +01:00
Philipp Crocoll
aff92370e5 rename folder back after merging crowdin translation changes 2025-02-11 13:36:45 +01:00
Philipp Crocoll
8ebe1bb0d9 Merge branch 'translation/prepare-crowdin-merge' into l10n_master2 2025-02-11 13:29:52 +01:00
Philipp Crocoll
bef3463a0d keepass2android-app renamed to keepass2android to prepare merging with crowdin updates 2025-02-11 13:27:54 +01:00
PhilippC
7537820d79 New translations strings.xml (Chinese Traditional) 2025-01-13 12:29:52 +01:00
PhilippC
79127ee4ae New translations strings.xml (Persian) 2024-11-23 21:28:30 +01:00
PhilippC
c367f94512 New translations strings.xml (Catalan) 2024-11-13 11:39:23 +01:00
PhilippC
04b455425b New translations strings.xml (Catalan) 2024-11-13 09:48:23 +01:00
PhilippC
130a6eb9bf New translations strings.xml (Vietnamese) 2024-11-04 09:39:34 +01:00
PhilippC
9490731f9a New translations strings.xml (Vietnamese) 2024-11-04 09:39:30 +01:00
PhilippC
8db227477d New translations strings.xml (Vietnamese) 2024-11-04 09:39:29 +01:00
PhilippC
1c720ac3d9 New translations strings.xml (Romanian) 2024-11-03 07:28:27 +01:00
PhilippC
581c897299 New translations strings.xml (Chinese Simplified) 2024-10-30 06:37:37 +01:00
PhilippC
c3936d05cc New translations strings.xml (Chinese Simplified) 2024-10-30 04:28:58 +01:00
PhilippC
7f7844f33e New translations strings.xml (Italian) 2024-10-26 11:24:17 +02:00
PhilippC
ba140b0612 New translations strings.xml (Italian) 2024-10-26 10:28:58 +02:00
PhilippC
9cba21cd7f New translations strings.xml (Italian) 2024-10-25 13:30:21 +02:00
PhilippC
0f3ad02ecb New translations strings.xml (Italian) 2024-10-25 11:30:58 +02:00
PhilippC
2859a53d0e New translations strings.xml (Belarusian) 2024-10-22 11:54:35 +02:00
PhilippC
edb5590dd3 New translations strings.xml (Belarusian) 2024-10-22 09:41:30 +02:00
PhilippC
f385fef48d New translations strings.xml (Belarusian) 2024-10-22 09:41:29 +02:00
PhilippC
05a340aa4d New translations strings.xml (Chinese Simplified) 2024-10-18 00:08:24 +02:00
PhilippC
2191421f62 New translations strings.xml (Spanish) 2024-10-09 17:54:16 +02:00
PhilippC
11f0ac2b4f New translations strings.xml (Spanish) 2024-10-08 12:17:32 +02:00
PhilippC
54ea326d2b New translations strings.xml (Spanish) 2024-10-07 13:50:21 +02:00
PhilippC
d2f2e19c24 New translations strings.xml (Spanish) 2024-10-07 12:21:30 +02:00
PhilippC
741bb4346e New translations strings.xml (Galician) 2024-09-29 01:09:57 +02:00
PhilippC
714e36c14d New translations strings.xml (Galician) 2024-09-29 00:07:56 +02:00
PhilippC
86cba725f8 New translations strings.xml (Spanish) 2024-09-24 14:13:11 +02:00
PhilippC
2207c02064 New translations strings.xml (Yoruba) 2024-09-23 09:09:24 +02:00
PhilippC
0687da9174 New translations strings.xml (Yoruba) 2024-09-23 09:09:22 +02:00
PhilippC
1d2a6d2c15 New translations strings.xml (Yoruba) 2024-09-23 09:09:21 +02:00
PhilippC
47a323dd5c New translations strings.xml (Persian) 2024-09-18 05:16:40 +02:00
PhilippC
5660f8b1d2 New translations strings.xml (Persian) 2024-09-18 00:03:17 +02:00
PhilippC
3ac238cc2b New translations strings.xml (Persian) 2024-09-17 22:55:43 +02:00
PhilippC
57fcfc11c4 New translations strings.xml (Azerbaijani) 2024-09-12 20:53:56 +02:00
PhilippC
c80b61e8f4 New translations strings.xml (Vietnamese) 2024-08-24 03:47:10 +02:00
PhilippC
d38f60e059 New translations strings.xml (Chinese Simplified) 2024-08-18 08:11:16 +02:00
PhilippC
f4197eee5d New translations strings.xml (Chinese Simplified) 2024-08-18 07:06:16 +02:00
PhilippC
271dcfc19c New translations strings.xml (Romanian) 2024-08-07 18:07:37 +02:00
PhilippC
011a939c39 New translations strings.xml (Catalan) 2024-07-24 14:47:54 +02:00
PhilippC
ee2b67a5dd New translations strings.xml (French) 2024-07-13 07:25:39 +02:00
PhilippC
9cf1606064 New translations strings.xml (Slovak) 2024-06-29 14:04:54 +02:00
PhilippC
df5f72262c New translations strings.xml (Slovak) 2024-06-29 12:25:38 +02:00
PhilippC
902f4a8f34 New translations strings.xml (French) 2024-05-21 23:30:15 +02:00
PhilippC
1a2b7c59aa New translations strings.xml (French) 2024-05-21 22:06:58 +02:00
PhilippC
ddced3d7b1 New translations strings.xml (Hebrew) 2024-05-18 07:38:04 +02:00
PhilippC
ecab74bfec New translations strings.xml (Japanese) 2024-05-17 17:09:50 +02:00
PhilippC
82e927cb93 New translations strings.xml (Hebrew) 2024-05-14 12:31:12 +02:00
PhilippC
45abdf4382 New translations strings.xml (Hebrew) 2024-05-14 10:45:39 +02:00
PhilippC
33cc95ff87 New translations strings.xml (Ukrainian) 2024-05-07 10:14:38 +02:00
PhilippC
a977c75b64 New translations strings.xml (Catalan) 2024-05-03 23:04:44 +02:00
PhilippC
3da07765ca New translations strings.xml (Catalan) 2024-05-03 20:48:28 +02:00
PhilippC
7d450865f7 New translations strings.xml (Portuguese) 2024-04-27 03:51:49 +02:00
PhilippC
14b01088ea New translations strings.xml (Portuguese) 2024-04-27 02:11:39 +02:00
PhilippC
4770b99127 New translations strings.xml (Italian) 2024-04-26 16:11:06 +02:00
PhilippC
b556eef642 New translations strings.xml (Spanish) 2024-04-25 17:32:49 +02:00
PhilippC
b31ec9fba0 New translations strings.xml (Spanish) 2024-04-25 15:55:24 +02:00
PhilippC
13e653f45d New translations strings.xml (Spanish) 2024-04-25 04:08:52 +02:00
PhilippC
75df57022a New translations strings.xml (Spanish) 2024-04-25 02:49:52 +02:00
PhilippC
10690ddf84 New translations strings.xml (Spanish) 2024-04-25 01:34:47 +02:00
PhilippC
4f4f85ea9d New translations strings.xml (Ukrainian) 2024-04-22 20:55:39 +02:00
PhilippC
d1da69f7a3 New translations strings.xml (Polish) 2024-04-19 17:36:51 +02:00
PhilippC
93a18a60b0 New translations strings.xml (Polish) 2024-04-19 16:22:39 +02:00
PhilippC
11f8f318da New translations strings.xml (Russian) 2024-04-19 09:29:31 +02:00
PhilippC
ec3b236ac3 New translations strings.xml (Chinese Simplified) 2024-04-04 12:49:30 +02:00
PhilippC
2fc9d2b9cb New translations strings.xml (Spanish) 2024-03-30 19:25:44 +01:00
PhilippC
290623a85c New translations strings.xml (Russian) 2024-03-27 06:36:17 +01:00
PhilippC
0df85ed593 New translations strings.xml (Russian) 2024-03-25 03:06:13 +01:00
PhilippC
3e696437c6 New translations strings.xml (Ukrainian) 2024-03-22 00:10:58 +01:00
PhilippC
b9fb4d127c New translations strings.xml (Ukrainian) 2024-03-21 23:07:21 +01:00
PhilippC
1afc69d715 New translations strings.xml (Russian) 2024-03-21 16:45:13 +01:00
PhilippC
cf06572aef New translations strings.xml (Russian) 2024-03-21 15:12:46 +01:00
PhilippC
0e7522923d New translations strings.xml (Hebrew) 2024-03-19 06:37:42 +01:00
PhilippC
5a2df80101 New translations strings.xml (Hebrew) 2024-03-18 22:22:39 +01:00
PhilippC
a0b80f706e New translations strings.xml (Hebrew) 2024-03-18 20:08:14 +01:00
PhilippC
1119ca31f6 New translations strings.xml (Hebrew) 2024-03-17 19:16:34 +01:00
PhilippC
d817e39c5d New translations strings.xml (Hebrew) 2024-03-17 17:45:30 +01:00
PhilippC
2f0881b917 New translations strings.xml (Japanese) 2024-03-11 10:07:53 +01:00
PhilippC
01666682b0 New translations strings.xml (Vietnamese) 2024-03-09 11:09:48 +01:00
PhilippC
2a56bee949 New translations strings.xml (Vietnamese) 2024-03-09 06:45:51 +01:00
PhilippC
78ed72390f New translations strings.xml (German) 2024-03-05 20:49:51 +01:00
PhilippC
17a83a731a New translations strings.xml (German) 2024-03-05 20:49:50 +01:00
PhilippC
a6a17be1eb New translations strings.xml (Vietnamese) 2024-03-05 16:36:44 +01:00
PhilippC
3d9a29c04b New translations strings.xml (Russian) 2024-03-05 16:36:43 +01:00
PhilippC
ae10cde944 New translations strings.xml (Russian) 2024-03-05 14:53:42 +01:00
PhilippC
8f947d6bd6 New translations strings.xml (Vietnamese) 2024-03-05 02:50:28 +01:00
PhilippC
c950a1d686 New translations strings.xml (Vietnamese) 2024-03-05 01:48:10 +01:00
PhilippC
50ef6f176c New translations strings.xml (Vietnamese) 2024-03-03 18:25:05 +01:00
PhilippC
c65136307d New translations strings.xml (Vietnamese) 2024-03-03 17:10:40 +01:00
PhilippC
2ef38695eb New translations strings.xml (Vietnamese) 2024-03-03 16:07:05 +01:00
PhilippC
bbdc223de3 New translations strings.xml (Italian) 2024-02-29 22:56:08 +01:00
PhilippC
ab4ce573a0 New translations strings.xml (Italian) 2024-02-29 21:48:33 +01:00
PhilippC
5bac055c80 New translations strings.xml (Arabic) 2024-02-29 02:53:39 +01:00
PhilippC
dbb5d402ed New translations strings.xml (Russian) 2024-02-28 10:59:20 +01:00
PhilippC
0a34855fd5 New translations strings.xml (Japanese) 2024-02-27 00:07:49 +01:00
PhilippC
e870f63024 New translations strings.xml (Japanese) 2024-02-26 07:26:49 +01:00
PhilippC
29102af02c New translations strings.xml (Portuguese, Brazilian) 2024-02-22 11:37:09 +01:00
PhilippC
da15c02b29 New translations strings.xml (Japanese) 2024-02-20 11:29:47 +01:00
803 changed files with 31960 additions and 290 deletions

View File

@@ -1,7 +1,7 @@
files:
- source: src/keepass2android-app/Resources/values/strings.xml
- source: src/keepass2android/Resources/values/strings.xml
translation: >-
/src/keepass2android-app/Resources/values-%two_letters_code%/%original_file_name%
/src/keepass2android/Resources/values-%two_letters_code%/%original_file_name%
translate_attributes: '0'
content_segmentation: '0'
languages_mapping:

View File

@@ -1,48 +0,0 @@
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; }
}

View File

@@ -1,8 +0,0 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net8.0-android</TargetFramework>
<SupportedOSPlatformVersion>21</SupportedOSPlatformVersion>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
</PropertyGroup>
</Project>

View File

@@ -1,14 +0,0 @@
<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>

View File

@@ -1,13 +0,0 @@
<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>

View File

@@ -1,35 +0,0 @@
<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>

View File

@@ -29,8 +29,6 @@ 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
@@ -371,30 +369,6 @@ 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

View File

@@ -730,7 +730,7 @@ namespace Kp2aAutofillParser
{
public List<TField> InputFields { get; set; } = new List<TField>();
public string? PackageId { get; set; } = null;
public string PackageId { get; set; } = null;
public string WebDomain { get; set; } = null;
}

View File

@@ -12,6 +12,7 @@
<PackageReference Include="FluentFTP" Version="51.1.0" />
<PackageReference Include="MegaApiClient" Version="1.10.4" />
<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="Xamarin.AndroidX.Browser" Version="1.8.0" />
<PackageReference Include="Xamarin.AndroidX.Core" Version="1.13.1.5" />

View File

@@ -138,8 +138,7 @@ namespace keepass2android
{
continue;
}
if (string.Equals(host, otherHost, StringComparison.OrdinalIgnoreCase) ||
host.EndsWith("." + otherHost, StringComparison.OrdinalIgnoreCase))
if (host.IndexOf(otherHost, StringComparison.InvariantCultureIgnoreCase) > -1)
{
pgResults.AddEntry(entry, false);
}

View File

@@ -41,8 +41,7 @@ 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:7.0.0'
implementation 'com.dropbox.core:dropbox-android-sdk:7.0.0'
implementation 'com.dropbox.core:dropbox-core-sdk:5.4.6'
implementation 'com.google.api-client:google-api-client:1.30.5'
implementation 'com.google.api-client:google-api-client-android:1.30.5'

View File

@@ -7,7 +7,6 @@ import com.dropbox.core.DbxOAuth1Upgrader;
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;
@@ -155,7 +154,7 @@ public class DropboxV2Storage extends JavaFileStorageBase
{
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);

View File

@@ -304,11 +304,6 @@ public class WebDavStorage extends JavaFileStorageBase {
//relative path:
e.path = buildPathFromHref(parentPath, r.href);
}
if ( (parentPath.indexOf("@") != -1) && (e.path.indexOf("@") == -1))
{
//username/password not contained in .href response. Add it back from parentPath:
e.path = parentPath.substring(0, parentPath.indexOf("@")+1) + e.path.substring(e.path.indexOf("://")+3);
}
if ((depth == 1) && e.isDirectory)
{

View File

@@ -356,13 +356,7 @@ public class KP2AKeyboard extends InputMethodService
pFilter.addAction("android.intent.action.PACKAGE_ADDED");
pFilter.addAction("android.intent.action.PACKAGE_REPLACED");
pFilter.addAction("android.intent.action.PACKAGE_REMOVED");
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
registerReceiver(mPluginManager, pFilter, RECEIVER_EXPORTED);
}
else
{
registerReceiver(mPluginManager, pFilter);
}
registerReceiver(mPluginManager, pFilter);
LatinIMEUtil.GCUtils.getInstance().reset();
@@ -381,28 +375,16 @@ public class KP2AKeyboard extends InputMethodService
// register to receive ringer mode changes for silent mode
IntentFilter filter = new IntentFilter(AudioManager.RINGER_MODE_CHANGED_ACTION);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
registerReceiver(mSilentModeReceiver, filter, RECEIVER_EXPORTED);
}
else
{
registerReceiver(mSilentModeReceiver, filter);
}
registerReceiver(mSilentModeReceiver, filter);
prefs.registerOnSharedPreferenceChangeListener(this);
//check if we have KP2A data available:
mHadKp2aData = mShowKp2aKeyboard = KeyboardData.hasData();
mHadKp2aData = mShowKp2aKeyboard = keepass2android.kbbridge.KeyboardData.hasData();
mClearKeyboardReceiver = new ClearKeyboardBroadcastReceiver();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
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));
registerReceiver(mClearKeyboardReceiver, new IntentFilter(get_KEEPASS2ANDROID_KEYBOARD_CLEARED(this)));
android.util.Log.d("KP2AK", "registered receiver for clear keyboard broadcast: "+get_KEEPASS2ANDROID_KEYBOARD_CLEARED(this));
}

View File

@@ -19,7 +19,7 @@
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<!-- Title for Latin keyboard -->
<string name="english_ime_name">Keepass2Android-Tastatur</string>
<string name="english_ime_name">KeePass2Android-Tastatur</string>
<!-- Title for Latin keyboard settings activity / dialog -->
<string name="english_ime_settings">Android-Tastatureinstellungen</string>
<!-- Title for Latin keyboard input options dialog -->
@@ -49,7 +49,7 @@
<!-- Description for text prediction -->
<string name="prediction_summary">Automatische Vervollständigung während der Eingabe aktivieren</string>
<!-- Dialog title for auto complete choices -->
<string name="auto_complete_dialog_title">Autovervollständigung</string>
<string name="auto_complete_dialog_title">Automatische. Vervollständigung </string>
<!-- Option to enable text prediction in landscape -->
<string name="prediction_landscape">Textfeld vergrößern</string>
<!-- Description for text prediction -->
@@ -62,7 +62,7 @@
<string name="auto_punctuate">Autom. Zeichensetzung</string>
<!-- Description for auto punctuate -->
<!-- Option to enable quick fixes -->
<string name="quick_fixes">Schnelle Korrektur</string>
<string name="quick_fixes">Schnelle Fixierung</string>
<!-- Description for quick fixes -->
<string name="quick_fixes_summary">Korrigiert gängige Tippfehler</string>
<!-- Option to enable showing suggestions -->
@@ -112,7 +112,7 @@
<!-- Tip to long press on typed word to add to dictionary -->
<string name="tip_add_to_dictionary">Lange auf das Wort ganz links außen drücken, um es zum Wörterbuch hinzuzufügen</string>
<!-- Instruction to touch the bubble to continue -->
<string name="touch_to_continue">Diesen Hinweis antippen, um fortzufahren.»</string>
<string name="touch_to_continue">Diesen Hinweis berühren, um fortzufahren.»</string>
<!-- Instruction to touch the bubble to start typing -->
<string name="touch_to_finish">Hier berühren, um diesen Hinweis zu schließen und mit dem Tippen zu beginnen!</string>
<!-- Tutorial tip 1 - The keyboard opens any time you touch a text field -->
@@ -138,7 +138,7 @@
<!-- Label for "switch to symbols" key. Must be short to fit on key! -->
<string name="label_symbol_key">\?123</string>
<!-- Label for "switch to numeric" key. Must be short to fit on key! -->
<string name="label_phone_key">123</string>
<string name="label_phone_key">Nummer</string>
<!-- Label for "switch to alphabetic" key. Must be short to fit on key! -->
<string name="label_alpha_key">ABC</string>
<!-- Label for ALT modifier key. Must be short to fit on key! -->
@@ -161,7 +161,7 @@
"Swipe across keyboard to speak"). Also shown when enabling settings. -->
<string name="voice_hint_dialog_message">Um die Spracheingabe zu verwenden, drücken Sie die Mikrofontaste oder ziehen Sie Ihren Finger über die Bildschirmtastatur.</string>
<!-- Short message to tell the user the system is ready for them to speak. -->
<string name="voice_listening">Jetzt sprechen</string>
<string name="voice_listening">Sprechen Sie jetzt</string>
<!-- Short message shown after the user finishes speaking. -->
<string name="voice_working">Vorgang läuft</string>
<!-- Short message shown before the user should speak. -->
@@ -186,7 +186,7 @@
<!-- Short hint shown in candidate view to explain voice input. -->
<string name="voice_swipe_hint"><b>„Hinweis:“</b>„ Ziehen Sie zum Sprechen den Finger über die Tastatur.“</string>
<!-- Short hint shown in candidate view to explain that user can speak punctuation. -->
<string name="voice_punctuation_hint"><b>Hinweis: </b>Versuche beim nächsten Mal, Satzzeichen wie „Punkt“, „Komma“ oder „Fragezeichen“ per Sprachbefehl einzugeben.</string>
<string name="voice_punctuation_hint"><b>Hinweis: </b>Versuchen Sie beim nächsten Mal, Satzzeichen wie „Punkt“, „Komma“ oder „Fragezeichen“ per Sprachbefehl einzugeben.</string>
<!-- Label on button to stop recognition. Must be short to fit on button. -->
<string name="cancel">Abbrechen</string>
<!-- Label on button when an error occurs -->
@@ -216,7 +216,7 @@
<!-- appears above image showing the user to click on a TextView to show the IME -->
<string name="open_the_keyboard"><font size="17"><b>„Tastatur öffnen“\n</b></font><font size="3">\n</font>„Berühren Sie ein beliebiges Textfeld.“</string>
<!-- appears above the image showing the back button used to close the keyboard -->
<string name="close_the_keyboard"><font size="17"><b>Tastatur schließen\n</b></font><font size="3">\n</font>Drücken die Zurück-Taste.</string>
<string name="close_the_keyboard"><font size="17"><b>Tastatur schließen\n</b></font><font size="3">\n</font>Drücken Sie die Zurück-Taste.</string>
<!-- appears above image showing how to use touch and hold -->
<string name="touch_and_hold"><font size="17"><b>„Für Optionen eine Taste berühren und gedrückt halten“\n</b></font><font size="3">\n</font>„Greifen Sie auf Satzzeichen und Akzente zu.“</string>
<!-- appears above image showing how to access keyboard settings -->

View File

@@ -56,7 +56,7 @@
<string name="afc_title_sort_by">Sortieren nach…</string>
<string name="afc_yesterday">Gestern</string>
<plurals name="afc_title_choose_directories">
<item quantity="one">Ordner wählen…</item>
<item quantity="one">Ordner wählen </item>
<item quantity="other">Verzeichnisse wählen</item>
</plurals>
<plurals name="afc_title_choose_files">
@@ -64,7 +64,7 @@
<item quantity="other">Dateien wählen …</item>
</plurals>
<plurals name="afc_title_choose_files_directories">
<item quantity="one">Datei/Ordner wählen…</item>
<item quantity="one">Datei/Ordner wählen </item>
<item quantity="other">Dateien/Ordner wählen …</item>
</plurals>
</resources>

View File

@@ -1,10 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="about_feedback">Feedback</string>
<string name="AboutText">Keepass2Android ist ein Passwortmanager, der KeePass 2.x-Datenbanken verwalten kann.</string>
<string name="AboutText">Keepass2Android ist ein Passwortmanager mit Lese- und Schreib-Zugriff auf KeePass 2.x Datenbanken.</string>
<string name="CreditsText">Die Benutzeroberfläche basiert auf einem Port von Keepassdroid (entwickelt von Brian Pellin) nach Mono for Android. Der Code für die Datenbank-Operationen nutzt eine angepasste Version einer Bibliothek aus KeePass (entwickelt von Dominik Reichl).
Der Android Robot wird genutzt und wurde modifiziert basierend auf Arbeiten, die Google durchgeführt und zur Verfügung gestellt hat; er wird nach den Bedingungen der Creative Commons 3.0 Attribution License genutzt.</string>
<string name="CreditsTextSFTP">SFTP-Unterstützung ist implementiert unter Verwendung der JSch-Bibliothekvmit BSD-Lizenz der Fa. JCraft Inc.</string>
<string name="CreditsTextSFTP">SFTP-Unterstützung ist implementiert unter Nutzung der JSch-Bibliothek (BSD-Lizenz), erstellt durch JCraft, Inc.</string>
<string name="CreditsIcons">Das Hammer-Icon wurde von John Caserta (Noun Project) erstellt. Das Pinguin-Icon wurde von Adriano Emerick (Noun Project) erstellt. Das Feder-Icon wurde von Jon Testa (Noun Project) erstellt. Das Apfel-Icon wurde von Ava Rowell (Noun Project) erstellt. Das Bild-Icon stammt von https://icons8.com/icon/5570/Picture.</string>
<string name="accept">Akzeptieren</string>
<string name="deny">Verweigern</string>
@@ -28,7 +28,7 @@ Der Android Robot wird genutzt und wurde modifiziert basierend auf Arbeiten, die
<string name="application">Anwendung</string>
<string name="application_settings">Anwendungseinstellungen</string>
<string name="ShowGroupnameInSearchResult_title">Gruppennamen im Suchergebnis anzeigen</string>
<string name="ShowGroupnameInSearchResult_resume">Gruppennamen unter den Eintragstiteln im Suchergebnis anzeigen. Nützlich, wenn es mehrere Einträge mit demselben Namen gibt.</string>
<string name="ShowGroupnameInSearchResult_resume">Gruppennamen unter den Eintragstiteln im Suchergebnis anzeigen. Nützlich, wenn es mehrere Einträge mit dem selben Namen gibt.</string>
<string name="NavigationToGroupCompleted_message">Angezeigte Gruppe ist jetzt: %1$s</string>
<string name="AutofillDisabledQueriesPreference_title">Deaktivierte AutoFill-Ziele</string>
<string name="AutofillDisabledQueriesPreference_summary">Zeigt eine Liste von Apps und Webseiten, für die AutoFill deaktiviert ist.</string>
@@ -123,7 +123,7 @@ Der Android Robot wird genutzt und wurde modifiziert basierend auf Arbeiten, die
<string name="entry_extra_strings">Zusätzliche Felder</string>
<string name="entry_binaries">Datei-Anhänge</string>
<string name="entry_history">Vorherige Versionen</string>
<string name="error_can_not_handle_uri">Keepass2Android kann diese URI nicht verarbeiten.</string>
<string name="error_can_not_handle_uri">Keepass2Android kann diese Adresse nicht verarbeiten.</string>
<string name="error_could_not_create_group">Fehler beim Erstellen der Gruppe.</string>
<string name="error_could_not_create_parent">Verzeichnis konnte nicht erstellt werden.</string>
<string name="error_database_exists">Diese Datei existiert bereits.</string>
@@ -1134,8 +1134,8 @@ Erstes öffentliches Release</string>
<string name="backup_infotext_head">Gibt es eine Sicherung der Datenbank?</string>
<string name="backup_infotext_main">Keepass2Android speichert die Passwörter in einer Datei an einem frei wählbarem Speicherort.Ist sichergestellt, dass die Datei auch dann noch verfügbar ist, wenn das Telefon verloren geht oder gestohlen wird, oder wenn die Datei zerstört oder gelöscht wird? Bitte sicherstellen, dass immer eine aktuelle Kopie an einem sichern Ort aufbewahrt wird!</string>
<string name="backup_infotext_note">Um jetzt eine Sicherung zu erstellen, nach %1$s &gt; %2$s &gt; %3$s gehen.</string>
<string name="emergency_infotext_head">Hast du für Notfälle vorgesorgt?</string>
<string name="emergency_infotext_main">Hast du je darüber nachgedacht, was passiert, wenn du nicht mehr auf deine Passwort-Datenbank zugreifen kannst? Was, wenn du einen Unfall hast? Ein bewährtes Verfahren ist, einer vertrauenswürdigen Person dein Masterpasswort für Notfälle mitzuteilen. Ansonsten wird niemand auf deine Passwörter Zugriff haben.</string>
<string name="emergency_infotext_head">Ist man auf Notfälle vorbereitet?</string>
<string name="emergency_infotext_main">Wurde schon einmal darüber nachgedacht, was passiert, wenn man keinen Zugriff mehr zu seiner Passwortdatenbank hat? Was ist, wenn man einen Unfall hat? Es ist eine vernünftige Maßnahme, den Hauptschlüssel für Notfälle an eine vertrauenswürdige Person weiterzugeben. Andernfalls hat niemand Zugang zu den Passwörtern.</string>
<string name="no_secure_display">Der aktuell gültige Bildschirm ist nicht als sicher eingestuft. Das bedeutet, dass Bildschirmfotos von anderen Anwendungen erstellt werden könnten. Keepass2Android ist so konfiguriert, dass sensible Informationen nur auf sicheren Bildschirmen angezeigt werden. Bitte zu einem sicheren Bildschirm wechseln (z. B. durch Abklemmen eines HDMI-Monitors) oder die App-Einstellungen ändern.</string>
<string name="disable_secure_screen_check">Diese Nachricht deaktivieren</string>
<string name="switch_ime_text">Bitte die Keepass2Android-Tastatur aktivieren.</string>
@@ -1144,7 +1144,5 @@ Erstes öffentliches Release</string>
<string name="AutofillWarning_Intro">Hiermit werden Anmeldeinformationen für die Domäne „%1$s“ in die Anwendung „%2$s“ eingefügt.</string>
<string name="AutofillWarning_FillDomainInUntrustedApp">Wenn darauf vertraut wird, dass „%2$s“ zu „%1$s“ gehört, oder wenn darauf vertraut wird, dass die App „%2$s“ die Anmeldeinformationen nicht missbraucht (z. B. weil es sich um eine vertrauenswürdige Browser-App handelt), kann fortgefahren werden. Falls nicht, bitte abbrechen.</string>
<string name="AutofillWarning_trustAsBrowser">Für „%1$s“ immer akzeptieren</string>
<string name="kp2a_switch_on_sendgodone">Tastatur zurückwechseln wenn fertig</string>
<string name="kp2a_switch_on_sendgodone_summary">Beim Drücken von Senden/Los/Fertig zurückschalten</string>
<string name="english_ime_settings">Android-Tastatureinstellungen</string>
</resources>

View File

@@ -14,11 +14,9 @@ using Android.Runtime;
using Android.Text;
using Android.Text.Method;
using Android.Text.Util;
using Android.Util;
using Android.Views;
using Android.Webkit;
using Android.Widget;
using AndroidX.Core.Content;
using Google.Android.Material.Dialog;
using keepass2android;
@@ -31,16 +29,7 @@ namespace keepass2android
MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(ctx);
builder.SetTitle(ctx.GetString(Resource.String.ChangeLog_title));
List<string> changeLog = new List<string>{
BuildChangelogString(ctx, new List<int>{Resource.Array.ChangeLog_1_12
#if !NoNet
,Resource.Array.ChangeLog_1_12_net
#endif
}, "1.12"),
BuildChangelogString(ctx, new List<int>{Resource.Array.ChangeLog_1_11
#if !NoNet
,Resource.Array.ChangeLog_1_11_net
#endif
}, "1.11"),
BuildChangelogString(ctx, new List<int>{Resource.Array.ChangeLog_1_11,Resource.Array.ChangeLog_1_11_net}, "1.11"),
BuildChangelogString(ctx, Resource.Array.ChangeLog_1_10, "1.10"),
BuildChangelogString(ctx, Resource.Array.ChangeLog_1_09e, "1.09e"),
BuildChangelogString(ctx, Resource.Array.ChangeLog_1_09d, "1.09d"),
@@ -110,28 +99,32 @@ namespace keepass2android
warning = ctx.GetString(Resource.String.PreviewWarning);
}
builder.SetPositiveButton(Android.Resource.String.Ok, (dlgSender, dlgEvt) => {((AndroidX.AppCompat.App.AlertDialog)dlgSender).Dismiss(); });
builder.SetPositiveButton(Android.Resource.String.Ok, (dlgSender, dlgEvt) => {((AlertDialog)dlgSender).Dismiss(); });
builder.SetCancelable(false);
WebView wv = new WebView(ctx);
wv.SetBackgroundColor(Color.White);
wv.LoadDataWithBaseURL(null, GetLog(changeLog, warning, ctx), "text/html", "UTF-8", null);
//builder.SetMessage("");
builder.SetView(wv);
Dialog dialog = builder.Create();
dialog.DismissEvent += (sender, e) =>
dialog.DismissEvent += (sender, e) =>
{
onDismiss();
};
wv.SetBackgroundColor(Color.Transparent);
wv.LoadDataWithBaseURL(null, GetLog(changeLog, warning, dialog.Context), "text/html", "UTF-8", null);
dialog.Show();
/*TextView message = (TextView)dialog.FindViewById(Android.Resource.Id.Message);
message.TextFormatted = Html.FromHtml(ConcatChangeLog(ctx, changeLog.ToArray()));
message.AutoLinkMask=MatchOptions.WebUrls;*/
dialog.Show();
}
private static string BuildChangelogString(Context ctx, int changeLogResId, string version)
private static string BuildChangelogString(Context ctx, int changeLogResId, string version)
{
return BuildChangelogString(ctx, new List<int>() { changeLogResId }, version);
@@ -157,44 +150,32 @@ namespace keepass2android
}
private const string HtmlEnd = @"</body>
</html>";
private static string GetLog(List<string> changeLog, string warning, Context ctx)
{
string secondaryColor = "31628D";
string onSurfaceColor = "171D1E";
if (((int)ctx.Resources.Configuration.UiMode & (int)UiMode.NightMask) == (int)UiMode.NightYes)
{
secondaryColor = "99CBFF";
onSurfaceColor = "E1E4D6";
}
string HtmlStart = @"<html>
private const string HtmlStart = @"<html>
<head>
<style type='text/css'>
a { color:#"+ onSurfaceColor + @" }
a { color:#000000 }
div.title {
color:"+ secondaryColor+@";
color:287AA9;
font-size:1.2em;
font-weight:bold;
margin-top:1em;
margin-bottom:0.5em;
text-align:center }
div.subtitle {
color:"+ secondaryColor+@";
color:287AA9;
font-size:0.8em;
margin-bottom:1em;
text-align:center }
div.freetext { color:#"+ onSurfaceColor + @" }
div.list { color:#"+ onSurfaceColor + @" }
div.freetext { color:#000000 }
div.list { color:#000000 }
</style>
</head>
<body>";
StringBuilder sb = new StringBuilder(HtmlStart);
private const string HtmlEnd = @"</body>
</html>";
private static string GetLog(List<string> changeLog, string warning, Context ctx)
{
StringBuilder sb = new StringBuilder(HtmlStart);
if (!string.IsNullOrEmpty(warning))
{
sb.Append(warning);

View File

@@ -53,7 +53,6 @@ using keepass2android.fileselect;
using KeeTrayTOTP.Libraries;
using Boolean = Java.Lang.Boolean;
using Android.Util;
using AndroidX.Core.Content;
using Google.Android.Material.Dialog;
using keepass2android;
@@ -492,9 +491,9 @@ namespace keepass2android
App.Kp2a.LastOpenedEntry = new PwEntryOutput(Entry, App.Kp2a.CurrentDb);
_pluginActionReceiver = new PluginActionReceiver(this);
ContextCompat.RegisterReceiver(this, _pluginActionReceiver, new IntentFilter(Strings.ActionAddEntryAction), (int)ReceiverFlags.Exported);
RegisterReceiver(_pluginActionReceiver, new IntentFilter(Strings.ActionAddEntryAction), ReceiverFlags.Exported);
_pluginFieldReceiver = new PluginFieldReceiver(this);
ContextCompat.RegisterReceiver(this, _pluginFieldReceiver, new IntentFilter(Strings.ActionSetEntryField), (int)ReceiverFlags.Exported);
RegisterReceiver(_pluginFieldReceiver, new IntentFilter(Strings.ActionSetEntryField), ReceiverFlags.Exported);
var notifyPluginsOnOpenThread = new Thread(NotifyPluginsOnOpen);
notifyPluginsOnOpenThread.Start();

View File

@@ -21,7 +21,6 @@ using Android.OS;
using Android.Preferences;
using Android.Runtime;
using Android.Views;
using AndroidX.Core.Content;
using KeePassLib.Serialization;
namespace keepass2android
@@ -70,7 +69,7 @@ namespace keepass2android
IntentFilter filter = new IntentFilter();
filter.AddAction(Intents.DatabaseLocked);
filter.AddAction(Intent.ActionScreenOff);
ContextCompat.RegisterReceiver(this, _intentReceiver, filter, (int)ReceiverFlags.Exported);
RegisterReceiver(_intentReceiver, filter, ReceiverFlags.Exported);
}
protected override void OnDestroy()

View File

@@ -21,7 +21,6 @@ using Android.OS;
using Android.Preferences;
using Android.Runtime;
using Android.Views;
using AndroidX.Core.Content;
using KeePassLib.Serialization;
namespace keepass2android
@@ -56,7 +55,7 @@ namespace keepass2android
filter.AddAction(Intents.DatabaseLocked);
filter.AddAction(Intent.ActionScreenOff);
ContextCompat.RegisterReceiver(this, _intentReceiver, filter, (int)ReceiverFlags.Exported);
RegisterReceiver(_intentReceiver, filter, ReceiverFlags.Exported);
}

View File

@@ -18,7 +18,6 @@ This file is part of Keepass2Android, Copyright 2013 Philipp Crocoll. This file
using System;
using Android.Content;
using Android.OS;
using AndroidX.Core.Content;
using KeePassLib.Serialization;
namespace keepass2android
@@ -40,7 +39,7 @@ namespace keepass2android
_intentReceiver = new LockCloseActivityBroadcastReceiver(this);
IntentFilter filter = new IntentFilter();
filter.AddAction(Intents.DatabaseLocked);
ContextCompat.RegisterReceiver(this, _intentReceiver, filter, (int)ReceiverFlags.Exported);
RegisterReceiver(_intentReceiver, filter, ReceiverFlags.Exported);
}
protected override void OnResume() {

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
android:versionCode="201"
android:versionName="1.12-r0"
android:versionCode="200"
android:versionName="1.11-r0"
package="keepass2android.keepass2android"
xmlns:tools="http://schemas.android.com/tools"
android:installLocation="auto">

View File

@@ -65,7 +65,6 @@ using Enum = System.Enum;
using Exception = System.Exception;
using String = System.String;
using Toolbar = AndroidX.AppCompat.Widget.Toolbar;
using AndroidX.Core.Content;
namespace keepass2android
{
@@ -648,7 +647,7 @@ namespace keepass2android
_intentReceiver = new PasswordActivityBroadcastReceiver(this);
IntentFilter filter = new IntentFilter();
filter.AddAction(Intent.ActionScreenOff);
ContextCompat.RegisterReceiver(this, _intentReceiver, filter, (int)ReceiverFlags.Exported);
RegisterReceiver(_intentReceiver, filter, ReceiverFlags.Exported);
//use FlagSecure to make sure the last (revealed) character of the master password is not visible in recent apps

View File

@@ -34,7 +34,6 @@ using keepass2android;
using KeePassLib;
using KeePassLib.Serialization;
using Toolbar = AndroidX.AppCompat.Widget.Toolbar;
using AndroidX.Core.Content;
namespace keepass2android
{
@@ -154,7 +153,7 @@ namespace keepass2android
_intentReceiver = new QuickUnlockBroadcastReceiver(this);
IntentFilter filter = new IntentFilter();
filter.AddAction(Intents.DatabaseLocked);
ContextCompat.RegisterReceiver(this, _intentReceiver, filter, (int)ReceiverFlags.Exported);
RegisterReceiver(_intentReceiver, filter, ReceiverFlags.Exported);
Util.SetNoPersonalizedLearning(FindViewById<EditText>(Resource.Id.QuickUnlock_password));

Some files were not shown because too many files have changed in this diff Show More