Loading core/java/android/hardware/input/IInputManager.aidl +6 −5 Original line number Original line Diff line number Diff line Loading @@ -16,6 +16,7 @@ package android.hardware.input; package android.hardware.input; import android.hardware.input.InputDeviceIdentifier; import android.hardware.input.KeyboardLayout; import android.hardware.input.KeyboardLayout; import android.hardware.input.IInputDevicesChangedListener; import android.hardware.input.IInputDevicesChangedListener; import android.os.IBinder; import android.os.IBinder; Loading @@ -41,13 +42,13 @@ interface IInputManager { // Keyboard layouts configuration. // Keyboard layouts configuration. KeyboardLayout[] getKeyboardLayouts(); KeyboardLayout[] getKeyboardLayouts(); KeyboardLayout getKeyboardLayout(String keyboardLayoutDescriptor); KeyboardLayout getKeyboardLayout(String keyboardLayoutDescriptor); String getCurrentKeyboardLayoutForInputDevice(String inputDeviceDescriptor); String getCurrentKeyboardLayoutForInputDevice(in InputDeviceIdentifier identifier); void setCurrentKeyboardLayoutForInputDevice(String inputDeviceDescriptor, void setCurrentKeyboardLayoutForInputDevice(in InputDeviceIdentifier identifier, String keyboardLayoutDescriptor); String keyboardLayoutDescriptor); String[] getKeyboardLayoutsForInputDevice(String inputDeviceDescriptor); String[] getKeyboardLayoutsForInputDevice(in InputDeviceIdentifier identifier); void addKeyboardLayoutForInputDevice(String inputDeviceDescriptor, void addKeyboardLayoutForInputDevice(in InputDeviceIdentifier identifier, String keyboardLayoutDescriptor); String keyboardLayoutDescriptor); void removeKeyboardLayoutForInputDevice(String inputDeviceDescriptor, void removeKeyboardLayoutForInputDevice(in InputDeviceIdentifier identifier, String keyboardLayoutDescriptor); String keyboardLayoutDescriptor); // Registers an input devices changed listener. // Registers an input devices changed listener. Loading core/java/android/hardware/input/InputDeviceIdentifier.aidl 0 → 100644 +19 −0 Original line number Original line Diff line number Diff line /* * Copyright (C) 2013 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 android.hardware.input; parcelable InputDeviceIdentifier; core/java/android/hardware/input/InputDeviceIdentifier.java 0 → 100644 +82 −0 Original line number Original line Diff line number Diff line /* * Copyright (C) 2013 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 android.hardware.input; import android.os.Parcel; import android.os.Parcelable; /** * Wrapper for passing identifying information for input devices. * * @hide */ public final class InputDeviceIdentifier implements Parcelable { private final String mDescriptor; private final int mVendorId; private final int mProductId; public InputDeviceIdentifier(String descriptor, int vendorId, int productId) { this.mDescriptor = descriptor; this.mVendorId = vendorId; this.mProductId = productId; } private InputDeviceIdentifier(Parcel src) { mDescriptor = src.readString(); mVendorId = src.readInt(); mProductId = src.readInt(); } @Override public int describeContents() { return 0; } @Override public void writeToParcel(Parcel dest, int flags) { dest.writeString(mDescriptor); dest.writeInt(mVendorId); dest.writeInt(mProductId); } public String getDescriptor() { return mDescriptor; } public int getVendorId() { return mVendorId; } public int getProductId() { return mProductId; } public static final Parcelable.Creator<InputDeviceIdentifier> CREATOR = new Parcelable.Creator<InputDeviceIdentifier>() { @Override public InputDeviceIdentifier createFromParcel(Parcel source) { return new InputDeviceIdentifier(source); } @Override public InputDeviceIdentifier[] newArray(int size) { return new InputDeviceIdentifier[size]; } }; } core/java/android/hardware/input/InputManager.java +42 −42 Original line number Original line Diff line number Diff line Loading @@ -26,6 +26,8 @@ import android.os.Handler; import android.os.IBinder; import android.os.IBinder; import android.os.Looper; import android.os.Looper; import android.os.Message; import android.os.Message; import android.os.Parcel; import android.os.Parcelable; import android.os.RemoteException; import android.os.RemoteException; import android.os.ServiceManager; import android.os.ServiceManager; import android.os.Vibrator; import android.os.Vibrator; Loading Loading @@ -373,20 +375,17 @@ public final class InputManager { } } /** /** * Gets the current keyboard layout descriptor for the specified input device. * Gets the current keyboard layout descriptor for the specified input * * device. * @param inputDeviceDescriptor The input device descriptor. * @return The keyboard layout descriptor, or null if no keyboard layout has been set. * * * @param identifier Identifier for the input device * @return The keyboard layout descriptor, or null if no keyboard layout has * been set. * @hide * @hide */ */ public String getCurrentKeyboardLayoutForInputDevice(String inputDeviceDescriptor) { public String getCurrentKeyboardLayoutForInputDevice(InputDeviceIdentifier identifier) { if (inputDeviceDescriptor == null) { throw new IllegalArgumentException("inputDeviceDescriptor must not be null"); } try { try { return mIm.getCurrentKeyboardLayoutForInputDevice(inputDeviceDescriptor); return mIm.getCurrentKeyboardLayoutForInputDevice(identifier); } catch (RemoteException ex) { } catch (RemoteException ex) { Log.w(TAG, "Could not get current keyboard layout for input device.", ex); Log.w(TAG, "Could not get current keyboard layout for input device.", ex); return null; return null; Loading @@ -394,28 +393,29 @@ public final class InputManager { } } /** /** * Sets the current keyboard layout descriptor for the specified input device. * Sets the current keyboard layout descriptor for the specified input * device. * <p> * <p> * This method may have the side-effect of causing the input device in question * This method may have the side-effect of causing the input device in * to be reconfigured. * question to be reconfigured. * </p> * </p> * * * @param inputDeviceDescriptor The input device descriptor. * @param identifier The identifier for the input device. * @param keyboardLayoutDescriptor The keyboard layout descriptor to use, must not be null. * @param keyboardLayoutDescriptor The keyboard layout descriptor to use, * * must not be null. * @hide * @hide */ */ public void setCurrentKeyboardLayoutForInputDevice(String inputDeviceDescriptor, public void setCurrentKeyboardLayoutForInputDevice(InputDeviceIdentifier identifier, String keyboardLayoutDescriptor) { String keyboardLayoutDescriptor) { if (inputDeviceDescriptor == null) { if (identifier == null) { throw new IllegalArgumentException("inputDeviceDescriptor must not be null"); throw new IllegalArgumentException("identifier must not be null"); } } if (keyboardLayoutDescriptor == null) { if (keyboardLayoutDescriptor == null) { throw new IllegalArgumentException("keyboardLayoutDescriptor must not be null"); throw new IllegalArgumentException("keyboardLayoutDescriptor must not be null"); } } try { try { mIm.setCurrentKeyboardLayoutForInputDevice(inputDeviceDescriptor, mIm.setCurrentKeyboardLayoutForInputDevice(identifier, keyboardLayoutDescriptor); keyboardLayoutDescriptor); } catch (RemoteException ex) { } catch (RemoteException ex) { Log.w(TAG, "Could not set current keyboard layout for input device.", ex); Log.w(TAG, "Could not set current keyboard layout for input device.", ex); Loading @@ -423,20 +423,20 @@ public final class InputManager { } } /** /** * Gets all keyboard layout descriptors that are enabled for the specified input device. * Gets all keyboard layout descriptors that are enabled for the specified * input device. * * * @param inputDeviceDescriptor The input device descriptor. * @param identifier The identifier for the input device. * @return The keyboard layout descriptors. * @return The keyboard layout descriptors. * * @hide * @hide */ */ public String[] getKeyboardLayoutsForInputDevice(String inputDeviceDescriptor) { public String[] getKeyboardLayoutsForInputDevice(InputDeviceIdentifier identifier) { if (inputDeviceDescriptor == null) { if (identifier == null) { throw new IllegalArgumentException("inputDeviceDescriptor must not be null"); throw new IllegalArgumentException("inputDeviceDescriptor must not be null"); } } try { try { return mIm.getKeyboardLayoutsForInputDevice(inputDeviceDescriptor); return mIm.getKeyboardLayoutsForInputDevice(identifier); } catch (RemoteException ex) { } catch (RemoteException ex) { Log.w(TAG, "Could not get keyboard layouts for input device.", ex); Log.w(TAG, "Could not get keyboard layouts for input device.", ex); return ArrayUtils.emptyArray(String.class); return ArrayUtils.emptyArray(String.class); Loading @@ -446,18 +446,18 @@ public final class InputManager { /** /** * Adds the keyboard layout descriptor for the specified input device. * Adds the keyboard layout descriptor for the specified input device. * <p> * <p> * This method may have the side-effect of causing the input device in question * This method may have the side-effect of causing the input device in * to be reconfigured. * question to be reconfigured. * </p> * </p> * * * @param inputDeviceDescriptor The input device descriptor. * @param identifier The identifier for the input device. * @param keyboardLayoutDescriptor The descriptor of the keyboard layout to add. * @param keyboardLayoutDescriptor The descriptor of the keyboard layout to * * add. * @hide * @hide */ */ public void addKeyboardLayoutForInputDevice(String inputDeviceDescriptor, public void addKeyboardLayoutForInputDevice(InputDeviceIdentifier identifier, String keyboardLayoutDescriptor) { String keyboardLayoutDescriptor) { if (inputDeviceDescriptor == null) { if (identifier == null) { throw new IllegalArgumentException("inputDeviceDescriptor must not be null"); throw new IllegalArgumentException("inputDeviceDescriptor must not be null"); } } if (keyboardLayoutDescriptor == null) { if (keyboardLayoutDescriptor == null) { Loading @@ -465,7 +465,7 @@ public final class InputManager { } } try { try { mIm.addKeyboardLayoutForInputDevice(inputDeviceDescriptor, keyboardLayoutDescriptor); mIm.addKeyboardLayoutForInputDevice(identifier, keyboardLayoutDescriptor); } catch (RemoteException ex) { } catch (RemoteException ex) { Log.w(TAG, "Could not add keyboard layout for input device.", ex); Log.w(TAG, "Could not add keyboard layout for input device.", ex); } } Loading @@ -474,18 +474,18 @@ public final class InputManager { /** /** * Removes the keyboard layout descriptor for the specified input device. * Removes the keyboard layout descriptor for the specified input device. * <p> * <p> * This method may have the side-effect of causing the input device in question * This method may have the side-effect of causing the input device in * to be reconfigured. * question to be reconfigured. * </p> * </p> * * * @param inputDeviceDescriptor The input device descriptor. * @param identifier The identifier for the input device. * @param keyboardLayoutDescriptor The descriptor of the keyboard layout to remove. * @param keyboardLayoutDescriptor The descriptor of the keyboard layout to * * remove. * @hide * @hide */ */ public void removeKeyboardLayoutForInputDevice(String inputDeviceDescriptor, public void removeKeyboardLayoutForInputDevice(InputDeviceIdentifier identifier, String keyboardLayoutDescriptor) { String keyboardLayoutDescriptor) { if (inputDeviceDescriptor == null) { if (identifier == null) { throw new IllegalArgumentException("inputDeviceDescriptor must not be null"); throw new IllegalArgumentException("inputDeviceDescriptor must not be null"); } } if (keyboardLayoutDescriptor == null) { if (keyboardLayoutDescriptor == null) { Loading @@ -493,7 +493,7 @@ public final class InputManager { } } try { try { mIm.removeKeyboardLayoutForInputDevice(inputDeviceDescriptor, keyboardLayoutDescriptor); mIm.removeKeyboardLayoutForInputDevice(identifier, keyboardLayoutDescriptor); } catch (RemoteException ex) { } catch (RemoteException ex) { Log.w(TAG, "Could not remove keyboard layout for input device.", ex); Log.w(TAG, "Could not remove keyboard layout for input device.", ex); } } Loading core/java/android/view/InputDevice.java +53 −37 Original line number Original line Diff line number Diff line Loading @@ -17,6 +17,7 @@ package android.view; package android.view; import android.content.Context; import android.content.Context; import android.hardware.input.InputDeviceIdentifier; import android.hardware.input.InputManager; import android.hardware.input.InputManager; import android.os.Parcel; import android.os.Parcel; import android.os.Parcelable; import android.os.Parcelable; Loading Loading @@ -49,6 +50,7 @@ public final class InputDevice implements Parcelable { private final int mVendorId; private final int mVendorId; private final int mProductId; private final int mProductId; private final String mDescriptor; private final String mDescriptor; private final InputDeviceIdentifier mIdentifier; private final boolean mIsExternal; private final boolean mIsExternal; private final int mSources; private final int mSources; private final int mKeyboardType; private final int mKeyboardType; Loading Loading @@ -361,6 +363,7 @@ public final class InputDevice implements Parcelable { mKeyCharacterMap = keyCharacterMap; mKeyCharacterMap = keyCharacterMap; mHasVibrator = hasVibrator; mHasVibrator = hasVibrator; mHasButtonUnderPad = hasButtonUnderPad; mHasButtonUnderPad = hasButtonUnderPad; mIdentifier = new InputDeviceIdentifier(descriptor, vendorId, productId); } } private InputDevice(Parcel in) { private InputDevice(Parcel in) { Loading @@ -377,6 +380,7 @@ public final class InputDevice implements Parcelable { mKeyCharacterMap = KeyCharacterMap.CREATOR.createFromParcel(in); mKeyCharacterMap = KeyCharacterMap.CREATOR.createFromParcel(in); mHasVibrator = in.readInt() != 0; mHasVibrator = in.readInt() != 0; mHasButtonUnderPad = in.readInt() != 0; mHasButtonUnderPad = in.readInt() != 0; mIdentifier = new InputDeviceIdentifier(mDescriptor, mVendorId, mProductId); for (;;) { for (;;) { int axis = in.readInt(); int axis = in.readInt(); Loading Loading @@ -440,6 +444,18 @@ public final class InputDevice implements Parcelable { return mControllerNumber; return mControllerNumber; } } /** * The set of identifying information for type of input device. This * information can be used by the system to configure appropriate settings * for the device. * * @return The identifier object for this device * @hide */ public InputDeviceIdentifier getIdentifier() { return mIdentifier; } /** /** * Gets a generation number for this input device. * Gets a generation number for this input device. * The generation number is incremented whenever the device is reconfigured and its * The generation number is incremented whenever the device is reconfigured and its Loading Loading
core/java/android/hardware/input/IInputManager.aidl +6 −5 Original line number Original line Diff line number Diff line Loading @@ -16,6 +16,7 @@ package android.hardware.input; package android.hardware.input; import android.hardware.input.InputDeviceIdentifier; import android.hardware.input.KeyboardLayout; import android.hardware.input.KeyboardLayout; import android.hardware.input.IInputDevicesChangedListener; import android.hardware.input.IInputDevicesChangedListener; import android.os.IBinder; import android.os.IBinder; Loading @@ -41,13 +42,13 @@ interface IInputManager { // Keyboard layouts configuration. // Keyboard layouts configuration. KeyboardLayout[] getKeyboardLayouts(); KeyboardLayout[] getKeyboardLayouts(); KeyboardLayout getKeyboardLayout(String keyboardLayoutDescriptor); KeyboardLayout getKeyboardLayout(String keyboardLayoutDescriptor); String getCurrentKeyboardLayoutForInputDevice(String inputDeviceDescriptor); String getCurrentKeyboardLayoutForInputDevice(in InputDeviceIdentifier identifier); void setCurrentKeyboardLayoutForInputDevice(String inputDeviceDescriptor, void setCurrentKeyboardLayoutForInputDevice(in InputDeviceIdentifier identifier, String keyboardLayoutDescriptor); String keyboardLayoutDescriptor); String[] getKeyboardLayoutsForInputDevice(String inputDeviceDescriptor); String[] getKeyboardLayoutsForInputDevice(in InputDeviceIdentifier identifier); void addKeyboardLayoutForInputDevice(String inputDeviceDescriptor, void addKeyboardLayoutForInputDevice(in InputDeviceIdentifier identifier, String keyboardLayoutDescriptor); String keyboardLayoutDescriptor); void removeKeyboardLayoutForInputDevice(String inputDeviceDescriptor, void removeKeyboardLayoutForInputDevice(in InputDeviceIdentifier identifier, String keyboardLayoutDescriptor); String keyboardLayoutDescriptor); // Registers an input devices changed listener. // Registers an input devices changed listener. Loading
core/java/android/hardware/input/InputDeviceIdentifier.aidl 0 → 100644 +19 −0 Original line number Original line Diff line number Diff line /* * Copyright (C) 2013 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 android.hardware.input; parcelable InputDeviceIdentifier;
core/java/android/hardware/input/InputDeviceIdentifier.java 0 → 100644 +82 −0 Original line number Original line Diff line number Diff line /* * Copyright (C) 2013 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 android.hardware.input; import android.os.Parcel; import android.os.Parcelable; /** * Wrapper for passing identifying information for input devices. * * @hide */ public final class InputDeviceIdentifier implements Parcelable { private final String mDescriptor; private final int mVendorId; private final int mProductId; public InputDeviceIdentifier(String descriptor, int vendorId, int productId) { this.mDescriptor = descriptor; this.mVendorId = vendorId; this.mProductId = productId; } private InputDeviceIdentifier(Parcel src) { mDescriptor = src.readString(); mVendorId = src.readInt(); mProductId = src.readInt(); } @Override public int describeContents() { return 0; } @Override public void writeToParcel(Parcel dest, int flags) { dest.writeString(mDescriptor); dest.writeInt(mVendorId); dest.writeInt(mProductId); } public String getDescriptor() { return mDescriptor; } public int getVendorId() { return mVendorId; } public int getProductId() { return mProductId; } public static final Parcelable.Creator<InputDeviceIdentifier> CREATOR = new Parcelable.Creator<InputDeviceIdentifier>() { @Override public InputDeviceIdentifier createFromParcel(Parcel source) { return new InputDeviceIdentifier(source); } @Override public InputDeviceIdentifier[] newArray(int size) { return new InputDeviceIdentifier[size]; } }; }
core/java/android/hardware/input/InputManager.java +42 −42 Original line number Original line Diff line number Diff line Loading @@ -26,6 +26,8 @@ import android.os.Handler; import android.os.IBinder; import android.os.IBinder; import android.os.Looper; import android.os.Looper; import android.os.Message; import android.os.Message; import android.os.Parcel; import android.os.Parcelable; import android.os.RemoteException; import android.os.RemoteException; import android.os.ServiceManager; import android.os.ServiceManager; import android.os.Vibrator; import android.os.Vibrator; Loading Loading @@ -373,20 +375,17 @@ public final class InputManager { } } /** /** * Gets the current keyboard layout descriptor for the specified input device. * Gets the current keyboard layout descriptor for the specified input * * device. * @param inputDeviceDescriptor The input device descriptor. * @return The keyboard layout descriptor, or null if no keyboard layout has been set. * * * @param identifier Identifier for the input device * @return The keyboard layout descriptor, or null if no keyboard layout has * been set. * @hide * @hide */ */ public String getCurrentKeyboardLayoutForInputDevice(String inputDeviceDescriptor) { public String getCurrentKeyboardLayoutForInputDevice(InputDeviceIdentifier identifier) { if (inputDeviceDescriptor == null) { throw new IllegalArgumentException("inputDeviceDescriptor must not be null"); } try { try { return mIm.getCurrentKeyboardLayoutForInputDevice(inputDeviceDescriptor); return mIm.getCurrentKeyboardLayoutForInputDevice(identifier); } catch (RemoteException ex) { } catch (RemoteException ex) { Log.w(TAG, "Could not get current keyboard layout for input device.", ex); Log.w(TAG, "Could not get current keyboard layout for input device.", ex); return null; return null; Loading @@ -394,28 +393,29 @@ public final class InputManager { } } /** /** * Sets the current keyboard layout descriptor for the specified input device. * Sets the current keyboard layout descriptor for the specified input * device. * <p> * <p> * This method may have the side-effect of causing the input device in question * This method may have the side-effect of causing the input device in * to be reconfigured. * question to be reconfigured. * </p> * </p> * * * @param inputDeviceDescriptor The input device descriptor. * @param identifier The identifier for the input device. * @param keyboardLayoutDescriptor The keyboard layout descriptor to use, must not be null. * @param keyboardLayoutDescriptor The keyboard layout descriptor to use, * * must not be null. * @hide * @hide */ */ public void setCurrentKeyboardLayoutForInputDevice(String inputDeviceDescriptor, public void setCurrentKeyboardLayoutForInputDevice(InputDeviceIdentifier identifier, String keyboardLayoutDescriptor) { String keyboardLayoutDescriptor) { if (inputDeviceDescriptor == null) { if (identifier == null) { throw new IllegalArgumentException("inputDeviceDescriptor must not be null"); throw new IllegalArgumentException("identifier must not be null"); } } if (keyboardLayoutDescriptor == null) { if (keyboardLayoutDescriptor == null) { throw new IllegalArgumentException("keyboardLayoutDescriptor must not be null"); throw new IllegalArgumentException("keyboardLayoutDescriptor must not be null"); } } try { try { mIm.setCurrentKeyboardLayoutForInputDevice(inputDeviceDescriptor, mIm.setCurrentKeyboardLayoutForInputDevice(identifier, keyboardLayoutDescriptor); keyboardLayoutDescriptor); } catch (RemoteException ex) { } catch (RemoteException ex) { Log.w(TAG, "Could not set current keyboard layout for input device.", ex); Log.w(TAG, "Could not set current keyboard layout for input device.", ex); Loading @@ -423,20 +423,20 @@ public final class InputManager { } } /** /** * Gets all keyboard layout descriptors that are enabled for the specified input device. * Gets all keyboard layout descriptors that are enabled for the specified * input device. * * * @param inputDeviceDescriptor The input device descriptor. * @param identifier The identifier for the input device. * @return The keyboard layout descriptors. * @return The keyboard layout descriptors. * * @hide * @hide */ */ public String[] getKeyboardLayoutsForInputDevice(String inputDeviceDescriptor) { public String[] getKeyboardLayoutsForInputDevice(InputDeviceIdentifier identifier) { if (inputDeviceDescriptor == null) { if (identifier == null) { throw new IllegalArgumentException("inputDeviceDescriptor must not be null"); throw new IllegalArgumentException("inputDeviceDescriptor must not be null"); } } try { try { return mIm.getKeyboardLayoutsForInputDevice(inputDeviceDescriptor); return mIm.getKeyboardLayoutsForInputDevice(identifier); } catch (RemoteException ex) { } catch (RemoteException ex) { Log.w(TAG, "Could not get keyboard layouts for input device.", ex); Log.w(TAG, "Could not get keyboard layouts for input device.", ex); return ArrayUtils.emptyArray(String.class); return ArrayUtils.emptyArray(String.class); Loading @@ -446,18 +446,18 @@ public final class InputManager { /** /** * Adds the keyboard layout descriptor for the specified input device. * Adds the keyboard layout descriptor for the specified input device. * <p> * <p> * This method may have the side-effect of causing the input device in question * This method may have the side-effect of causing the input device in * to be reconfigured. * question to be reconfigured. * </p> * </p> * * * @param inputDeviceDescriptor The input device descriptor. * @param identifier The identifier for the input device. * @param keyboardLayoutDescriptor The descriptor of the keyboard layout to add. * @param keyboardLayoutDescriptor The descriptor of the keyboard layout to * * add. * @hide * @hide */ */ public void addKeyboardLayoutForInputDevice(String inputDeviceDescriptor, public void addKeyboardLayoutForInputDevice(InputDeviceIdentifier identifier, String keyboardLayoutDescriptor) { String keyboardLayoutDescriptor) { if (inputDeviceDescriptor == null) { if (identifier == null) { throw new IllegalArgumentException("inputDeviceDescriptor must not be null"); throw new IllegalArgumentException("inputDeviceDescriptor must not be null"); } } if (keyboardLayoutDescriptor == null) { if (keyboardLayoutDescriptor == null) { Loading @@ -465,7 +465,7 @@ public final class InputManager { } } try { try { mIm.addKeyboardLayoutForInputDevice(inputDeviceDescriptor, keyboardLayoutDescriptor); mIm.addKeyboardLayoutForInputDevice(identifier, keyboardLayoutDescriptor); } catch (RemoteException ex) { } catch (RemoteException ex) { Log.w(TAG, "Could not add keyboard layout for input device.", ex); Log.w(TAG, "Could not add keyboard layout for input device.", ex); } } Loading @@ -474,18 +474,18 @@ public final class InputManager { /** /** * Removes the keyboard layout descriptor for the specified input device. * Removes the keyboard layout descriptor for the specified input device. * <p> * <p> * This method may have the side-effect of causing the input device in question * This method may have the side-effect of causing the input device in * to be reconfigured. * question to be reconfigured. * </p> * </p> * * * @param inputDeviceDescriptor The input device descriptor. * @param identifier The identifier for the input device. * @param keyboardLayoutDescriptor The descriptor of the keyboard layout to remove. * @param keyboardLayoutDescriptor The descriptor of the keyboard layout to * * remove. * @hide * @hide */ */ public void removeKeyboardLayoutForInputDevice(String inputDeviceDescriptor, public void removeKeyboardLayoutForInputDevice(InputDeviceIdentifier identifier, String keyboardLayoutDescriptor) { String keyboardLayoutDescriptor) { if (inputDeviceDescriptor == null) { if (identifier == null) { throw new IllegalArgumentException("inputDeviceDescriptor must not be null"); throw new IllegalArgumentException("inputDeviceDescriptor must not be null"); } } if (keyboardLayoutDescriptor == null) { if (keyboardLayoutDescriptor == null) { Loading @@ -493,7 +493,7 @@ public final class InputManager { } } try { try { mIm.removeKeyboardLayoutForInputDevice(inputDeviceDescriptor, keyboardLayoutDescriptor); mIm.removeKeyboardLayoutForInputDevice(identifier, keyboardLayoutDescriptor); } catch (RemoteException ex) { } catch (RemoteException ex) { Log.w(TAG, "Could not remove keyboard layout for input device.", ex); Log.w(TAG, "Could not remove keyboard layout for input device.", ex); } } Loading
core/java/android/view/InputDevice.java +53 −37 Original line number Original line Diff line number Diff line Loading @@ -17,6 +17,7 @@ package android.view; package android.view; import android.content.Context; import android.content.Context; import android.hardware.input.InputDeviceIdentifier; import android.hardware.input.InputManager; import android.hardware.input.InputManager; import android.os.Parcel; import android.os.Parcel; import android.os.Parcelable; import android.os.Parcelable; Loading Loading @@ -49,6 +50,7 @@ public final class InputDevice implements Parcelable { private final int mVendorId; private final int mVendorId; private final int mProductId; private final int mProductId; private final String mDescriptor; private final String mDescriptor; private final InputDeviceIdentifier mIdentifier; private final boolean mIsExternal; private final boolean mIsExternal; private final int mSources; private final int mSources; private final int mKeyboardType; private final int mKeyboardType; Loading Loading @@ -361,6 +363,7 @@ public final class InputDevice implements Parcelable { mKeyCharacterMap = keyCharacterMap; mKeyCharacterMap = keyCharacterMap; mHasVibrator = hasVibrator; mHasVibrator = hasVibrator; mHasButtonUnderPad = hasButtonUnderPad; mHasButtonUnderPad = hasButtonUnderPad; mIdentifier = new InputDeviceIdentifier(descriptor, vendorId, productId); } } private InputDevice(Parcel in) { private InputDevice(Parcel in) { Loading @@ -377,6 +380,7 @@ public final class InputDevice implements Parcelable { mKeyCharacterMap = KeyCharacterMap.CREATOR.createFromParcel(in); mKeyCharacterMap = KeyCharacterMap.CREATOR.createFromParcel(in); mHasVibrator = in.readInt() != 0; mHasVibrator = in.readInt() != 0; mHasButtonUnderPad = in.readInt() != 0; mHasButtonUnderPad = in.readInt() != 0; mIdentifier = new InputDeviceIdentifier(mDescriptor, mVendorId, mProductId); for (;;) { for (;;) { int axis = in.readInt(); int axis = in.readInt(); Loading Loading @@ -440,6 +444,18 @@ public final class InputDevice implements Parcelable { return mControllerNumber; return mControllerNumber; } } /** * The set of identifying information for type of input device. This * information can be used by the system to configure appropriate settings * for the device. * * @return The identifier object for this device * @hide */ public InputDeviceIdentifier getIdentifier() { return mIdentifier; } /** /** * Gets a generation number for this input device. * Gets a generation number for this input device. * The generation number is incremented whenever the device is reconfigured and its * The generation number is incremented whenever the device is reconfigured and its Loading