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