InputApplicationHandle.java revision cc4f7db698f88b633a286d8ab1105b28a474cd09
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
17a924dc0db952fe32509435fdb8dc9c84a9e181f3Dianne Hackbornpackage com.android.server.wm;
18a924dc0db952fe32509435fdb8dc9c84a9e181f3Dianne Hackborn
19928e054931d357326613c78e62f4d850b7c442ffJeff Brown
20928e054931d357326613c78e62f4d850b7c442ffJeff Brown/**
21928e054931d357326613c78e62f4d850b7c442ffJeff Brown * Functions as a handle for an application that can receive input.
22928e054931d357326613c78e62f4d850b7c442ffJeff Brown * Enables the native input dispatcher to refer indirectly to the window manager's
23928e054931d357326613c78e62f4d850b7c442ffJeff Brown * application window token.
24928e054931d357326613c78e62f4d850b7c442ffJeff Brown * @hide
25928e054931d357326613c78e62f4d850b7c442ffJeff Brown */
26928e054931d357326613c78e62f4d850b7c442ffJeff Brownpublic final class InputApplicationHandle {
27928e054931d357326613c78e62f4d850b7c442ffJeff Brown    // Pointer to the native input application handle.
28928e054931d357326613c78e62f4d850b7c442ffJeff Brown    // This field is lazily initialized via JNI.
29928e054931d357326613c78e62f4d850b7c442ffJeff Brown    @SuppressWarnings("unused")
30928e054931d357326613c78e62f4d850b7c442ffJeff Brown    private int ptr;
31928e054931d357326613c78e62f4d850b7c442ffJeff Brown
32928e054931d357326613c78e62f4d850b7c442ffJeff Brown    // The window manager's application window token.
336e1eb76f02ccc9dbc309b938f62d39312da8cafeDianne Hackborn    public final AppWindowToken appWindowToken;
34928e054931d357326613c78e62f4d850b7c442ffJeff Brown
359302c8796fc4dcda08d4bd1e11733848fd4fafafJeff Brown    // Application name.
369302c8796fc4dcda08d4bd1e11733848fd4fafafJeff Brown    public String name;
379302c8796fc4dcda08d4bd1e11733848fd4fafafJeff Brown
389302c8796fc4dcda08d4bd1e11733848fd4fafafJeff Brown    // Dispatching timeout.
399302c8796fc4dcda08d4bd1e11733848fd4fafafJeff Brown    public long dispatchingTimeoutNanos;
409302c8796fc4dcda08d4bd1e11733848fd4fafafJeff Brown
41928e054931d357326613c78e62f4d850b7c442ffJeff Brown    private native void nativeDispose();
42928e054931d357326613c78e62f4d850b7c442ffJeff Brown
436e1eb76f02ccc9dbc309b938f62d39312da8cafeDianne Hackborn    public InputApplicationHandle(AppWindowToken appWindowToken) {
44928e054931d357326613c78e62f4d850b7c442ffJeff Brown        this.appWindowToken = appWindowToken;
45928e054931d357326613c78e62f4d850b7c442ffJeff Brown    }
46928e054931d357326613c78e62f4d850b7c442ffJeff Brown
47928e054931d357326613c78e62f4d850b7c442ffJeff Brown    @Override
48928e054931d357326613c78e62f4d850b7c442ffJeff Brown    protected void finalize() throws Throwable {
49cc4f7db698f88b633a286d8ab1105b28a474cd09Jeff Brown        try {
50cc4f7db698f88b633a286d8ab1105b28a474cd09Jeff Brown            nativeDispose();
51cc4f7db698f88b633a286d8ab1105b28a474cd09Jeff Brown        } finally {
52cc4f7db698f88b633a286d8ab1105b28a474cd09Jeff Brown            super.finalize();
53cc4f7db698f88b633a286d8ab1105b28a474cd09Jeff Brown        }
54928e054931d357326613c78e62f4d850b7c442ffJeff Brown    }
55928e054931d357326613c78e62f4d850b7c442ffJeff Brown}
56