2
* Copyright (C) 2011 The Android Open Source Project
4
* Licensed under the Apache License, Version 2.0 (the "License");
5
* you may not use this file except in compliance with the License.
6
* You may obtain a copy of the License at
8
* http://www.apache.org/licenses/LICENSE-2.0
10
* Unless required by applicable law or agreed to in writing, software
11
* distributed under the License is distributed on an "AS IS" BASIS,
12
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
* See the License for the specific language governing permissions and
14
* limitations under the License.
17
#ifndef _UI_INPUT_APPLICATION_H
18
#define _UI_INPUT_APPLICATION_H
20
#include <androidfw/Input.h>
22
#include <utils/RefBase.h>
23
#include <utils/Timers.h>
24
#include <utils/String8.h>
29
* Describes the properties of an application that can receive input.
31
struct InputApplicationInfo {
33
nsecs_t dispatchingTimeout;
38
* Handle for an application that can receive input.
40
* Used by the native input dispatcher as a handle for the window manager objects
41
* that describe an application.
43
class InputApplicationHandle : public RefBase {
45
inline const InputApplicationInfo* getInfo() const {
49
inline String8 getName() const {
50
return mInfo ? mInfo->name : String8("<invalid>");
53
inline nsecs_t getDispatchingTimeout(nsecs_t defaultValue) const {
54
return mInfo ? mInfo->dispatchingTimeout : defaultValue;
58
* Requests that the state of this object be updated to reflect
59
* the most current available information about the application.
61
* This method should only be called from within the input dispatcher's
64
* Returns true on success, or false if the handle is no longer valid.
66
virtual bool updateInfo() = 0;
69
* Releases the storage used by the associated information when it is
75
InputApplicationHandle();
76
virtual ~InputApplicationHandle();
78
InputApplicationInfo* mInfo;
81
} // namespace android
83
#endif // _UI_INPUT_APPLICATION_H