519e024d1e
Redesigned the input dispatcher's ANR timeout mechanism so it is much closer to Froyo's policy. ANR is only ever signalled if the dispatcher is waiting on a window to finish processing its previous event(s) and there is new pending input. In the old code, we tracked the dispatch timeout separately for each input channel. This was somewhat complicated and also resulted in the situation where applications could ANR long after the user had pushed them into the background. Change-Id: I666ecada0952d4b95f1d67b9f733842b745c7f4b
84 lines
2.2 KiB
Java
84 lines
2.2 KiB
Java
/*
|
|
* Copyright (C) 2010 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 com.android.server;
|
|
|
|
import android.view.InputChannel;
|
|
|
|
/**
|
|
* Describes input-related window properties for use by the input dispatcher.
|
|
*
|
|
* @hide
|
|
*/
|
|
public final class InputWindow {
|
|
// The input channel associated with the window.
|
|
public InputChannel inputChannel;
|
|
|
|
// The window name.
|
|
public String name;
|
|
|
|
// Window layout params attributes. (WindowManager.LayoutParams)
|
|
public int layoutParamsFlags;
|
|
public int layoutParamsType;
|
|
|
|
// Dispatching timeout.
|
|
public long dispatchingTimeoutNanos;
|
|
|
|
// Window frame area.
|
|
public int frameLeft;
|
|
public int frameTop;
|
|
public int frameRight;
|
|
public int frameBottom;
|
|
|
|
// Window visible frame area.
|
|
public int visibleFrameLeft;
|
|
public int visibleFrameTop;
|
|
public int visibleFrameRight;
|
|
public int visibleFrameBottom;
|
|
|
|
// Window touchable area.
|
|
public int touchableAreaLeft;
|
|
public int touchableAreaTop;
|
|
public int touchableAreaRight;
|
|
public int touchableAreaBottom;
|
|
|
|
// Window is visible.
|
|
public boolean visible;
|
|
|
|
// Window can receive keys.
|
|
public boolean canReceiveKeys;
|
|
|
|
// Window has focus.
|
|
public boolean hasFocus;
|
|
|
|
// Window has wallpaper. (window is the current wallpaper target)
|
|
public boolean hasWallpaper;
|
|
|
|
// Input event dispatching is paused.
|
|
public boolean paused;
|
|
|
|
// Window layer.
|
|
public int layer;
|
|
|
|
// Id of process and user that owns the window.
|
|
public int ownerPid;
|
|
public int ownerUid;
|
|
|
|
public void recycle() {
|
|
inputChannel = null;
|
|
}
|
|
}
|