1282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski/* 2282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski * Copyright (C) 2010 The Android Open Source Project 3282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski * 4282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski * Licensed under the Apache License, Version 2.0 (the "License"); 5282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski * you may not use this file except in compliance with the License. 6282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski * You may obtain a copy of the License at 7282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski * 8282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski * http://www.apache.org/licenses/LICENSE-2.0 9282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski * 10282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski * Unless required by applicable law or agreed to in writing, software 11282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski * distributed under the License is distributed on an "AS IS" BASIS, 12282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski * See the License for the specific language governing permissions and 14282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski * limitations under the License. 15282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski */ 16282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski 17282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinskipackage com.android.layoutlib.bridge.android; 18282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski 19282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinskiimport android.content.ClipData; 20282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinskiimport android.content.res.Configuration; 21282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinskiimport android.graphics.Rect; 22282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinskiimport android.graphics.Region; 23282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinskiimport android.os.Bundle; 24282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinskiimport android.os.IBinder; 25282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinskiimport android.os.RemoteException; 26282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinskiimport android.view.IWindow; 27282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinskiimport android.view.IWindowId; 28282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinskiimport android.view.IWindowSession; 29282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinskiimport android.view.InputChannel; 30282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinskiimport android.view.Surface; 31282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinskiimport android.view.SurfaceView; 32282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinskiimport android.view.WindowManager.LayoutParams; 33282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski 34282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski/** 35282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski * Implementation of {@link IWindowSession} so that mSession is not null in 36282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski * the {@link SurfaceView}. 37282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski */ 38282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinskipublic final class BridgeWindowSession implements IWindowSession { 39282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski 40282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski @Override 4137d7a68de7e353c31a3a4736054cd86f0e002eafAdrian Roos public int add(IWindow arg0, int seq, LayoutParams arg1, int arg2, Rect arg3, Rect arg4, 42282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski InputChannel outInputchannel) 43282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski throws RemoteException { 44282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski // pass for now. 45282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski return 0; 46282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski } 47282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski 48282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski @Override 49282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski public int addToDisplay(IWindow arg0, int seq, LayoutParams arg1, int arg2, int displayId, 5037d7a68de7e353c31a3a4736054cd86f0e002eafAdrian Roos Rect arg3, Rect arg4, InputChannel outInputchannel) 51282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski throws RemoteException { 52282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski // pass for now. 53282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski return 0; 54282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski } 55282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski 56282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski @Override 57282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski public int addWithoutInputChannel(IWindow arg0, int seq, LayoutParams arg1, int arg2, 5837d7a68de7e353c31a3a4736054cd86f0e002eafAdrian Roos Rect arg3, Rect arg4) 59282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski throws RemoteException { 60282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski // pass for now. 61282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski return 0; 62282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski } 63282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski 64282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski @Override 65282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski public int addToDisplayWithoutInputChannel(IWindow arg0, int seq, LayoutParams arg1, int arg2, 6637d7a68de7e353c31a3a4736054cd86f0e002eafAdrian Roos int displayId, Rect arg3, Rect arg4) 67282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski throws RemoteException { 68282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski // pass for now. 69282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski return 0; 70282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski } 71282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski 72282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski @Override 73282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski public void finishDrawing(IWindow arg0) throws RemoteException { 74282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski // pass for now. 75282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski } 76282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski 77282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski @Override 78282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski public boolean getInTouchMode() throws RemoteException { 79282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski // pass for now. 80282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski return false; 81282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski } 82282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski 83282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski @Override 84282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski public boolean performHapticFeedback(IWindow window, int effectId, boolean always) { 85282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski // pass for now. 86282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski return false; 87282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski } 889657804afb9eb628fa5485750c43e78458b2d002Adrian Roos 89282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski @Override 909657804afb9eb628fa5485750c43e78458b2d002Adrian Roos public int relayout(IWindow iWindow, int i, LayoutParams layoutParams, int i2, 919657804afb9eb628fa5485750c43e78458b2d002Adrian Roos int i3, int i4, int i5, Rect rect, Rect rect2, Rect rect3, Rect rect4, Rect rect5, 929657804afb9eb628fa5485750c43e78458b2d002Adrian Roos Configuration configuration, Surface surface) throws RemoteException { 93282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski // pass for now. 94282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski return 0; 95282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski } 96282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski 97282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski @Override 98282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski public void performDeferredDestroy(IWindow window) { 99282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski // pass for now. 100282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski } 101282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski 102282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski @Override 103282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski public boolean outOfMemory(IWindow window) throws RemoteException { 104282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski return false; 105282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski } 106282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski 107282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski @Override 108282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski public void getDisplayFrame(IWindow window, Rect outDisplayFrame) { 109282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski // pass for now. 110282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski } 111282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski 112282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski @Override 113282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski public void remove(IWindow arg0) throws RemoteException { 114282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski // pass for now. 115282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski } 116282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski 117282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski @Override 118282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski public void setInTouchMode(boolean arg0) throws RemoteException { 119282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski // pass for now. 120282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski } 121282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski 122282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski @Override 123282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski public void setTransparentRegion(IWindow arg0, Region arg1) throws RemoteException { 124282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski // pass for now. 125282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski } 126282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski 127282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski @Override 128282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski public void setInsets(IWindow window, int touchable, Rect contentInsets, 129282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski Rect visibleInsets, Region touchableRegion) { 130282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski // pass for now. 131282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski } 132282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski 133282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski @Override 134282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski public IBinder prepareDrag(IWindow window, int flags, 135282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski int thumbnailWidth, int thumbnailHeight, Surface outSurface) 136282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski throws RemoteException { 137282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski // pass for now 138282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski return null; 139282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski } 140282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski 141282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski @Override 142282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski public boolean performDrag(IWindow window, IBinder dragToken, 143282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski float touchX, float touchY, float thumbCenterX, float thumbCenterY, 144282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski ClipData data) 145282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski throws RemoteException { 146282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski // pass for now 147282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski return false; 148282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski } 149282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski 150282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski @Override 151282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski public void reportDropResult(IWindow window, boolean consumed) throws RemoteException { 152282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski // pass for now 153282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski } 154282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski 155282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski @Override 156282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski public void dragRecipientEntered(IWindow window) throws RemoteException { 157282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski // pass for now 158282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski } 159282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski 160282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski @Override 161282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski public void dragRecipientExited(IWindow window) throws RemoteException { 162282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski // pass for now 163282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski } 164282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski 165282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski @Override 166282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski public void setWallpaperPosition(IBinder window, float x, float y, 167282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski float xStep, float yStep) { 168282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski // pass for now. 169282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski } 170282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski 171282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski @Override 172282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski public void wallpaperOffsetsComplete(IBinder window) { 173282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski // pass for now. 174282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski } 175282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski 176282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski @Override 177f5cc3644f6d246138d22f35d00f1ce562cd715d5Dianne Hackborn public void setWallpaperDisplayOffset(IBinder windowToken, int x, int y) { 178f5cc3644f6d246138d22f35d00f1ce562cd715d5Dianne Hackborn // pass for now. 179f5cc3644f6d246138d22f35d00f1ce562cd715d5Dianne Hackborn } 180f5cc3644f6d246138d22f35d00f1ce562cd715d5Dianne Hackborn 181f5cc3644f6d246138d22f35d00f1ce562cd715d5Dianne Hackborn @Override 182282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski public Bundle sendWallpaperCommand(IBinder window, String action, int x, int y, 183282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski int z, Bundle extras, boolean sync) { 184282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski // pass for now. 185282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski return null; 186282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski } 187282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski 188282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski @Override 189282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski public void wallpaperCommandComplete(IBinder window, Bundle result) { 190282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski // pass for now. 191282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski } 192282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski 193282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski @Override 194282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski public void setUniverseTransform(IBinder window, float alpha, float offx, float offy, 195282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski float dsdx, float dtdx, float dsdy, float dtdy) { 196282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski // pass for now. 197282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski } 198282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski 199282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski @Override 200282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski public IBinder asBinder() { 201282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski // pass for now. 202282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski return null; 203282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski } 204282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski 205282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski @Override 206a3874f0ac649a865d6ad7a8a032f57539bd0d0c3Ji-Hwan Lee public void onRectangleOnScreenRequested(IBinder window, Rect rectangle) { 207282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski // pass for now. 208282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski } 209282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski 210282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski @Override 211282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski public IWindowId getWindowId(IBinder window) throws RemoteException { 212282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski // pass for now. 213282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski return null; 214282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski } 215282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski} 216