use of android.hardware.input.InputManager in project android_frameworks_base by ParanoidAndroid.
the class KeyCharacterMap method load.
/**
* Loads the key character maps for the keyboard with the specified device id.
*
* @param deviceId The device id of the keyboard.
* @return The associated key character map.
* @throws {@link UnavailableException} if the key character map
* could not be loaded because it was malformed or the default key character map
* is missing from the system.
*/
public static KeyCharacterMap load(int deviceId) {
final InputManager im = InputManager.getInstance();
InputDevice inputDevice = im.getInputDevice(deviceId);
if (inputDevice == null) {
inputDevice = im.getInputDevice(VIRTUAL_KEYBOARD);
if (inputDevice == null) {
throw new UnavailableException("Could not load key character map for device " + deviceId);
}
}
return inputDevice.getKeyCharacterMap();
}
use of android.hardware.input.InputManager in project platform_frameworks_base by android.
the class KeyboardUI method init.
// Shoud only be called on the handler thread
private void init() {
Context context = mContext;
mKeyboardName = context.getString(com.android.internal.R.string.config_packagedKeyboardName);
if (TextUtils.isEmpty(mKeyboardName)) {
if (DEBUG) {
Slog.d(TAG, "No packaged keyboard name given.");
}
return;
}
LocalBluetoothManager bluetoothManager = LocalBluetoothManager.getInstance(context, null);
if (bluetoothManager == null) {
if (DEBUG) {
Slog.e(TAG, "Failed to retrieve LocalBluetoothManager instance");
}
return;
}
mEnabled = true;
mCachedDeviceManager = bluetoothManager.getCachedDeviceManager();
mLocalBluetoothAdapter = bluetoothManager.getBluetoothAdapter();
mProfileManager = bluetoothManager.getProfileManager();
bluetoothManager.getEventManager().registerCallback(new BluetoothCallbackHandler());
Utils.setErrorListener(new BluetoothErrorListener());
InputManager im = context.getSystemService(InputManager.class);
im.registerOnTabletModeChangedListener(this, mHandler);
mInTabletMode = im.isInTabletMode();
processKeyboardState();
mUIHandler = new KeyboardUIHandler();
}
use of android.hardware.input.InputManager in project platform_frameworks_base by android.
the class KeyboardShortcuts method retrieveKeyCharacterMap.
/**
* Retrieves a {@link KeyCharacterMap} and assigns it to mKeyCharacterMap. If the given id is an
* existing device, that device's map is used. Otherwise, it checks first all available devices
* and if there is a full keyboard it uses that map, otherwise falls back to the Virtual
* Keyboard with its default map.
*/
private void retrieveKeyCharacterMap(int deviceId) {
final InputManager inputManager = InputManager.getInstance();
if (deviceId != -1) {
final InputDevice inputDevice = inputManager.getInputDevice(deviceId);
if (inputDevice != null) {
mKeyCharacterMap = inputDevice.getKeyCharacterMap();
return;
}
}
final int[] deviceIds = inputManager.getInputDeviceIds();
for (int i = 0; i < deviceIds.length; ++i) {
final InputDevice inputDevice = inputManager.getInputDevice(deviceIds[i]);
// resort.
if (inputDevice.getId() != -1 && inputDevice.isFullKeyboard()) {
mKeyCharacterMap = inputDevice.getKeyCharacterMap();
return;
}
}
final InputDevice inputDevice = inputManager.getInputDevice(-1);
mKeyCharacterMap = inputDevice.getKeyCharacterMap();
}
use of android.hardware.input.InputManager in project android_frameworks_base by AOSPA.
the class KeyCharacterMap method load.
/**
* Loads the key character maps for the keyboard with the specified device id.
*
* @param deviceId The device id of the keyboard.
* @return The associated key character map.
* @throws {@link UnavailableException} if the key character map
* could not be loaded because it was malformed or the default key character map
* is missing from the system.
*/
public static KeyCharacterMap load(int deviceId) {
final InputManager im = InputManager.getInstance();
InputDevice inputDevice = im.getInputDevice(deviceId);
if (inputDevice == null) {
inputDevice = im.getInputDevice(VIRTUAL_KEYBOARD);
if (inputDevice == null) {
throw new UnavailableException("Could not load key character map for device " + deviceId);
}
}
return inputDevice.getKeyCharacterMap();
}
use of android.hardware.input.InputManager in project android_frameworks_base by ResurrectionRemix.
the class Action method triggerVirtualKeypress.
public static void triggerVirtualKeypress(final int keyCode, boolean longpress) {
InputManager im = InputManager.getInstance();
long now = SystemClock.uptimeMillis();
int downflags = 0;
int upflags = 0;
if (keyCode == KeyEvent.KEYCODE_DPAD_LEFT || keyCode == KeyEvent.KEYCODE_DPAD_RIGHT || keyCode == KeyEvent.KEYCODE_DPAD_UP || keyCode == KeyEvent.KEYCODE_DPAD_DOWN) {
downflags = upflags = KeyEvent.FLAG_SOFT_KEYBOARD | KeyEvent.FLAG_KEEP_TOUCH_MODE;
} else {
downflags = upflags = KeyEvent.FLAG_FROM_SYSTEM | KeyEvent.FLAG_VIRTUAL_HARD_KEY;
}
if (longpress) {
downflags |= KeyEvent.FLAG_LONG_PRESS;
}
final KeyEvent downEvent = new KeyEvent(now, now, KeyEvent.ACTION_DOWN, keyCode, 0, 0, KeyCharacterMap.VIRTUAL_KEYBOARD, 0, downflags, InputDevice.SOURCE_KEYBOARD);
im.injectInputEvent(downEvent, InputManager.INJECT_INPUT_EVENT_MODE_ASYNC);
final KeyEvent upEvent = new KeyEvent(now, now, KeyEvent.ACTION_UP, keyCode, 0, 0, KeyCharacterMap.VIRTUAL_KEYBOARD, 0, upflags, InputDevice.SOURCE_KEYBOARD);
im.injectInputEvent(upEvent, InputManager.INJECT_INPUT_EVENT_MODE_ASYNC);
}
Aggregations