BaseIWindow.java revision 8df8b2b405c60cacf7a66c4e2ca078dd3d7ec7bd
1package com.android.internal.view;
2
3import android.graphics.Rect;
4import android.os.ParcelFileDescriptor;
5import android.os.RemoteException;
6import android.view.IWindow;
7import android.view.IWindowSession;
8import android.view.KeyEvent;
9import android.view.MotionEvent;
10
11public class BaseIWindow extends IWindow.Stub {
12    private IWindowSession mSession;
13
14    public void setSession(IWindowSession session) {
15        mSession = session;
16    }
17
18    public void resized(int w, int h, Rect coveredInsets,
19            Rect visibleInsets, boolean reportDraw) {
20        if (reportDraw) {
21            try {
22                mSession.finishDrawing(this);
23            } catch (RemoteException e) {
24            }
25        }
26    }
27
28    public void dispatchKey(KeyEvent event) {
29        try {
30            mSession.finishKey(this);
31        } catch (RemoteException ex) {
32        }
33    }
34
35    public boolean onDispatchPointer(MotionEvent event, long eventTime,
36            boolean callWhenDone) {
37        event.recycle();
38        return false;
39    }
40
41    public void dispatchPointer(MotionEvent event, long eventTime,
42            boolean callWhenDone) {
43        try {
44            if (event == null) {
45                event = mSession.getPendingPointerMove(this);
46                onDispatchPointer(event, eventTime, false);
47            } else if (callWhenDone) {
48                if (!onDispatchPointer(event, eventTime, true)) {
49                    mSession.finishKey(this);
50                }
51            } else {
52                onDispatchPointer(event, eventTime, false);
53            }
54        } catch (RemoteException ex) {
55        }
56    }
57
58    public boolean onDispatchTrackball(MotionEvent event, long eventTime,
59            boolean callWhenDone) {
60        event.recycle();
61        return false;
62    }
63
64    public void dispatchTrackball(MotionEvent event, long eventTime,
65            boolean callWhenDone) {
66        try {
67            if (event == null) {
68                event = mSession.getPendingTrackballMove(this);
69                onDispatchTrackball(event, eventTime, false);
70            } else if (callWhenDone) {
71                if (!onDispatchTrackball(event, eventTime, true)) {
72                    mSession.finishKey(this);
73                }
74            } else {
75                onDispatchTrackball(event, eventTime, false);
76            }
77        } catch (RemoteException ex) {
78        }
79    }
80
81    public void dispatchAppVisibility(boolean visible) {
82    }
83
84    public void dispatchGetNewSurface() {
85    }
86
87    public void windowFocusChanged(boolean hasFocus, boolean touchEnabled) {
88    }
89
90    public void executeCommand(String command, String parameters, ParcelFileDescriptor out) {
91    }
92
93    public void dispatchWallpaperOffsets(float x, float y) {
94    }
95}
96