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" /> + +