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;
274ec6cc51087f310acf6f933ae2b69f1520b78453Dianne Hackbornimport android.view.IWindowId;
28c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohetimport android.view.IWindowSession;
29c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohetimport android.view.InputChannel;
30c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohetimport android.view.Surface;
31c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohetimport android.view.SurfaceView;
32c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohetimport android.view.WindowManager.LayoutParams;
33c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet
34c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet/**
35c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet * Implementation of {@link IWindowSession} so that mSession is not null in
36c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet * the {@link SurfaceView}.
37c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet */
38c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohetpublic final class BridgeWindowSession implements IWindowSession {
39c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet
4046d43ccfd8cef75b4315828073c094cf1efb05ffXavier Ducrohet    @Override
419a230e01a1237749a8a19a5de8d46531b0c8ca6aDianne Hackborn    public int add(IWindow arg0, int seq, LayoutParams arg1, int arg2, Rect arg3,
42c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet            InputChannel outInputchannel)
43c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet            throws RemoteException {
44c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet        // pass for now.
45c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet        return 0;
46c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet    }
47c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet
4846d43ccfd8cef75b4315828073c094cf1efb05ffXavier Ducrohet    @Override
4939df578acddb739d7608e458533904bf5814c0daCraig Mautner    public int addToDisplay(IWindow arg0, int seq, LayoutParams arg1, int arg2, int displayId,
5039df578acddb739d7608e458533904bf5814c0daCraig Mautner                            Rect arg3, InputChannel outInputchannel)
5139df578acddb739d7608e458533904bf5814c0daCraig Mautner            throws RemoteException {
5239df578acddb739d7608e458533904bf5814c0daCraig Mautner        // pass for now.
5339df578acddb739d7608e458533904bf5814c0daCraig Mautner        return 0;
5439df578acddb739d7608e458533904bf5814c0daCraig Mautner    }
5539df578acddb739d7608e458533904bf5814c0daCraig Mautner
5639df578acddb739d7608e458533904bf5814c0daCraig Mautner    @Override
5739df578acddb739d7608e458533904bf5814c0daCraig Mautner    public int addWithoutInputChannel(IWindow arg0, int seq, LayoutParams arg1, int arg2,
5839df578acddb739d7608e458533904bf5814c0daCraig Mautner                                      Rect arg3)
5939df578acddb739d7608e458533904bf5814c0daCraig Mautner            throws RemoteException {
6039df578acddb739d7608e458533904bf5814c0daCraig Mautner        // pass for now.
6139df578acddb739d7608e458533904bf5814c0daCraig Mautner        return 0;
6239df578acddb739d7608e458533904bf5814c0daCraig Mautner    }
6339df578acddb739d7608e458533904bf5814c0daCraig Mautner
6439df578acddb739d7608e458533904bf5814c0daCraig Mautner    @Override
6539df578acddb739d7608e458533904bf5814c0daCraig Mautner    public int addToDisplayWithoutInputChannel(IWindow arg0, int seq, LayoutParams arg1, int arg2,
6639df578acddb739d7608e458533904bf5814c0daCraig Mautner                                               int displayId, Rect arg3)
67c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet            throws RemoteException {
68c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet        // pass for now.
69c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet        return 0;
70c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet    }
71c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet
7246d43ccfd8cef75b4315828073c094cf1efb05ffXavier Ducrohet    @Override
73c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet    public void finishDrawing(IWindow arg0) throws RemoteException {
74c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet        // pass for now.
75c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet    }
76c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet
7746d43ccfd8cef75b4315828073c094cf1efb05ffXavier Ducrohet    @Override
78c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet    public boolean getInTouchMode() throws RemoteException {
79c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet        // pass for now.
80c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet        return false;
81c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet    }
82c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet
8346d43ccfd8cef75b4315828073c094cf1efb05ffXavier Ducrohet    @Override
84c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet    public boolean performHapticFeedback(IWindow window, int effectId, boolean always) {
85c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet        // pass for now.
86c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet        return false;
87c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet    }
8846d43ccfd8cef75b4315828073c094cf1efb05ffXavier Ducrohet    @Override
899a230e01a1237749a8a19a5de8d46531b0c8ca6aDianne Hackborn    public int relayout(IWindow arg0, int seq, LayoutParams arg1, int arg2, int arg3, int arg4,
90c4aad01cbbb69c916ef323693e1fd0560b0eccbaDianne Hackborn            int arg4_5, Rect arg5Z, Rect arg5, Rect arg6, Rect arg7, Configuration arg7b,
915c58de3a523a384c47b0b1e0f5dd9728a74cd9f7Dianne Hackborn            Surface arg8) throws RemoteException {
92c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet        // pass for now.
93c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet        return 0;
94c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet    }
95c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet
9646d43ccfd8cef75b4315828073c094cf1efb05ffXavier Ducrohet    @Override
976d05fd3c795088ac60f86382df5a66d631e8a0cbDianne Hackborn    public void performDeferredDestroy(IWindow window) {
986d05fd3c795088ac60f86382df5a66d631e8a0cbDianne Hackborn        // pass for now.
996d05fd3c795088ac60f86382df5a66d631e8a0cbDianne Hackborn    }
1006d05fd3c795088ac60f86382df5a66d631e8a0cbDianne Hackborn
10146d43ccfd8cef75b4315828073c094cf1efb05ffXavier Ducrohet    @Override
102648251710162cdaf7371012a1cbb79b9bc5bc0e4Dianne Hackborn    public boolean outOfMemory(IWindow window) throws RemoteException {
103648251710162cdaf7371012a1cbb79b9bc5bc0e4Dianne Hackborn        return false;
104648251710162cdaf7371012a1cbb79b9bc5bc0e4Dianne Hackborn    }
105648251710162cdaf7371012a1cbb79b9bc5bc0e4Dianne Hackborn
10646d43ccfd8cef75b4315828073c094cf1efb05ffXavier Ducrohet    @Override
107c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet    public void getDisplayFrame(IWindow window, Rect outDisplayFrame) {
108c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet        // pass for now.
109c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet    }
110c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet
11146d43ccfd8cef75b4315828073c094cf1efb05ffXavier Ducrohet    @Override
112c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet    public void remove(IWindow arg0) throws RemoteException {
113c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet        // pass for now.
114c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet    }
115c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet
11646d43ccfd8cef75b4315828073c094cf1efb05ffXavier Ducrohet    @Override
117c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet    public void setInTouchMode(boolean arg0) throws RemoteException {
118c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet        // pass for now.
119c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet    }
120c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet
12146d43ccfd8cef75b4315828073c094cf1efb05ffXavier Ducrohet    @Override
122c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet    public void setTransparentRegion(IWindow arg0, Region arg1) throws RemoteException {
123c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet        // pass for now.
124c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet    }
125c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet
12646d43ccfd8cef75b4315828073c094cf1efb05ffXavier Ducrohet    @Override
127c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet    public void setInsets(IWindow window, int touchable, Rect contentInsets,
128fbf097732137a32930d151f7ba6816a5b870c32aJeff Brown            Rect visibleInsets, Region touchableRegion) {
129c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet        // pass for now.
130c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet    }
131c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet
13246d43ccfd8cef75b4315828073c094cf1efb05ffXavier Ducrohet    @Override
13302d2b3ba9ba830a8147db2739613f7bbb2d0fcbfChristopher Tate    public IBinder prepareDrag(IWindow window, int flags,
134c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet            int thumbnailWidth, int thumbnailHeight, Surface outSurface)
135c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet            throws RemoteException {
136c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet        // pass for now
137c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet        return null;
138c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet    }
139c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet
14046d43ccfd8cef75b4315828073c094cf1efb05ffXavier Ducrohet    @Override
141c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet    public boolean performDrag(IWindow window, IBinder dragToken,
142c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet            float touchX, float touchY, float thumbCenterX, float thumbCenterY,
143c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet            ClipData data)
144c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet            throws RemoteException {
145c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet        // pass for now
146c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet        return false;
147c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet    }
148c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet
14946d43ccfd8cef75b4315828073c094cf1efb05ffXavier Ducrohet    @Override
150c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet    public void reportDropResult(IWindow window, boolean consumed) throws RemoteException {
151c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet        // pass for now
152c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet    }
153c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet
15446d43ccfd8cef75b4315828073c094cf1efb05ffXavier Ducrohet    @Override
155c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet    public void dragRecipientEntered(IWindow window) throws RemoteException {
156c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet        // pass for now
157c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet    }
158c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet
15946d43ccfd8cef75b4315828073c094cf1efb05ffXavier Ducrohet    @Override
160c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet    public void dragRecipientExited(IWindow window) throws RemoteException {
161c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet        // pass for now
162c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet    }
163c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet
16446d43ccfd8cef75b4315828073c094cf1efb05ffXavier Ducrohet    @Override
165c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet    public void setWallpaperPosition(IBinder window, float x, float y,
166c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet        float xStep, float yStep) {
167c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet        // pass for now.
168c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet    }
169c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet
17046d43ccfd8cef75b4315828073c094cf1efb05ffXavier Ducrohet    @Override
171c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet    public void wallpaperOffsetsComplete(IBinder window) {
172c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet        // pass for now.
173c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet    }
174c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet
17546d43ccfd8cef75b4315828073c094cf1efb05ffXavier Ducrohet    @Override
176c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet    public Bundle sendWallpaperCommand(IBinder window, String action, int x, int y,
177c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet            int z, Bundle extras, boolean sync) {
178c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet        // pass for now.
179c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet        return null;
180c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet    }
181c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet
18246d43ccfd8cef75b4315828073c094cf1efb05ffXavier Ducrohet    @Override
183c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet    public void wallpaperCommandComplete(IBinder window, Bundle result) {
184c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet        // pass for now.
185c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet    }
186c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet
18746d43ccfd8cef75b4315828073c094cf1efb05ffXavier Ducrohet    @Override
188a4b7f2f75e7803193429ec1179fb5e2eb1c6fbdaDianne Hackborn    public void setUniverseTransform(IBinder window, float alpha, float offx, float offy,
189a4b7f2f75e7803193429ec1179fb5e2eb1c6fbdaDianne Hackborn            float dsdx, float dtdx, float dsdy, float dtdy) {
190a4b7f2f75e7803193429ec1179fb5e2eb1c6fbdaDianne Hackborn        // pass for now.
191a4b7f2f75e7803193429ec1179fb5e2eb1c6fbdaDianne Hackborn    }
192a4b7f2f75e7803193429ec1179fb5e2eb1c6fbdaDianne Hackborn
193a4b7f2f75e7803193429ec1179fb5e2eb1c6fbdaDianne Hackborn    @Override
194c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet    public IBinder asBinder() {
195c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet        // pass for now.
196c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet        return null;
197c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet    }
1981cf70bbf96930662cab0e699d70b62865766ff52Svetoslav Ganov
1991cf70bbf96930662cab0e699d70b62865766ff52Svetoslav Ganov    @Override
2001cf70bbf96930662cab0e699d70b62865766ff52Svetoslav Ganov    public void onRectangleOnScreenRequested(IBinder window, Rect rectangle, boolean immediate) {
2011cf70bbf96930662cab0e699d70b62865766ff52Svetoslav Ganov        // pass for now.
2021cf70bbf96930662cab0e699d70b62865766ff52Svetoslav Ganov    }
2034ec6cc51087f310acf6f933ae2b69f1520b78453Dianne Hackborn
2044ec6cc51087f310acf6f933ae2b69f1520b78453Dianne Hackborn    @Override
2054ec6cc51087f310acf6f933ae2b69f1520b78453Dianne Hackborn    public IWindowId getWindowId(IBinder window) throws RemoteException {
2064ec6cc51087f310acf6f933ae2b69f1520b78453Dianne Hackborn        // pass for now.
2074ec6cc51087f310acf6f933ae2b69f1520b78453Dianne Hackborn        return null;
2084ec6cc51087f310acf6f933ae2b69f1520b78453Dianne Hackborn    }
209c2e9651bf386a1f7bf7fc706cf5424950570470cXavier Ducrohet}
210