diff --git a/src/keepass2android/LockCloseActivity.cs b/src/keepass2android/LockCloseActivity.cs
index a1d90955..073df592 100644
--- a/src/keepass2android/LockCloseActivity.cs
+++ b/src/keepass2android/LockCloseActivity.cs
@@ -45,6 +45,7 @@ namespace keepass2android
_intentReceiver = new LockCloseActivityBroadcastReceiver(this);
IntentFilter filter = new IntentFilter();
filter.AddAction(Intents.DatabaseLocked);
+ filter.AddAction(Intent.ActionScreenOff);
RegisterReceiver(_intentReceiver, filter);
}
@@ -102,6 +103,9 @@ namespace keepass2android
case Intents.DatabaseLocked:
_service.OnLockDatabase();
break;
+ case Intent.ActionScreenOff:
+ App.Kp2a.OnScreenOff();
+ break;
}
}
}
diff --git a/src/keepass2android/LockCloseListActivity.cs b/src/keepass2android/LockCloseListActivity.cs
index dae9f657..41295718 100644
--- a/src/keepass2android/LockCloseListActivity.cs
+++ b/src/keepass2android/LockCloseListActivity.cs
@@ -18,6 +18,7 @@ This file is part of Keepass2Android, Copyright 2013 Philipp Crocoll. This file
using System;
using Android.Content;
using Android.OS;
+using Android.Preferences;
using Android.Runtime;
using KeePassLib.Serialization;
@@ -43,7 +44,9 @@ namespace keepass2android
_intentReceiver = new LockCloseListActivityBroadcastReceiver(this);
IntentFilter filter = new IntentFilter();
+
filter.AddAction(Intents.DatabaseLocked);
+ filter.AddAction(Intent.ActionScreenOff);
RegisterReceiver(_intentReceiver, filter);
}
@@ -95,6 +98,9 @@ namespace keepass2android
case Intents.DatabaseLocked:
_service.OnLockDatabase();
break;
+ case Intent.ActionScreenOff:
+ App.Kp2a.OnScreenOff();
+ break;
}
}
}
diff --git a/src/keepass2android/Resources/values/config.xml b/src/keepass2android/Resources/values/config.xml
index c10bdfff..351a1c12 100644
--- a/src/keepass2android/Resources/values/config.xml
+++ b/src/keepass2android/Resources/values/config.xml
@@ -87,6 +87,7 @@
LastInfoVersion
UseFileTransactions
+ LockWhenScreenOff
UseOfflineCache
CheckForFileChangesOnSave
diff --git a/src/keepass2android/Resources/values/strings.xml b/src/keepass2android/Resources/values/strings.xml
index ce77afef..2fcee608 100644
--- a/src/keepass2android/Resources/values/strings.xml
+++ b/src/keepass2android/Resources/values/strings.xml
@@ -235,6 +235,8 @@
Enter server credentials
File transactions
Use file transactions for writing databases
+ Lock when screen off
+ Lock the database when screen is switched off.
Database caching
Keep a copy of remote database files in the application cache directory. This allows to use remote databases even when offline.
Clear cache?
diff --git a/src/keepass2android/Resources/xml/preferences.xml b/src/keepass2android/Resources/xml/preferences.xml
index a5627a3a..1e28479c 100644
--- a/src/keepass2android/Resources/xml/preferences.xml
+++ b/src/keepass2android/Resources/xml/preferences.xml
@@ -73,10 +73,18 @@
android:dialogTitle="@string/app_timeout"
android:defaultValue="@string/clipboard_timeout_default"/>
+ android:enabled="true"
+ android:persistent="true"
+ android:summary="@string/LockWhenScreenOff_summary"
+ android:defaultValue="false"
+ android:title="@string/LockWhenScreenOff_title"
+ android:key="@string/LockWhenScreenOff_key" />
+
+