1928e054931d357326613c78e62f4d850b7c442ffJeff Brown/* 2928e054931d357326613c78e62f4d850b7c442ffJeff Brown * Copyright (C) 2011 The Android Open Source Project 3928e054931d357326613c78e62f4d850b7c442ffJeff Brown * 4928e054931d357326613c78e62f4d850b7c442ffJeff Brown * Licensed under the Apache License, Version 2.0 (the "License"); 5928e054931d357326613c78e62f4d850b7c442ffJeff Brown * you may not use this file except in compliance with the License. 6928e054931d357326613c78e62f4d850b7c442ffJeff Brown * You may obtain a copy of the License at 7928e054931d357326613c78e62f4d850b7c442ffJeff Brown * 8928e054931d357326613c78e62f4d850b7c442ffJeff Brown * http://www.apache.org/licenses/LICENSE-2.0 9928e054931d357326613c78e62f4d850b7c442ffJeff Brown * 10928e054931d357326613c78e62f4d850b7c442ffJeff Brown * Unless required by applicable law or agreed to in writing, software 11928e054931d357326613c78e62f4d850b7c442ffJeff Brown * distributed under the License is distributed on an "AS IS" BASIS, 12928e054931d357326613c78e62f4d850b7c442ffJeff Brown * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13928e054931d357326613c78e62f4d850b7c442ffJeff Brown * See the License for the specific language governing permissions and 14928e054931d357326613c78e62f4d850b7c442ffJeff Brown * limitations under the License. 15928e054931d357326613c78e62f4d850b7c442ffJeff Brown */ 16928e054931d357326613c78e62f4d850b7c442ffJeff Brown 174532e6158474a263d9d26c2b42240bcf7ce9b172Jeff Brownpackage com.android.server.input; 18928e054931d357326613c78e62f4d850b7c442ffJeff Brown 19928e054931d357326613c78e62f4d850b7c442ffJeff Brown/** 20928e054931d357326613c78e62f4d850b7c442ffJeff Brown * Functions as a handle for an application that can receive input. 21928e054931d357326613c78e62f4d850b7c442ffJeff Brown * Enables the native input dispatcher to refer indirectly to the window manager's 22928e054931d357326613c78e62f4d850b7c442ffJeff Brown * application window token. 23928e054931d357326613c78e62f4d850b7c442ffJeff Brown * @hide 24928e054931d357326613c78e62f4d850b7c442ffJeff Brown */ 25928e054931d357326613c78e62f4d850b7c442ffJeff Brownpublic final class InputApplicationHandle { 26928e054931d357326613c78e62f4d850b7c442ffJeff Brown // Pointer to the native input application handle. 27928e054931d357326613c78e62f4d850b7c442ffJeff Brown // This field is lazily initialized via JNI. 28928e054931d357326613c78e62f4d850b7c442ffJeff Brown @SuppressWarnings("unused") 297e2a9dcf1a4044ed3f81c5b736b5027231395b73Ashok Bhat private long ptr; 30928e054931d357326613c78e62f4d850b7c442ffJeff Brown 31928e054931d357326613c78e62f4d850b7c442ffJeff Brown // The window manager's application window token. 324532e6158474a263d9d26c2b42240bcf7ce9b172Jeff Brown public final Object appWindowToken; 33928e054931d357326613c78e62f4d850b7c442ffJeff Brown 349302c8796fc4dcda08d4bd1e11733848fd4fafafJeff Brown // Application name. 359302c8796fc4dcda08d4bd1e11733848fd4fafafJeff Brown public String name; 369302c8796fc4dcda08d4bd1e11733848fd4fafafJeff Brown 379302c8796fc4dcda08d4bd1e11733848fd4fafafJeff Brown // Dispatching timeout. 389302c8796fc4dcda08d4bd1e11733848fd4fafafJeff Brown public long dispatchingTimeoutNanos; 399302c8796fc4dcda08d4bd1e11733848fd4fafafJeff Brown 40928e054931d357326613c78e62f4d850b7c442ffJeff Brown private native void nativeDispose(); 41928e054931d357326613c78e62f4d850b7c442ffJeff Brown 424532e6158474a263d9d26c2b42240bcf7ce9b172Jeff Brown public InputApplicationHandle(Object appWindowToken) { 43928e054931d357326613c78e62f4d850b7c442ffJeff Brown this.appWindowToken = appWindowToken; 44928e054931d357326613c78e62f4d850b7c442ffJeff Brown } 45928e054931d357326613c78e62f4d850b7c442ffJeff Brown 46928e054931d357326613c78e62f4d850b7c442ffJeff Brown @Override 47928e054931d357326613c78e62f4d850b7c442ffJeff Brown protected void finalize() throws Throwable { 48cc4f7db698f88b633a286d8ab1105b28a474cd09Jeff Brown try { 49cc4f7db698f88b633a286d8ab1105b28a474cd09Jeff Brown nativeDispose(); 50cc4f7db698f88b633a286d8ab1105b28a474cd09Jeff Brown } finally { 51cc4f7db698f88b633a286d8ab1105b28a474cd09Jeff Brown super.finalize(); 52cc4f7db698f88b633a286d8ab1105b28a474cd09Jeff Brown } 53928e054931d357326613c78e62f4d850b7c442ffJeff Brown } 54928e054931d357326613c78e62f4d850b7c442ffJeff Brown} 55