1c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet/*
2c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet * Copyright (C) 2010 The Android Open Source Project
3c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet *
4c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet * Licensed under the Apache License, Version 2.0 (the "License");
5c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet * you may not use this file except in compliance with the License.
6c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet * You may obtain a copy of the License at
7c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet *
8c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet *      http://www.apache.org/licenses/LICENSE-2.0
9c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet *
10c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet * Unless required by applicable law or agreed to in writing, software
11c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet * distributed under the License is distributed on an "AS IS" BASIS,
12c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet * See the License for the specific language governing permissions and
14c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet * limitations under the License.
15c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet */
16c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet
17c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohetpackage com.android.layoutlib.bridge.android;
18c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet
19c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohetimport android.content.ClipData;
20c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohetimport android.content.res.Configuration;
21c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohetimport android.graphics.Rect;
22c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohetimport android.graphics.Region;
23c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohetimport android.os.Bundle;
24c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohetimport android.os.IBinder;
25c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohetimport android.os.RemoteException;
26c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohetimport android.view.IWindow;
27c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohetimport android.view.IWindowSession;
28c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohetimport android.view.InputChannel;
29c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohetimport android.view.Surface;
30c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohetimport android.view.SurfaceView;
31c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohetimport android.view.WindowManager.LayoutParams;
32c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet
33c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet/**
34c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet * Implementation of {@link IWindowSession} so that mSession is not null in
35c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet * the {@link SurfaceView}.
36c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet */
37c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohetpublic final class BridgeWindowSession implements IWindowSession {
38c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet
3946d43ccfd8cef75b4315828073c094cf1efb05ffXavier Ducrohet    @Override
409a230e01a1237749a8a19a5de8d46531b0c8ca6aDianne Hackborn    public int add(IWindow arg0, int seq, LayoutParams arg1, int arg2, Rect arg3,
41c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet            InputChannel outInputchannel)
42c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet            throws RemoteException {
43c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet        // pass for now.
44c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet        return 0;
45c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet    }
46c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet
4746d43ccfd8cef75b4315828073c094cf1efb05ffXavier Ducrohet    @Override
4839df578acddb739d7608e458533904bf5814c0daCraig Mautner    public int addToDisplay(IWindow arg0, int seq, LayoutParams arg1, int arg2, int displayId,
4939df578acddb739d7608e458533904bf5814c0daCraig Mautner                            Rect arg3, InputChannel outInputchannel)
5039df578acddb739d7608e458533904bf5814c0daCraig Mautner            throws RemoteException {
5139df578acddb739d7608e458533904bf5814c0daCraig Mautner        // pass for now.
5239df578acddb739d7608e458533904bf5814c0daCraig Mautner        return 0;
5339df578acddb739d7608e458533904bf5814c0daCraig Mautner    }
5439df578acddb739d7608e458533904bf5814c0daCraig Mautner
5539df578acddb739d7608e458533904bf5814c0daCraig Mautner    @Override
5639df578acddb739d7608e458533904bf5814c0daCraig Mautner    public int addWithoutInputChannel(IWindow arg0, int seq, LayoutParams arg1, int arg2,
5739df578acddb739d7608e458533904bf5814c0daCraig Mautner                                      Rect arg3)
5839df578acddb739d7608e458533904bf5814c0daCraig Mautner            throws RemoteException {
5939df578acddb739d7608e458533904bf5814c0daCraig Mautner        // pass for now.
6039df578acddb739d7608e458533904bf5814c0daCraig Mautner        return 0;
6139df578acddb739d7608e458533904bf5814c0daCraig Mautner    }
6239df578acddb739d7608e458533904bf5814c0daCraig Mautner
6339df578acddb739d7608e458533904bf5814c0daCraig Mautner    @Override
6439df578acddb739d7608e458533904bf5814c0daCraig Mautner    public int addToDisplayWithoutInputChannel(IWindow arg0, int seq, LayoutParams arg1, int arg2,
6539df578acddb739d7608e458533904bf5814c0daCraig Mautner                                               int displayId, Rect arg3)
66c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet            throws RemoteException {
67c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet        // pass for now.
68c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet        return 0;
69c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet    }
70c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet
7146d43ccfd8cef75b4315828073c094cf1efb05ffXavier Ducrohet    @Override
72c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet    public void finishDrawing(IWindow arg0) throws RemoteException {
73c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet        // pass for now.
74c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet    }
75c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet
7646d43ccfd8cef75b4315828073c094cf1efb05ffXavier Ducrohet    @Override
77c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet    public boolean getInTouchMode() throws RemoteException {
78c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet        // pass for now.
79c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet        return false;
80c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet    }
81c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet
8246d43ccfd8cef75b4315828073c094cf1efb05ffXavier Ducrohet    @Override
83c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet    public boolean performHapticFeedback(IWindow window, int effectId, boolean always) {
84c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet        // pass for now.
85c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet        return false;
86c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet    }
8746d43ccfd8cef75b4315828073c094cf1efb05ffXavier Ducrohet    @Override
889a230e01a1237749a8a19a5de8d46531b0c8ca6aDianne Hackborn    public int relayout(IWindow arg0, int seq, LayoutParams arg1, int arg2, int arg3, int arg4,
894286d6d115385391b75db8e6c4e397008ef9b3dbDianne Hackborn            int arg4_5, Rect arg5, Rect arg6, Rect arg7, Configuration arg7b,
905c58de3a523a384c47b0b1e0f5dd9728a74cd9f7Dianne Hackborn            Surface arg8) throws RemoteException {
91c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet        // pass for now.
92c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet        return 0;
93c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet    }
94c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet
9546d43ccfd8cef75b4315828073c094cf1efb05ffXavier Ducrohet    @Override
966d05fd3c795088ac60f86382df5a66d631e8a0cbDianne Hackborn    public void performDeferredDestroy(IWindow window) {
976d05fd3c795088ac60f86382df5a66d631e8a0cbDianne Hackborn        // pass for now.
986d05fd3c795088ac60f86382df5a66d631e8a0cbDianne Hackborn    }
996d05fd3c795088ac60f86382df5a66d631e8a0cbDianne Hackborn
10046d43ccfd8cef75b4315828073c094cf1efb05ffXavier Ducrohet    @Override
101648251710162cdaf7371012a1cbb79b9bc5bc0e4Dianne Hackborn    public boolean outOfMemory(IWindow window) throws RemoteException {
102648251710162cdaf7371012a1cbb79b9bc5bc0e4Dianne Hackborn        return false;
103648251710162cdaf7371012a1cbb79b9bc5bc0e4Dianne Hackborn    }
104648251710162cdaf7371012a1cbb79b9bc5bc0e4Dianne Hackborn
10546d43ccfd8cef75b4315828073c094cf1efb05ffXavier Ducrohet    @Override
106c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet    public void getDisplayFrame(IWindow window, Rect outDisplayFrame) {
107c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet        // pass for now.
108c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet    }
109c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet
11046d43ccfd8cef75b4315828073c094cf1efb05ffXavier Ducrohet    @Override
111c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet    public void remove(IWindow arg0) throws RemoteException {
112c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet        // pass for now.
113c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet    }
114c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet
11546d43ccfd8cef75b4315828073c094cf1efb05ffXavier Ducrohet    @Override
116c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet    public void setInTouchMode(boolean arg0) throws RemoteException {
117c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet        // pass for now.
118c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet    }
119c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet
12046d43ccfd8cef75b4315828073c094cf1efb05ffXavier Ducrohet    @Override
121c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet    public void setTransparentRegion(IWindow arg0, Region arg1) throws RemoteException {
122c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet        // pass for now.
123c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet    }
124c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet
12546d43ccfd8cef75b4315828073c094cf1efb05ffXavier Ducrohet    @Override
126c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet    public void setInsets(IWindow window, int touchable, Rect contentInsets,
127fbf097732137a32930d151f7ba6816a5b870c32aJeff Brown            Rect visibleInsets, Region touchableRegion) {
128c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet        // pass for now.
129c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet    }
130c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet
13146d43ccfd8cef75b4315828073c094cf1efb05ffXavier Ducrohet    @Override
13202d2b3ba9ba830a8147db2739613f7bbb2d0fcbfChristopher Tate    public IBinder prepareDrag(IWindow window, int flags,
133c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet            int thumbnailWidth, int thumbnailHeight, Surface outSurface)
134c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet            throws RemoteException {
135c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet        // pass for now
136c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet        return null;
137c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet    }
138c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet
13946d43ccfd8cef75b4315828073c094cf1efb05ffXavier Ducrohet    @Override
140c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet    public boolean performDrag(IWindow window, IBinder dragToken,
141c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet            float touchX, float touchY, float thumbCenterX, float thumbCenterY,
142c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet            ClipData data)
143c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet            throws RemoteException {
144c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet        // pass for now
145c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet        return false;
146c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet    }
147c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet
14846d43ccfd8cef75b4315828073c094cf1efb05ffXavier Ducrohet    @Override
149c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet    public void reportDropResult(IWindow window, boolean consumed) throws RemoteException {
150c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet        // pass for now
151c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet    }
152c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet
15346d43ccfd8cef75b4315828073c094cf1efb05ffXavier Ducrohet    @Override
154c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet    public void dragRecipientEntered(IWindow window) throws RemoteException {
155c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet        // pass for now
156c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet    }
157c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet
15846d43ccfd8cef75b4315828073c094cf1efb05ffXavier Ducrohet    @Override
159c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet    public void dragRecipientExited(IWindow window) throws RemoteException {
160c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet        // pass for now
161c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet    }
162c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet
16346d43ccfd8cef75b4315828073c094cf1efb05ffXavier Ducrohet    @Override
164c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet    public void setWallpaperPosition(IBinder window, float x, float y,
165c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet        float xStep, float yStep) {
166c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet        // pass for now.
167c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet    }
168c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet
16946d43ccfd8cef75b4315828073c094cf1efb05ffXavier Ducrohet    @Override
170c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet    public void wallpaperOffsetsComplete(IBinder window) {
171c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet        // pass for now.
172c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet    }
173c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet
17446d43ccfd8cef75b4315828073c094cf1efb05ffXavier Ducrohet    @Override
175c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet    public Bundle sendWallpaperCommand(IBinder window, String action, int x, int y,
176c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet            int z, Bundle extras, boolean sync) {
177c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet        // pass for now.
178c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet        return null;
179c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet    }
180c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet
18146d43ccfd8cef75b4315828073c094cf1efb05ffXavier Ducrohet    @Override
182c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet    public void wallpaperCommandComplete(IBinder window, Bundle result) {
183c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet        // pass for now.
184c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet    }
185c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet
18646d43ccfd8cef75b4315828073c094cf1efb05ffXavier Ducrohet    @Override
187a4b7f2f75e7803193429ec1179fb5e2eb1c6fbdaDianne Hackborn    public void setUniverseTransform(IBinder window, float alpha, float offx, float offy,
188a4b7f2f75e7803193429ec1179fb5e2eb1c6fbdaDianne Hackborn            float dsdx, float dtdx, float dsdy, float dtdy) {
189a4b7f2f75e7803193429ec1179fb5e2eb1c6fbdaDianne Hackborn        // pass for now.
190a4b7f2f75e7803193429ec1179fb5e2eb1c6fbdaDianne Hackborn    }
191a4b7f2f75e7803193429ec1179fb5e2eb1c6fbdaDianne Hackborn
192a4b7f2f75e7803193429ec1179fb5e2eb1c6fbdaDianne Hackborn    @Override
193c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet    public IBinder asBinder() {
194c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet        // pass for now.
195c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet        return null;
196c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet    }
1971cf70bbf96930662cab0e699d70b62865766ff52Svetoslav Ganov
1981cf70bbf96930662cab0e699d70b62865766ff52Svetoslav Ganov    @Override
1991cf70bbf96930662cab0e699d70b62865766ff52Svetoslav Ganov    public void onRectangleOnScreenRequested(IBinder window, Rect rectangle, boolean immediate) {
2001cf70bbf96930662cab0e699d70b62865766ff52Svetoslav Ganov        // pass for now.
2011cf70bbf96930662cab0e699d70b62865766ff52Svetoslav Ganov    }
202c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet}
203