1 /* 2 * Copyright (C) 2011 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 package android.view; 18 19 import android.graphics.Point; 20 import com.android.internal.view.IInputContext; 21 import com.android.internal.view.IInputMethodClient; 22 23 import android.content.res.CompatibilityInfo; 24 import android.content.res.Configuration; 25 import android.graphics.Bitmap; 26 import android.os.Bundle; 27 import android.os.IBinder; 28 import android.os.IRemoteCallback; 29 import android.os.RemoteException; 30 import android.util.DisplayMetrics; 31 32 import java.lang.Override; 33 34 /** 35 * Basic implementation of {@link IWindowManager} so that {@link Display} (and 36 * {@link Display_Delegate}) can return a valid instance. 37 */ 38 public class IWindowManagerImpl implements IWindowManager { 39 40 private final Configuration mConfig; 41 private final DisplayMetrics mMetrics; 42 private final int mRotation; 43 private final boolean mHasNavigationBar; 44 IWindowManagerImpl(Configuration config, DisplayMetrics metrics, int rotation, boolean hasNavigationBar)45 public IWindowManagerImpl(Configuration config, DisplayMetrics metrics, int rotation, 46 boolean hasNavigationBar) { 47 mConfig = config; 48 mMetrics = metrics; 49 mRotation = rotation; 50 mHasNavigationBar = hasNavigationBar; 51 } 52 53 // custom API. 54 getMetrics()55 public DisplayMetrics getMetrics() { 56 return mMetrics; 57 } 58 59 // ---- implementation of IWindowManager that we care about ---- 60 61 @Override getRotation()62 public int getRotation() throws RemoteException { 63 return mRotation; 64 } 65 66 @Override hasNavigationBar()67 public boolean hasNavigationBar() { 68 return mHasNavigationBar; 69 } 70 71 // ---- unused implementation of IWindowManager ---- 72 73 @Override addAppToken(int arg0, IApplicationToken arg1, int arg2, int arg3, int arg4, boolean arg5, boolean arg6, int arg7, int arg8, boolean arg9, boolean arg10)74 public void addAppToken(int arg0, IApplicationToken arg1, int arg2, int arg3, int arg4, 75 boolean arg5, boolean arg6, int arg7, int arg8, boolean arg9, boolean arg10) 76 throws RemoteException { 77 // TODO Auto-generated method stub 78 79 } 80 81 @Override addWindowToken(IBinder arg0, int arg1)82 public void addWindowToken(IBinder arg0, int arg1) throws RemoteException { 83 // TODO Auto-generated method stub 84 85 } 86 87 @Override clearForcedDisplaySize(int displayId)88 public void clearForcedDisplaySize(int displayId) throws RemoteException { 89 // TODO Auto-generated method stub 90 } 91 92 @Override clearForcedDisplayDensity(int displayId)93 public void clearForcedDisplayDensity(int displayId) throws RemoteException { 94 // TODO Auto-generated method stub 95 } 96 97 @Override setOverscan(int displayId, int left, int top, int right, int bottom)98 public void setOverscan(int displayId, int left, int top, int right, int bottom) 99 throws RemoteException { 100 // TODO Auto-generated method stub 101 } 102 103 @Override closeSystemDialogs(String arg0)104 public void closeSystemDialogs(String arg0) throws RemoteException { 105 // TODO Auto-generated method stub 106 107 } 108 109 @Override startFreezingScreen(int exitAnim, int enterAnim)110 public void startFreezingScreen(int exitAnim, int enterAnim) { 111 // TODO Auto-generated method stub 112 } 113 114 @Override stopFreezingScreen()115 public void stopFreezingScreen() { 116 // TODO Auto-generated method stub 117 } 118 119 @Override disableKeyguard(IBinder arg0, String arg1)120 public void disableKeyguard(IBinder arg0, String arg1) throws RemoteException { 121 // TODO Auto-generated method stub 122 123 } 124 125 @Override executeAppTransition()126 public void executeAppTransition() throws RemoteException { 127 // TODO Auto-generated method stub 128 129 } 130 131 @Override exitKeyguardSecurely(IOnKeyguardExitResult arg0)132 public void exitKeyguardSecurely(IOnKeyguardExitResult arg0) throws RemoteException { 133 // TODO Auto-generated method stub 134 135 } 136 137 @Override freezeRotation(int arg0)138 public void freezeRotation(int arg0) throws RemoteException { 139 // TODO Auto-generated method stub 140 141 } 142 143 @Override getAnimationScale(int arg0)144 public float getAnimationScale(int arg0) throws RemoteException { 145 // TODO Auto-generated method stub 146 return 0; 147 } 148 149 @Override getAnimationScales()150 public float[] getAnimationScales() throws RemoteException { 151 // TODO Auto-generated method stub 152 return null; 153 } 154 155 @Override getAppOrientation(IApplicationToken arg0)156 public int getAppOrientation(IApplicationToken arg0) throws RemoteException { 157 // TODO Auto-generated method stub 158 return 0; 159 } 160 161 @Override getPendingAppTransition()162 public int getPendingAppTransition() throws RemoteException { 163 // TODO Auto-generated method stub 164 return 0; 165 } 166 167 @Override inKeyguardRestrictedInputMode()168 public boolean inKeyguardRestrictedInputMode() throws RemoteException { 169 // TODO Auto-generated method stub 170 return false; 171 } 172 173 @Override inputMethodClientHasFocus(IInputMethodClient arg0)174 public boolean inputMethodClientHasFocus(IInputMethodClient arg0) throws RemoteException { 175 // TODO Auto-generated method stub 176 return false; 177 } 178 179 @Override isKeyguardLocked()180 public boolean isKeyguardLocked() throws RemoteException { 181 // TODO Auto-generated method stub 182 return false; 183 } 184 185 @Override isKeyguardSecure()186 public boolean isKeyguardSecure() throws RemoteException { 187 // TODO Auto-generated method stub 188 return false; 189 } 190 191 @Override isViewServerRunning()192 public boolean isViewServerRunning() throws RemoteException { 193 // TODO Auto-generated method stub 194 return false; 195 } 196 197 @Override openSession(IWindowSessionCallback argn1, IInputMethodClient arg0, IInputContext arg1)198 public IWindowSession openSession(IWindowSessionCallback argn1, IInputMethodClient arg0, 199 IInputContext arg1) throws RemoteException { 200 // TODO Auto-generated method stub 201 return null; 202 } 203 204 @Override overridePendingAppTransition(String arg0, int arg1, int arg2, IRemoteCallback startedCallback)205 public void overridePendingAppTransition(String arg0, int arg1, int arg2, 206 IRemoteCallback startedCallback) throws RemoteException { 207 // TODO Auto-generated method stub 208 209 } 210 211 @Override overridePendingAppTransitionScaleUp(int startX, int startY, int startWidth, int startHeight)212 public void overridePendingAppTransitionScaleUp(int startX, int startY, int startWidth, 213 int startHeight) throws RemoteException { 214 // TODO Auto-generated method stub 215 } 216 217 @Override overridePendingAppTransitionThumb(Bitmap srcThumb, int startX, int startY, IRemoteCallback startedCallback, boolean scaleUp)218 public void overridePendingAppTransitionThumb(Bitmap srcThumb, int startX, int startY, 219 IRemoteCallback startedCallback, boolean scaleUp) throws RemoteException { 220 // TODO Auto-generated method stub 221 } 222 223 @Override overridePendingAppTransitionAspectScaledThumb(Bitmap srcThumb, int startX, int startY, int targetWidth, int targetHeight, IRemoteCallback startedCallback, boolean scaleUp)224 public void overridePendingAppTransitionAspectScaledThumb(Bitmap srcThumb, int startX, 225 int startY, int targetWidth, int targetHeight, IRemoteCallback startedCallback, 226 boolean scaleUp) { 227 // TODO Auto-generated method stub 228 } 229 230 @Override overridePendingAppTransitionInPlace(String packageName, int anim)231 public void overridePendingAppTransitionInPlace(String packageName, int anim) { 232 // TODO Auto-generated method stub 233 } 234 235 @Override pauseKeyDispatching(IBinder arg0)236 public void pauseKeyDispatching(IBinder arg0) throws RemoteException { 237 // TODO Auto-generated method stub 238 239 } 240 241 @Override prepareAppTransition(int arg0, boolean arg1)242 public void prepareAppTransition(int arg0, boolean arg1) throws RemoteException { 243 // TODO Auto-generated method stub 244 245 } 246 247 @Override reenableKeyguard(IBinder arg0)248 public void reenableKeyguard(IBinder arg0) throws RemoteException { 249 // TODO Auto-generated method stub 250 251 } 252 253 @Override removeAppToken(IBinder arg0)254 public void removeAppToken(IBinder arg0) throws RemoteException { 255 // TODO Auto-generated method stub 256 257 } 258 259 @Override removeWindowToken(IBinder arg0)260 public void removeWindowToken(IBinder arg0) throws RemoteException { 261 // TODO Auto-generated method stub 262 263 } 264 265 @Override resumeKeyDispatching(IBinder arg0)266 public void resumeKeyDispatching(IBinder arg0) throws RemoteException { 267 // TODO Auto-generated method stub 268 269 } 270 271 @Override screenshotApplications(IBinder arg0, int displayId, int arg1, int arg2, boolean arg3)272 public Bitmap screenshotApplications(IBinder arg0, int displayId, int arg1, 273 int arg2, boolean arg3) throws RemoteException { 274 // TODO Auto-generated method stub 275 return null; 276 } 277 278 @Override setAnimationScale(int arg0, float arg1)279 public void setAnimationScale(int arg0, float arg1) throws RemoteException { 280 // TODO Auto-generated method stub 281 282 } 283 284 @Override setAnimationScales(float[] arg0)285 public void setAnimationScales(float[] arg0) throws RemoteException { 286 // TODO Auto-generated method stub 287 288 } 289 290 @Override getCurrentAnimatorScale()291 public float getCurrentAnimatorScale() throws RemoteException { 292 return 0; 293 } 294 295 @Override setAppGroupId(IBinder arg0, int arg1)296 public void setAppGroupId(IBinder arg0, int arg1) throws RemoteException { 297 // TODO Auto-generated method stub 298 299 } 300 301 @Override setAppOrientation(IApplicationToken arg0, int arg1)302 public void setAppOrientation(IApplicationToken arg0, int arg1) throws RemoteException { 303 // TODO Auto-generated method stub 304 } 305 306 @Override setAppStartingWindow(IBinder arg0, String arg1, int arg2, CompatibilityInfo arg3, CharSequence arg4, int arg5, int arg6, int arg7, int arg8, IBinder arg9, boolean arg10)307 public void setAppStartingWindow(IBinder arg0, String arg1, int arg2, CompatibilityInfo arg3, 308 CharSequence arg4, int arg5, int arg6, int arg7, int arg8, IBinder arg9, boolean arg10) 309 throws RemoteException { 310 // TODO Auto-generated method stub 311 } 312 313 @Override setAppVisibility(IBinder arg0, boolean arg1)314 public void setAppVisibility(IBinder arg0, boolean arg1) throws RemoteException { 315 // TODO Auto-generated method stub 316 317 } 318 319 @Override setAppWillBeHidden(IBinder arg0)320 public void setAppWillBeHidden(IBinder arg0) throws RemoteException { 321 // TODO Auto-generated method stub 322 } 323 324 @Override setEventDispatching(boolean arg0)325 public void setEventDispatching(boolean arg0) throws RemoteException { 326 // TODO Auto-generated method stub 327 } 328 329 @Override setFocusedApp(IBinder arg0, boolean arg1)330 public void setFocusedApp(IBinder arg0, boolean arg1) throws RemoteException { 331 // TODO Auto-generated method stub 332 } 333 334 @Override getInitialDisplaySize(int displayId, Point size)335 public void getInitialDisplaySize(int displayId, Point size) { 336 // TODO Auto-generated method stub 337 } 338 339 @Override getBaseDisplaySize(int displayId, Point size)340 public void getBaseDisplaySize(int displayId, Point size) { 341 // TODO Auto-generated method stub 342 } 343 344 @Override setForcedDisplaySize(int displayId, int arg0, int arg1)345 public void setForcedDisplaySize(int displayId, int arg0, int arg1) throws RemoteException { 346 // TODO Auto-generated method stub 347 } 348 349 @Override getInitialDisplayDensity(int displayId)350 public int getInitialDisplayDensity(int displayId) { 351 return -1; 352 } 353 354 @Override getBaseDisplayDensity(int displayId)355 public int getBaseDisplayDensity(int displayId) { 356 return -1; 357 } 358 359 @Override setForcedDisplayDensity(int displayId, int density)360 public void setForcedDisplayDensity(int displayId, int density) throws RemoteException { 361 // TODO Auto-generated method stub 362 } 363 364 @Override setInTouchMode(boolean arg0)365 public void setInTouchMode(boolean arg0) throws RemoteException { 366 // TODO Auto-generated method stub 367 } 368 369 @Override setNewConfiguration(Configuration arg0)370 public void setNewConfiguration(Configuration arg0) throws RemoteException { 371 // TODO Auto-generated method stub 372 } 373 374 @Override setScreenCaptureDisabled(int userId, boolean disabled)375 public void setScreenCaptureDisabled(int userId, boolean disabled) { 376 // TODO Auto-generated method stub 377 } 378 379 @Override updateRotation(boolean arg0, boolean arg1)380 public void updateRotation(boolean arg0, boolean arg1) throws RemoteException { 381 // TODO Auto-generated method stub 382 } 383 384 @Override setStrictModeVisualIndicatorPreference(String arg0)385 public void setStrictModeVisualIndicatorPreference(String arg0) throws RemoteException { 386 // TODO Auto-generated method stub 387 } 388 389 @Override showStrictModeViolation(boolean arg0)390 public void showStrictModeViolation(boolean arg0) throws RemoteException { 391 // TODO Auto-generated method stub 392 } 393 394 @Override startAppFreezingScreen(IBinder arg0, int arg1)395 public void startAppFreezingScreen(IBinder arg0, int arg1) throws RemoteException { 396 // TODO Auto-generated method stub 397 } 398 399 @Override startViewServer(int arg0)400 public boolean startViewServer(int arg0) throws RemoteException { 401 // TODO Auto-generated method stub 402 return false; 403 } 404 405 @Override statusBarVisibilityChanged(int arg0)406 public void statusBarVisibilityChanged(int arg0) throws RemoteException { 407 // TODO Auto-generated method stub 408 } 409 410 @Override stopAppFreezingScreen(IBinder arg0, boolean arg1)411 public void stopAppFreezingScreen(IBinder arg0, boolean arg1) throws RemoteException { 412 // TODO Auto-generated method stub 413 } 414 415 @Override stopViewServer()416 public boolean stopViewServer() throws RemoteException { 417 // TODO Auto-generated method stub 418 return false; 419 } 420 421 @Override thawRotation()422 public void thawRotation() throws RemoteException { 423 // TODO Auto-generated method stub 424 } 425 426 @Override updateOrientationFromAppTokens(Configuration arg0, IBinder arg1)427 public Configuration updateOrientationFromAppTokens(Configuration arg0, IBinder arg1) 428 throws RemoteException { 429 // TODO Auto-generated method stub 430 return null; 431 } 432 433 @Override watchRotation(IRotationWatcher arg0)434 public int watchRotation(IRotationWatcher arg0) throws RemoteException { 435 // TODO Auto-generated method stub 436 return 0; 437 } 438 439 @Override removeRotationWatcher(IRotationWatcher arg0)440 public void removeRotationWatcher(IRotationWatcher arg0) throws RemoteException { 441 } 442 443 @Override asBinder()444 public IBinder asBinder() { 445 // TODO Auto-generated method stub 446 return null; 447 } 448 449 @Override getPreferredOptionsPanelGravity()450 public int getPreferredOptionsPanelGravity() throws RemoteException { 451 return Gravity.CENTER_HORIZONTAL | Gravity.BOTTOM; 452 } 453 454 @Override dismissKeyguard()455 public void dismissKeyguard() { 456 } 457 458 @Override keyguardGoingAway(boolean disableWindowAnimations, boolean keyguardGoingToNotificationShade)459 public void keyguardGoingAway(boolean disableWindowAnimations, 460 boolean keyguardGoingToNotificationShade) throws RemoteException { 461 } 462 463 @Override lockNow(Bundle options)464 public void lockNow(Bundle options) { 465 // TODO Auto-generated method stub 466 } 467 468 @Override isSafeModeEnabled()469 public boolean isSafeModeEnabled() { 470 return false; 471 } 472 473 @Override isRotationFrozen()474 public boolean isRotationFrozen() throws RemoteException { 475 // TODO Auto-generated method stub 476 return false; 477 } 478 479 @Override enableScreenIfNeeded()480 public void enableScreenIfNeeded() throws RemoteException { 481 // TODO Auto-generated method stub 482 } 483 484 @Override clearWindowContentFrameStats(IBinder token)485 public boolean clearWindowContentFrameStats(IBinder token) throws RemoteException { 486 // TODO Auto-generated method stub 487 return false; 488 } 489 490 @Override getWindowContentFrameStats(IBinder token)491 public WindowContentFrameStats getWindowContentFrameStats(IBinder token) 492 throws RemoteException { 493 // TODO Auto-generated method stub 494 return null; 495 } 496 } 497