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