Merge branch 'password-hint-fix' into i18n-fix
This commit is contained in:
@@ -491,9 +491,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));
|
RegisterReceiver(_pluginActionReceiver, new IntentFilter(Strings.ActionAddEntryAction), ReceiverFlags.Exported);
|
||||||
_pluginFieldReceiver = new PluginFieldReceiver(this);
|
_pluginFieldReceiver = new PluginFieldReceiver(this);
|
||||||
RegisterReceiver(_pluginFieldReceiver, new IntentFilter(Strings.ActionSetEntryField));
|
RegisterReceiver(_pluginFieldReceiver, new IntentFilter(Strings.ActionSetEntryField), ReceiverFlags.Exported);
|
||||||
|
|
||||||
var notifyPluginsOnOpenThread = new Thread(NotifyPluginsOnOpen);
|
var notifyPluginsOnOpenThread = new Thread(NotifyPluginsOnOpen);
|
||||||
notifyPluginsOnOpenThread.Start();
|
notifyPluginsOnOpenThread.Start();
|
||||||
|
|||||||
@@ -69,7 +69,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);
|
RegisterReceiver(_intentReceiver, filter, ReceiverFlags.Exported);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void OnDestroy()
|
protected override void OnDestroy()
|
||||||
|
|||||||
@@ -55,7 +55,7 @@ namespace keepass2android
|
|||||||
|
|
||||||
filter.AddAction(Intents.DatabaseLocked);
|
filter.AddAction(Intents.DatabaseLocked);
|
||||||
filter.AddAction(Intent.ActionScreenOff);
|
filter.AddAction(Intent.ActionScreenOff);
|
||||||
RegisterReceiver(_intentReceiver, filter);
|
RegisterReceiver(_intentReceiver, filter, ReceiverFlags.Exported);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -39,7 +39,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);
|
RegisterReceiver(_intentReceiver, filter, ReceiverFlags.Exported);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void OnResume() {
|
protected override void OnResume() {
|
||||||
|
|||||||
@@ -43,7 +43,7 @@
|
|||||||
</queries>
|
</queries>
|
||||||
|
|
||||||
|
|
||||||
<uses-sdk android:minSdkVersion="21" android:targetSdkVersion="33" />
|
<uses-sdk android:minSdkVersion="21" android:targetSdkVersion="34" />
|
||||||
<permission android:description="@string/permission_desc2" android:icon="@drawable/ic_notify_locked" android:label="KP2A entry search" android:name="keepass2android.keepass2android_debug.permission.KP2aInternalSearch" android:protectionLevel="signature" />
|
<permission android:description="@string/permission_desc2" android:icon="@drawable/ic_notify_locked" android:label="KP2A entry search" android:name="keepass2android.keepass2android_debug.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_debug.permission.Kp2aChooseAutofill" android:protectionLevel="signature" />
|
<permission android:description="@string/permission_desc3" android:icon="@drawable/ic_launcher" android:label="KP2A choose autofill dataset" android:name="keepass2android.keepass2android_debug.permission.Kp2aChooseAutofill" android:protectionLevel="signature" />
|
||||||
<application
|
<application
|
||||||
@@ -256,6 +256,7 @@ The scheme=file is still there for old OS devices. It's also queried by apps lik
|
|||||||
<uses-permission android:name="android.permission.INTERNET" />
|
<uses-permission android:name="android.permission.INTERNET" />
|
||||||
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
|
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
|
||||||
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
|
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
|
||||||
|
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_SPECIAL_USE" />
|
||||||
<uses-permission android:name="android.permission.USE_CREDENTIALS" android:maxSdkVersion="22" />
|
<uses-permission android:name="android.permission.USE_CREDENTIALS" android:maxSdkVersion="22" />
|
||||||
<uses-permission android:name="android.permission.MANAGE_ACCOUNTS" android:maxSdkVersion="22" />
|
<uses-permission android:name="android.permission.MANAGE_ACCOUNTS" android:maxSdkVersion="22" />
|
||||||
<uses-permission android:name="keepass2android.keepass2android_debug.permission.KP2aInternalFileBrowsing" />
|
<uses-permission android:name="keepass2android.keepass2android_debug.permission.KP2aInternalFileBrowsing" />
|
||||||
|
|||||||
@@ -42,7 +42,7 @@
|
|||||||
<action android:name="android.intent.action.VIEW" />
|
<action android:name="android.intent.action.VIEW" />
|
||||||
</intent>
|
</intent>
|
||||||
</queries>
|
</queries>
|
||||||
<uses-sdk android:minSdkVersion="21" android:targetSdkVersion="33" />
|
<uses-sdk android:minSdkVersion="21" android:targetSdkVersion="34" />
|
||||||
|
|
||||||
<permission android:description="@string/permission_desc2" android:icon="@drawable/ic_launcher" android:label="KP2A entry search" android:name="keepass2android.keepass2android.permission.KP2aInternalSearch" android:protectionLevel="signature" />
|
<permission android:description="@string/permission_desc2" android:icon="@drawable/ic_launcher" android:label="KP2A entry search" android:name="keepass2android.keepass2android.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.permission.Kp2aChooseAutofill" android:protectionLevel="signature" />
|
<permission android:description="@string/permission_desc3" android:icon="@drawable/ic_launcher" android:label="KP2A choose autofill dataset" android:name="keepass2android.keepass2android.permission.Kp2aChooseAutofill" android:protectionLevel="signature" />
|
||||||
@@ -270,6 +270,7 @@ The scheme=file is still there for old OS devices. It's also queried by apps lik
|
|||||||
<uses-permission android:name="android.permission.INTERNET" />
|
<uses-permission android:name="android.permission.INTERNET" />
|
||||||
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
|
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
|
||||||
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
|
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
|
||||||
|
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_SPECIAL_USE" />
|
||||||
<uses-permission android:name="android.permission.USE_CREDENTIALS" android:maxSdkVersion="22" />
|
<uses-permission android:name="android.permission.USE_CREDENTIALS" android:maxSdkVersion="22" />
|
||||||
<uses-permission android:name="android.permission.MANAGE_ACCOUNTS" android:maxSdkVersion="22" />
|
<uses-permission android:name="android.permission.MANAGE_ACCOUNTS" android:maxSdkVersion="22" />
|
||||||
<uses-permission android:name="keepass2android.keepass2android.permission.KP2aInternalFileBrowsing" />
|
<uses-permission android:name="keepass2android.keepass2android.permission.KP2aInternalFileBrowsing" />
|
||||||
|
|||||||
@@ -40,7 +40,7 @@
|
|||||||
</intent>
|
</intent>
|
||||||
</queries>
|
</queries>
|
||||||
|
|
||||||
<uses-sdk android:minSdkVersion="21" android:targetSdkVersion="33" />
|
<uses-sdk android:minSdkVersion="21" android:targetSdkVersion="34" />
|
||||||
<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_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" />
|
<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
|
<application
|
||||||
|
|||||||
@@ -647,7 +647,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);
|
RegisterReceiver(_intentReceiver, filter, 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
|
||||||
|
|||||||
@@ -153,7 +153,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);
|
RegisterReceiver(_intentReceiver, filter, ReceiverFlags.Exported);
|
||||||
|
|
||||||
Util.SetNoPersonalizedLearning(FindViewById<EditText>(Resource.Id.QuickUnlock_password));
|
Util.SetNoPersonalizedLearning(FindViewById<EditText>(Resource.Id.QuickUnlock_password));
|
||||||
|
|
||||||
@@ -503,8 +503,6 @@ namespace keepass2android
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
@@ -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
|
||||||
|
|||||||
@@ -343,7 +343,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);
|
RegisterReceiver(_intentReceiver, filter, 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);
|
Context.RegisterReceiver(broadcastReceiver, intentFilter, ReceiverFlags.Exported);
|
||||||
|
|
||||||
//ZXing.Net.Mobile.Forms.Android.Platform.Init();
|
//ZXing.Net.Mobile.Forms.Android.Platform.Init();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -71,7 +71,7 @@ namespace keepass2android.services.AutofillBase
|
|||||||
static readonly HashSet<string> _trustedBrowsers = new HashSet<string>
|
static readonly HashSet<string> _trustedBrowsers = new HashSet<string>
|
||||||
{
|
{
|
||||||
"org.mozilla.firefox","org.mozilla.firefox_beta","org.mozilla.klar","org.mozilla.focus",
|
"org.mozilla.firefox","org.mozilla.firefox_beta","org.mozilla.klar","org.mozilla.focus",
|
||||||
"org.mozilla.fenix","org.mozilla.fenix.nightly","org.mozilla.reference.browser",
|
"org.mozilla.fenix","org.mozilla.reference.browser",
|
||||||
"com.android.browser","com.android.chrome","com.chrome.beta","com.chrome.dev","com.chrome.canary",
|
"com.android.browser","com.android.chrome","com.chrome.beta","com.chrome.dev","com.chrome.canary",
|
||||||
"com.google.android.apps.chrome","com.google.android.apps.chrome_dev",
|
"com.google.android.apps.chrome","com.google.android.apps.chrome_dev",
|
||||||
"com.opera.browser","com.opera.browser.beta","com.opera.mini.native","com.opera.mini.native.beta","com.opera.touch",
|
"com.opera.browser","com.opera.browser.beta","com.opera.mini.native","com.opera.mini.native.beta","com.opera.touch",
|
||||||
|
|||||||
@@ -322,7 +322,7 @@ 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);
|
RegisterReceiver(_stopOnLockBroadcastReceiver, filter, ReceiverFlags.Exported);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((intent.Action == Intents.ShowNotification) || (intent.Action == Intents.UpdateKeyboard))
|
if ((intent.Action == Intents.ShowNotification) || (intent.Action == Intents.UpdateKeyboard))
|
||||||
@@ -529,7 +529,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);
|
RegisterReceiver(_notificationDeletedBroadcastReceiver, deletefilter, ReceiverFlags.Exported);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ This file is part of Keepass2Android, Copyright 2013 Philipp Crocoll. This file
|
|||||||
using System;
|
using System;
|
||||||
using Android.App;
|
using Android.App;
|
||||||
using Android.Content;
|
using Android.Content;
|
||||||
|
using Android.Content.PM;
|
||||||
using Android.Graphics;
|
using Android.Graphics;
|
||||||
using Android.OS;
|
using Android.OS;
|
||||||
using Android.Preferences;
|
using Android.Preferences;
|
||||||
@@ -37,7 +38,9 @@ namespace keepass2android
|
|||||||
/// used by the user. This ensures the database is kept in memory (until Android kills it due to low memory).
|
/// used by the user. This ensures the database is kept in memory (until Android kills it due to low memory).
|
||||||
/// It is important to also have a foreground service also for the "unlocked" state because it's really
|
/// It is important to also have a foreground service also for the "unlocked" state because it's really
|
||||||
/// irritating if the db is closed while switching between apps.
|
/// irritating if the db is closed while switching between apps.
|
||||||
[Service]
|
[Service(ForegroundServiceType = ForegroundService.TypeSpecialUse )]
|
||||||
|
[MetaData("android.app.PROPERTY_SPECIAL_USE_FGS_SUBTYPE", Value = " This service is running as foreground service to keep the app alive even when it's not currently used by the user. This ensures the database is kept in memory (until Android kills it due to low memory). It is important to also have a foreground service also for the \"unlocked\" state because it's really irritating if the db is closed while switching between apps.")]
|
||||||
|
|
||||||
public class OngoingNotificationsService : Service
|
public class OngoingNotificationsService : Service
|
||||||
{
|
{
|
||||||
protected override void AttachBaseContext(Context baseContext)
|
protected override void AttachBaseContext(Context baseContext)
|
||||||
@@ -57,7 +60,7 @@ 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);
|
RegisterReceiver(_screenOffReceiver, filter, ReceiverFlags.Exported);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user