17f3994ec2a5dce1a037f04714b1f25cab85affb6Jeff Brown/* 24ccb823a9f62e57f9d221f83a97e82967e79a9e5Jeff Brown * Copyright (C) 2014 The Android Open Source Project 37f3994ec2a5dce1a037f04714b1f25cab85affb6Jeff Brown * 47f3994ec2a5dce1a037f04714b1f25cab85affb6Jeff Brown * Licensed under the Apache License, Version 2.0 (the "License"); 57f3994ec2a5dce1a037f04714b1f25cab85affb6Jeff Brown * you may not use this file except in compliance with the License. 67f3994ec2a5dce1a037f04714b1f25cab85affb6Jeff Brown * You may obtain a copy of the License at 77f3994ec2a5dce1a037f04714b1f25cab85affb6Jeff Brown * 87f3994ec2a5dce1a037f04714b1f25cab85affb6Jeff Brown * http://www.apache.org/licenses/LICENSE-2.0 97f3994ec2a5dce1a037f04714b1f25cab85affb6Jeff Brown * 107f3994ec2a5dce1a037f04714b1f25cab85affb6Jeff Brown * Unless required by applicable law or agreed to in writing, software 117f3994ec2a5dce1a037f04714b1f25cab85affb6Jeff Brown * distributed under the License is distributed on an "AS IS" BASIS, 127f3994ec2a5dce1a037f04714b1f25cab85affb6Jeff Brown * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 137f3994ec2a5dce1a037f04714b1f25cab85affb6Jeff Brown * See the License for the specific language governing permissions and 147f3994ec2a5dce1a037f04714b1f25cab85affb6Jeff Brown * limitations under the License. 157f3994ec2a5dce1a037f04714b1f25cab85affb6Jeff Brown */ 167f3994ec2a5dce1a037f04714b1f25cab85affb6Jeff Brown 174ccb823a9f62e57f9d221f83a97e82967e79a9e5Jeff Brownpackage android.hardware.input; 184ccb823a9f62e57f9d221f83a97e82967e79a9e5Jeff Brown 19b097b8262ba22040d46d6e212a31b758b7023307Yohei Yukawaimport android.annotation.Nullable; 204ccb823a9f62e57f9d221f83a97e82967e79a9e5Jeff Brownimport android.hardware.display.DisplayViewport; 2138f96e5020b3e82b98fe97b0be363a5ad185860fJeff Brownimport android.view.InputEvent; 22b097b8262ba22040d46d6e212a31b758b7023307Yohei Yukawaimport android.view.inputmethod.InputMethodInfo; 23b097b8262ba22040d46d6e212a31b758b7023307Yohei Yukawaimport android.view.inputmethod.InputMethodSubtype; 247f3994ec2a5dce1a037f04714b1f25cab85affb6Jeff Brown 257f3994ec2a5dce1a037f04714b1f25cab85affb6Jeff Brown/** 264ccb823a9f62e57f9d221f83a97e82967e79a9e5Jeff Brown * Input manager local system service interface. 274ccb823a9f62e57f9d221f83a97e82967e79a9e5Jeff Brown * 284ccb823a9f62e57f9d221f83a97e82967e79a9e5Jeff Brown * @hide Only for use within the system server. 297f3994ec2a5dce1a037f04714b1f25cab85affb6Jeff Brown */ 304ccb823a9f62e57f9d221f83a97e82967e79a9e5Jeff Brownpublic abstract class InputManagerInternal { 31037c33eae74bee2774897d969d48947f9abe254fJeff Brown public abstract boolean injectInputEvent(InputEvent event, int displayId, int mode); 32037c33eae74bee2774897d969d48947f9abe254fJeff Brown 334ccb823a9f62e57f9d221f83a97e82967e79a9e5Jeff Brown /** 34037c33eae74bee2774897d969d48947f9abe254fJeff Brown * Called by the display manager to set information about the displays as needed 35037c33eae74bee2774897d969d48947f9abe254fJeff Brown * by the input system. The input system must copy this information to retain it. 364ccb823a9f62e57f9d221f83a97e82967e79a9e5Jeff Brown */ 374ccb823a9f62e57f9d221f83a97e82967e79a9e5Jeff Brown public abstract void setDisplayViewports(DisplayViewport defaultViewport, 384ccb823a9f62e57f9d221f83a97e82967e79a9e5Jeff Brown DisplayViewport externalTouchViewport); 3938f96e5020b3e82b98fe97b0be363a5ad185860fJeff Brown 40037c33eae74bee2774897d969d48947f9abe254fJeff Brown /** 41037c33eae74bee2774897d969d48947f9abe254fJeff Brown * Called by the power manager to tell the input manager whether it should start 42037c33eae74bee2774897d969d48947f9abe254fJeff Brown * watching for wake events. 43037c33eae74bee2774897d969d48947f9abe254fJeff Brown */ 44037c33eae74bee2774897d969d48947f9abe254fJeff Brown public abstract void setInteractive(boolean interactive); 45b097b8262ba22040d46d6e212a31b758b7023307Yohei Yukawa 46b097b8262ba22040d46d6e212a31b758b7023307Yohei Yukawa /** 47b097b8262ba22040d46d6e212a31b758b7023307Yohei Yukawa * Notifies that InputMethodManagerService switched the current input method subtype. 48b097b8262ba22040d46d6e212a31b758b7023307Yohei Yukawa * 49b097b8262ba22040d46d6e212a31b758b7023307Yohei Yukawa * @param userId user id that indicates who is using the specified input method and subtype. 50b097b8262ba22040d46d6e212a31b758b7023307Yohei Yukawa * @param inputMethodInfo {@code null} when no input method is selected. 51b097b8262ba22040d46d6e212a31b758b7023307Yohei Yukawa * @param subtype {@code null} when {@code inputMethodInfo} does has no subtype. 52b097b8262ba22040d46d6e212a31b758b7023307Yohei Yukawa */ 53b097b8262ba22040d46d6e212a31b758b7023307Yohei Yukawa public abstract void onInputMethodSubtypeChanged(int userId, 54b097b8262ba22040d46d6e212a31b758b7023307Yohei Yukawa @Nullable InputMethodInfo inputMethodInfo, @Nullable InputMethodSubtype subtype); 55112d05678b7de53da8948f62dd2e968274f62244Andrii Kulian 56112d05678b7de53da8948f62dd2e968274f62244Andrii Kulian /** 57112d05678b7de53da8948f62dd2e968274f62244Andrii Kulian * Toggles Caps Lock state for input device with specific id. 58112d05678b7de53da8948f62dd2e968274f62244Andrii Kulian * 59112d05678b7de53da8948f62dd2e968274f62244Andrii Kulian * @param deviceId The id of input device. 60112d05678b7de53da8948f62dd2e968274f62244Andrii Kulian */ 61112d05678b7de53da8948f62dd2e968274f62244Andrii Kulian public abstract void toggleCapsLock(int deviceId); 629918234dcf9e115560144d0218682dd5050843bcAdrian Roos 639918234dcf9e115560144d0218682dd5050843bcAdrian Roos /** 649918234dcf9e115560144d0218682dd5050843bcAdrian Roos * Set whether the input stack should deliver pulse gesture events when the device is asleep. 659918234dcf9e115560144d0218682dd5050843bcAdrian Roos */ 669918234dcf9e115560144d0218682dd5050843bcAdrian Roos public abstract void setPulseGestureEnabled(boolean enabled); 677f3994ec2a5dce1a037f04714b1f25cab85affb6Jeff Brown} 68