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