/* * Copyright (C) 2011 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package android.view; import android.app.IAssistDataReceiver; import android.content.res.Configuration; import android.graphics.Bitmap; import android.graphics.GraphicBuffer; import android.graphics.Point; import android.graphics.Rect; import android.graphics.Region; import android.os.Bundle; import android.os.IBinder; import android.os.IRemoteCallback; import android.os.ParcelFileDescriptor; import android.os.RemoteException; import android.util.DisplayMetrics; import com.android.internal.os.IResultReceiver; import com.android.internal.policy.IKeyguardDismissCallback; import com.android.internal.policy.IShortcutService; import com.android.internal.view.IInputContext; import com.android.internal.view.IInputMethodClient; /** * Basic implementation of {@link IWindowManager} so that {@link Display} (and * {@link Display_Delegate}) can return a valid instance. */ public class IWindowManagerImpl implements IWindowManager { private final Configuration mConfig; private final DisplayMetrics mMetrics; private final int mRotation; private final boolean mHasNavigationBar; public IWindowManagerImpl(Configuration config, DisplayMetrics metrics, int rotation, boolean hasNavigationBar) { mConfig = config; mMetrics = metrics; mRotation = rotation; mHasNavigationBar = hasNavigationBar; } // custom API. public DisplayMetrics getMetrics() { return mMetrics; } // ---- implementation of IWindowManager that we care about ---- @Override public int getDefaultDisplayRotation() throws RemoteException { return mRotation; } @Override public boolean hasNavigationBar() { return mHasNavigationBar; } // ---- unused implementation of IWindowManager ---- @Override public void addWindowToken(IBinder arg0, int arg1, int arg2) throws RemoteException { // TODO Auto-generated method stub } @Override public void clearForcedDisplaySize(int displayId) throws RemoteException { // TODO Auto-generated method stub } @Override public void clearForcedDisplayDensityForUser(int displayId, int userId) throws RemoteException { // TODO Auto-generated method stub } @Override public void setOverscan(int displayId, int left, int top, int right, int bottom) throws RemoteException { // TODO Auto-generated method stub } @Override public void closeSystemDialogs(String arg0) throws RemoteException { // TODO Auto-generated method stub } @Override public void startFreezingScreen(int exitAnim, int enterAnim) { // TODO Auto-generated method stub } @Override public void stopFreezingScreen() { // TODO Auto-generated method stub } @Override public void disableKeyguard(IBinder arg0, String arg1) throws RemoteException { // TODO Auto-generated method stub } @Override public void executeAppTransition() throws RemoteException { // TODO Auto-generated method stub } @Override public void exitKeyguardSecurely(IOnKeyguardExitResult arg0) throws RemoteException { // TODO Auto-generated method stub } @Override public void freezeRotation(int arg0) throws RemoteException { // TODO Auto-generated method stub } @Override public float getAnimationScale(int arg0) throws RemoteException { // TODO Auto-generated method stub return 0; } @Override public float[] getAnimationScales() throws RemoteException { // TODO Auto-generated method stub return null; } @Override public int getPendingAppTransition() throws RemoteException { // TODO Auto-generated method stub return 0; } @Override public boolean inKeyguardRestrictedInputMode() throws RemoteException { // TODO Auto-generated method stub return false; } @Override public boolean inputMethodClientHasFocus(IInputMethodClient arg0) throws RemoteException { // TODO Auto-generated method stub return false; } @Override public boolean isKeyguardLocked() throws RemoteException { // TODO Auto-generated method stub return false; } @Override public boolean isKeyguardSecure() throws RemoteException { // TODO Auto-generated method stub return false; } @Override public boolean isViewServerRunning() throws RemoteException { // TODO Auto-generated method stub return false; } @Override public IWindowSession openSession(IWindowSessionCallback argn1, IInputMethodClient arg0, IInputContext arg1) throws RemoteException { // TODO Auto-generated method stub return null; } @Override public void overridePendingAppTransition(String arg0, int arg1, int arg2, IRemoteCallback startedCallback) throws RemoteException { // TODO Auto-generated method stub } @Override public void overridePendingAppTransitionScaleUp(int startX, int startY, int startWidth, int startHeight) throws RemoteException { // TODO Auto-generated method stub } @Override public void overridePendingAppTransitionClipReveal(int startX, int startY, int startWidth, int startHeight) throws RemoteException { // TODO Auto-generated method stub } @Override public void overridePendingAppTransitionThumb(GraphicBuffer srcThumb, int startX, int startY, IRemoteCallback startedCallback, boolean scaleUp) throws RemoteException { // TODO Auto-generated method stub } @Override public void overridePendingAppTransitionAspectScaledThumb(GraphicBuffer srcThumb, int startX, int startY, int targetWidth, int targetHeight, IRemoteCallback startedCallback, boolean scaleUp) { // TODO Auto-generated method stub } @Override public void overridePendingAppTransitionInPlace(String packageName, int anim) { // TODO Auto-generated method stub } @Override public void overridePendingAppTransitionMultiThumbFuture( IAppTransitionAnimationSpecsFuture specsFuture, IRemoteCallback startedCallback, boolean scaleUp) throws RemoteException { } @Override public void overridePendingAppTransitionMultiThumb(AppTransitionAnimationSpec[] specs, IRemoteCallback callback0, IRemoteCallback callback1, boolean scaleUp) { // TODO Auto-generated method stub } @Override public void prepareAppTransition(int arg0, boolean arg1) throws RemoteException { // TODO Auto-generated method stub } @Override public void reenableKeyguard(IBinder arg0) throws RemoteException { // TODO Auto-generated method stub } @Override public void removeWindowToken(IBinder arg0, int arg1) throws RemoteException { // TODO Auto-generated method stub } @Override public boolean requestAssistScreenshot(IAssistDataReceiver receiver) throws RemoteException { // TODO Auto-generated method stub return false; } @Override public void setAnimationScale(int arg0, float arg1) throws RemoteException { // TODO Auto-generated method stub } @Override public void setAnimationScales(float[] arg0) throws RemoteException { // TODO Auto-generated method stub } @Override public float getCurrentAnimatorScale() throws RemoteException { return 0; } @Override public void setEventDispatching(boolean arg0) throws RemoteException { // TODO Auto-generated method stub } @Override public void setFocusedApp(IBinder arg0, boolean arg1) throws RemoteException { // TODO Auto-generated method stub } @Override public void getInitialDisplaySize(int displayId, Point size) { // TODO Auto-generated method stub } @Override public void getBaseDisplaySize(int displayId, Point size) { // TODO Auto-generated method stub } @Override public void setForcedDisplaySize(int displayId, int arg0, int arg1) throws RemoteException { // TODO Auto-generated method stub } @Override public int getInitialDisplayDensity(int displayId) { return -1; } @Override public int getBaseDisplayDensity(int displayId) { return -1; } @Override public void setForcedDisplayDensityForUser(int displayId, int density, int userId) throws RemoteException { // TODO Auto-generated method stub } @Override public void setForcedDisplayScalingMode(int displayId, int mode) { } @Override public void setInTouchMode(boolean arg0) throws RemoteException { // TODO Auto-generated method stub } @Override public int[] setNewDisplayOverrideConfiguration(Configuration arg0, int displayId) throws RemoteException { // TODO Auto-generated method stub return null; } @Override public void setScreenCaptureDisabled(int userId, boolean disabled) { // TODO Auto-generated method stub } @Override public void updateRotation(boolean arg0, boolean arg1) throws RemoteException { // TODO Auto-generated method stub } @Override public void setStrictModeVisualIndicatorPreference(String arg0) throws RemoteException { // TODO Auto-generated method stub } @Override public void showStrictModeViolation(boolean arg0) throws RemoteException { // TODO Auto-generated method stub } @Override public boolean startViewServer(int arg0) throws RemoteException { // TODO Auto-generated method stub return false; } @Override public void statusBarVisibilityChanged(int arg0) throws RemoteException { // TODO Auto-generated method stub } @Override public void setRecentsVisibility(boolean visible) { // TODO Auto-generated method stub } @Override public void setPipVisibility(boolean visible) { // TODO Auto-generated method stub } @Override public boolean stopViewServer() throws RemoteException { // TODO Auto-generated method stub return false; } @Override public void thawRotation() throws RemoteException { // TODO Auto-generated method stub } @Override public Configuration updateOrientationFromAppTokens(Configuration arg0, IBinder arg1, int arg2) throws RemoteException { // TODO Auto-generated method stub return null; } @Override public int watchRotation(IRotationWatcher arg0, int arg1) throws RemoteException { // TODO Auto-generated method stub return 0; } @Override public void removeRotationWatcher(IRotationWatcher arg0) throws RemoteException { } @Override public IBinder asBinder() { // TODO Auto-generated method stub return null; } @Override public int getPreferredOptionsPanelGravity() throws RemoteException { return Gravity.CENTER_HORIZONTAL | Gravity.BOTTOM; } @Override public void dismissKeyguard(IKeyguardDismissCallback callback) throws RemoteException { } @Override public void setSwitchingUser(boolean switching) throws RemoteException { } @Override public void lockNow(Bundle options) { // TODO Auto-generated method stub } @Override public boolean isSafeModeEnabled() { return false; } @Override public boolean isRotationFrozen() throws RemoteException { // TODO Auto-generated method stub return false; } @Override public void enableScreenIfNeeded() throws RemoteException { // TODO Auto-generated method stub } @Override public boolean clearWindowContentFrameStats(IBinder token) throws RemoteException { // TODO Auto-generated method stub return false; } @Override public WindowContentFrameStats getWindowContentFrameStats(IBinder token) throws RemoteException { // TODO Auto-generated method stub return null; } @Override public int getDockedStackSide() throws RemoteException { return 0; } @Override public void setDockedStackResizing(boolean resizing) throws RemoteException { } @Override public void endProlongedAnimations() { } @Override public void registerDockedStackListener(IDockedStackListener listener) throws RemoteException { } @Override public void registerPinnedStackListener(int displayId, IPinnedStackListener listener) throws RemoteException { } @Override public void setResizeDimLayer(boolean visible, int targetStackId, float alpha) throws RemoteException { } @Override public void setDockedStackDividerTouchRegion(Rect touchableRegion) throws RemoteException { } @Override public void requestAppKeyboardShortcuts( IResultReceiver receiver, int deviceId) throws RemoteException { } @Override public void getStableInsets(int displayId, Rect outInsets) throws RemoteException { } @Override public void registerShortcutKey(long shortcutCode, IShortcutService service) throws RemoteException {} @Override public void createInputConsumer(IBinder token, String name, InputChannel inputChannel) throws RemoteException {} @Override public boolean destroyInputConsumer(String name) throws RemoteException { return false; } @Override public Bitmap screenshotWallpaper() throws RemoteException { return null; } @Override public void enableSurfaceTrace(ParcelFileDescriptor fd) throws RemoteException { } @Override public void disableSurfaceTrace() throws RemoteException { } @Override public Region getCurrentImeTouchRegion() throws RemoteException { return null; } @Override public boolean registerWallpaperVisibilityListener(IWallpaperVisibilityListener listener, int displayId) throws RemoteException { return false; } @Override public void unregisterWallpaperVisibilityListener(IWallpaperVisibilityListener listener, int displayId) throws RemoteException { } }