fix 2517656 Pin/Password Unlocks place focus on the launcher screen when they shouldn't

PasswordEntryKeyboardHelper now sets the FLAG_KEEP_TOUCH_MODE flag for the events
so that the last event we process from the soft keybaord doesn't exit touch mode
and we don't erroneously go into non-touch mode since the on-screen button pressing
left us in touch mode.

Change-Id: Id2546ec3bc4b337aedb5e925de0c709ce62ea059
diff --git a/core/java/com/android/internal/widget/PasswordEntryKeyboardHelper.java b/core/java/com/android/internal/widget/PasswordEntryKeyboardHelper.java
index 28bf6bb..53720e4 100644
--- a/core/java/com/android/internal/widget/PasswordEntryKeyboardHelper.java
+++ b/core/java/com/android/internal/widget/PasswordEntryKeyboardHelper.java
@@ -106,12 +106,16 @@
         mKeyboardMode = mode;
     }
 
-    private void sendKeyEventsToTarget(int keyEventCode) {
+    private void sendKeyEventsToTarget(int character) {
         Handler handler = mTargetView.getHandler();
         KeyEvent[] events = KeyCharacterMap.load(KeyCharacterMap.ALPHA).getEvents(
-                new char[] { (char) keyEventCode });
+                new char[] { (char) character });
         if (events != null) {
-            for (KeyEvent event : events) {
+            final int N = events.length;
+            for (int i=0; i<N; i++) {
+                KeyEvent event = events[i];
+                event = KeyEvent.changeFlags(event, event.getFlags()
+                        | KeyEvent.FLAG_SOFT_KEYBOARD | KeyEvent.FLAG_KEEP_TOUCH_MODE);
                 handler.sendMessage(handler.obtainMessage(ViewRoot.DISPATCH_KEY, event));
             }
         }