am 49915373: (DO NOT MERGE) Add SpecialkeyDetector

* commit '499153734e6dcd01ae9630bf423fadd25628339c':
  (DO NOT MERGE) Add SpecialkeyDetector
This commit is contained in:
Tadashi G. Takaoka 2014-08-12 10:38:46 +00:00 committed by Android Git Automerger
commit c231552563
2 changed files with 44 additions and 3 deletions

View file

@ -155,6 +155,7 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
@UsedForTesting final KeyboardSwitcher mKeyboardSwitcher; @UsedForTesting final KeyboardSwitcher mKeyboardSwitcher;
private final SubtypeSwitcher mSubtypeSwitcher; private final SubtypeSwitcher mSubtypeSwitcher;
private final SubtypeState mSubtypeState = new SubtypeState(); private final SubtypeState mSubtypeState = new SubtypeState();
private final SpecialKeyDetector mSpecialKeyDetector = new SpecialKeyDetector();
// Object for reacting to adding/removing a dictionary pack. // Object for reacting to adding/removing a dictionary pack.
private final BroadcastReceiver mDictionaryPackInstallReceiver = private final BroadcastReceiver mDictionaryPackInstallReceiver =
@ -1589,6 +1590,7 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
// Hooks for hardware keyboard // Hooks for hardware keyboard
@Override @Override
public boolean onKeyDown(final int keyCode, final KeyEvent keyEvent) { public boolean onKeyDown(final int keyCode, final KeyEvent keyEvent) {
mSpecialKeyDetector.onKeyDown(keyEvent);
if (!ProductionFlags.IS_HARDWARE_KEYBOARD_SUPPORTED) { if (!ProductionFlags.IS_HARDWARE_KEYBOARD_SUPPORTED) {
return super.onKeyDown(keyCode, keyEvent); return super.onKeyDown(keyCode, keyEvent);
} }
@ -1608,12 +1610,16 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
} }
@Override @Override
public boolean onKeyUp(final int keyCode, final KeyEvent event) { public boolean onKeyUp(final int keyCode, final KeyEvent keyEvent) {
final long keyIdentifier = event.getDeviceId() << 32 + event.getKeyCode(); mSpecialKeyDetector.onKeyUp(keyEvent);
if (!ProductionFlags.IS_HARDWARE_KEYBOARD_SUPPORTED) {
return super.onKeyUp(keyCode, keyEvent);
}
final long keyIdentifier = keyEvent.getDeviceId() << 32 + keyEvent.getKeyCode();
if (mInputLogic.mCurrentlyPressedHardwareKeys.remove(keyIdentifier)) { if (mInputLogic.mCurrentlyPressedHardwareKeys.remove(keyIdentifier)) {
return true; return true;
} }
return super.onKeyUp(keyCode, event); return super.onKeyUp(keyCode, keyEvent);
} }
// onKeyDown and onKeyUp are the main events we are interested in. There are two more events // onKeyDown and onKeyUp are the main events we are interested in. There are two more events

View file

@ -0,0 +1,35 @@
/*
* Copyright (C) 2014, The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.android.inputmethod.latin;
import android.view.KeyEvent;
final class SpecialKeyDetector {
/**
* Record a down key event.
* @param keyEvent a down key event.
*/
public void onKeyDown(final KeyEvent keyEvent) {
}
/**
* Record an up key event.
* @param keyEvent an up key event.
*/
public void onKeyUp(final KeyEvent keyEvent) {
}
}