blob: deb0e09e6f72c0aeba079ece38da691db158c778 [file] [log] [blame]
/*
* 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.content.res.Configuration;
import android.graphics.Bitmap;
import android.graphics.GraphicBuffer;
import android.graphics.Point;
import android.graphics.Rect;
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.app.IAssistScreenshotReceiver;
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(IAssistScreenshotReceiver 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(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 {
}
}