From e5dea1895dcfe4403806aec9867dc062ae321b8a Mon Sep 17 00:00:00 2001 From: Philipp Crocoll Date: Mon, 10 Mar 2014 08:02:01 +0100 Subject: [PATCH] Clear clipboard when CopyToClipboardService is stopped (e.g. due to lock database) -> https://keepass2android.codeplex.com/workitem/162 --- .../services/CopyToClipboardService.cs | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/keepass2android/services/CopyToClipboardService.cs b/src/keepass2android/services/CopyToClipboardService.cs index a1289883..fbb95fef 100644 --- a/src/keepass2android/services/CopyToClipboardService.cs +++ b/src/keepass2android/services/CopyToClipboardService.cs @@ -139,6 +139,11 @@ namespace keepass2android _numElementsToWaitFor= 0; ClearKeyboard(true); } + if (_clearClipboardTask != null) + { + Kp2aLog.Log("Clearing clipboard due to stop CopyToClipboardService"); + _clearClipboardTask.Run(); + } Kp2aLog.Log("Destroyed Show-Notification-Receiver."); @@ -350,10 +355,11 @@ namespace keepass2android String sClipClear = prefs.GetString(GetString(Resource.String.clipboard_timeout_key), GetString(Resource.String.clipboard_timeout_default)); long clipClearTime = long.Parse(sClipClear); - + + _clearClipboardTask = new ClearClipboardTask(this, text, _uiThreadCallback); if ( clipClearTime > 0 ) { _numElementsToWaitFor++; - _timer.Schedule(new ClearClipboardTask(this, text, _uiThreadCallback), clipClearTime); + _timer.Schedule(_clearClipboardTask, clipClearTime); } } @@ -385,6 +391,7 @@ namespace keepass2android // Setup to allow the toast to happen in the foreground readonly Handler _uiThreadCallback = new Handler(); + private ClearClipboardTask _clearClipboardTask; private Notification GetNotification(String intentText, int descResId, int drawableResId, String entryName) { String desc = GetString(descResId);