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
17package android.view;
18
19import android.graphics.Point;
20import com.android.internal.view.IInputContext;
21import com.android.internal.view.IInputMethodClient;
22
23import android.content.res.CompatibilityInfo;
24import android.content.res.Configuration;
25import android.graphics.Bitmap;
26import android.os.Bundle;
27import android.os.IBinder;
28import android.os.IRemoteCallback;
29import android.os.RemoteException;
30import android.util.DisplayMetrics;
31
32import 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 */
38public 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
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
55    public DisplayMetrics getMetrics() {
56        return mMetrics;
57    }
58
59    // ---- implementation of IWindowManager that we care about ----
60
61    @Override
62    public int getRotation() throws RemoteException {
63        return mRotation;
64    }
65
66    @Override
67    public boolean hasNavigationBar() {
68        return mHasNavigationBar;
69    }
70
71    // ---- unused implementation of IWindowManager ----
72
73    @Override
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
82    public void addWindowToken(IBinder arg0, int arg1) throws RemoteException {
83        // TODO Auto-generated method stub
84
85    }
86
87    @Override
88    public void clearForcedDisplaySize(int displayId) throws RemoteException {
89        // TODO Auto-generated method stub
90    }
91
92    @Override
93    public void clearForcedDisplayDensity(int displayId) throws RemoteException {
94        // TODO Auto-generated method stub
95    }
96
97    @Override
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
104    public void closeSystemDialogs(String arg0) throws RemoteException {
105        // TODO Auto-generated method stub
106
107    }
108
109    @Override
110    public void startFreezingScreen(int exitAnim, int enterAnim) {
111        // TODO Auto-generated method stub
112    }
113
114    @Override
115    public void stopFreezingScreen() {
116        // TODO Auto-generated method stub
117    }
118
119    @Override
120    public void disableKeyguard(IBinder arg0, String arg1) throws RemoteException {
121        // TODO Auto-generated method stub
122
123    }
124
125    @Override
126    public void executeAppTransition() throws RemoteException {
127        // TODO Auto-generated method stub
128
129    }
130
131    @Override
132    public void exitKeyguardSecurely(IOnKeyguardExitResult arg0) throws RemoteException {
133        // TODO Auto-generated method stub
134
135    }
136
137    @Override
138    public void freezeRotation(int arg0) throws RemoteException {
139        // TODO Auto-generated method stub
140
141    }
142
143    @Override
144    public float getAnimationScale(int arg0) throws RemoteException {
145        // TODO Auto-generated method stub
146        return 0;
147    }
148
149    @Override
150    public float[] getAnimationScales() throws RemoteException {
151        // TODO Auto-generated method stub
152        return null;
153    }
154
155    @Override
156    public int getAppOrientation(IApplicationToken arg0) throws RemoteException {
157        // TODO Auto-generated method stub
158        return 0;
159    }
160
161    @Override
162    public int getPendingAppTransition() throws RemoteException {
163        // TODO Auto-generated method stub
164        return 0;
165    }
166
167    @Override
168    public boolean inKeyguardRestrictedInputMode() throws RemoteException {
169        // TODO Auto-generated method stub
170        return false;
171    }
172
173    @Override
174    public boolean inputMethodClientHasFocus(IInputMethodClient arg0) throws RemoteException {
175        // TODO Auto-generated method stub
176        return false;
177    }
178
179    @Override
180    public boolean isKeyguardLocked() throws RemoteException {
181        // TODO Auto-generated method stub
182        return false;
183    }
184
185    @Override
186    public boolean isKeyguardSecure() throws RemoteException {
187        // TODO Auto-generated method stub
188        return false;
189    }
190
191    @Override
192    public boolean isViewServerRunning() throws RemoteException {
193        // TODO Auto-generated method stub
194        return false;
195    }
196
197    @Override
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
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
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
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
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
231    public void overridePendingAppTransitionInPlace(String packageName, int anim) {
232        // TODO Auto-generated method stub
233    }
234
235    @Override
236    public void pauseKeyDispatching(IBinder arg0) throws RemoteException {
237        // TODO Auto-generated method stub
238
239    }
240
241    @Override
242    public void prepareAppTransition(int arg0, boolean arg1) throws RemoteException {
243        // TODO Auto-generated method stub
244
245    }
246
247    @Override
248    public void reenableKeyguard(IBinder arg0) throws RemoteException {
249        // TODO Auto-generated method stub
250
251    }
252
253    @Override
254    public void removeAppToken(IBinder arg0) throws RemoteException {
255        // TODO Auto-generated method stub
256
257    }
258
259    @Override
260    public void removeWindowToken(IBinder arg0) throws RemoteException {
261        // TODO Auto-generated method stub
262
263    }
264
265    @Override
266    public void resumeKeyDispatching(IBinder arg0) throws RemoteException {
267        // TODO Auto-generated method stub
268
269    }
270
271    @Override
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
279    public void setAnimationScale(int arg0, float arg1) throws RemoteException {
280        // TODO Auto-generated method stub
281
282    }
283
284    @Override
285    public void setAnimationScales(float[] arg0) throws RemoteException {
286        // TODO Auto-generated method stub
287
288    }
289
290    @Override
291    public float getCurrentAnimatorScale() throws RemoteException {
292        return 0;
293    }
294
295    @Override
296    public void setAppGroupId(IBinder arg0, int arg1) throws RemoteException {
297        // TODO Auto-generated method stub
298
299    }
300
301    @Override
302    public void setAppOrientation(IApplicationToken arg0, int arg1) throws RemoteException {
303        // TODO Auto-generated method stub
304    }
305
306    @Override
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
314    public void setAppVisibility(IBinder arg0, boolean arg1) throws RemoteException {
315        // TODO Auto-generated method stub
316
317    }
318
319    @Override
320    public void setAppWillBeHidden(IBinder arg0) throws RemoteException {
321        // TODO Auto-generated method stub
322    }
323
324    @Override
325    public void setEventDispatching(boolean arg0) throws RemoteException {
326        // TODO Auto-generated method stub
327    }
328
329    @Override
330    public void setFocusedApp(IBinder arg0, boolean arg1) throws RemoteException {
331        // TODO Auto-generated method stub
332    }
333
334    @Override
335    public void getInitialDisplaySize(int displayId, Point size) {
336        // TODO Auto-generated method stub
337    }
338
339    @Override
340    public void getBaseDisplaySize(int displayId, Point size) {
341        // TODO Auto-generated method stub
342    }
343
344    @Override
345    public void setForcedDisplaySize(int displayId, int arg0, int arg1) throws RemoteException {
346        // TODO Auto-generated method stub
347    }
348
349    @Override
350    public int getInitialDisplayDensity(int displayId) {
351        return -1;
352    }
353
354    @Override
355    public int getBaseDisplayDensity(int displayId) {
356        return -1;
357    }
358
359    @Override
360    public void setForcedDisplayDensity(int displayId, int density) throws RemoteException {
361        // TODO Auto-generated method stub
362    }
363
364    @Override
365    public void setInTouchMode(boolean arg0) throws RemoteException {
366        // TODO Auto-generated method stub
367    }
368
369    @Override
370    public void setNewConfiguration(Configuration arg0) throws RemoteException {
371        // TODO Auto-generated method stub
372    }
373
374    @Override
375    public void setScreenCaptureDisabled(int userId, boolean disabled) {
376        // TODO Auto-generated method stub
377    }
378
379    @Override
380    public void updateRotation(boolean arg0, boolean arg1) throws RemoteException {
381        // TODO Auto-generated method stub
382    }
383
384    @Override
385    public void setStrictModeVisualIndicatorPreference(String arg0) throws RemoteException {
386        // TODO Auto-generated method stub
387    }
388
389    @Override
390    public void showStrictModeViolation(boolean arg0) throws RemoteException {
391        // TODO Auto-generated method stub
392    }
393
394    @Override
395    public void startAppFreezingScreen(IBinder arg0, int arg1) throws RemoteException {
396        // TODO Auto-generated method stub
397    }
398
399    @Override
400    public boolean startViewServer(int arg0) throws RemoteException {
401        // TODO Auto-generated method stub
402        return false;
403    }
404
405    @Override
406    public void statusBarVisibilityChanged(int arg0) throws RemoteException {
407        // TODO Auto-generated method stub
408    }
409
410    @Override
411    public void stopAppFreezingScreen(IBinder arg0, boolean arg1) throws RemoteException {
412        // TODO Auto-generated method stub
413    }
414
415    @Override
416    public boolean stopViewServer() throws RemoteException {
417        // TODO Auto-generated method stub
418        return false;
419    }
420
421    @Override
422    public void thawRotation() throws RemoteException {
423        // TODO Auto-generated method stub
424    }
425
426    @Override
427    public Configuration updateOrientationFromAppTokens(Configuration arg0, IBinder arg1)
428            throws RemoteException {
429        // TODO Auto-generated method stub
430        return null;
431    }
432
433    @Override
434    public int watchRotation(IRotationWatcher arg0) throws RemoteException {
435        // TODO Auto-generated method stub
436        return 0;
437    }
438
439    @Override
440    public void removeRotationWatcher(IRotationWatcher arg0) throws RemoteException {
441    }
442
443    @Override
444    public IBinder asBinder() {
445        // TODO Auto-generated method stub
446        return null;
447    }
448
449    @Override
450    public int getPreferredOptionsPanelGravity() throws RemoteException {
451        return Gravity.CENTER_HORIZONTAL | Gravity.BOTTOM;
452    }
453
454    @Override
455    public void dismissKeyguard() {
456    }
457
458    @Override
459    public void keyguardGoingAway(boolean disableWindowAnimations,
460            boolean keyguardGoingToNotificationShade) throws RemoteException {
461    }
462
463    @Override
464    public void lockNow(Bundle options) {
465        // TODO Auto-generated method stub
466    }
467
468    @Override
469    public boolean isSafeModeEnabled() {
470        return false;
471    }
472
473    @Override
474    public boolean isRotationFrozen() throws RemoteException {
475        // TODO Auto-generated method stub
476        return false;
477    }
478
479    @Override
480    public void enableScreenIfNeeded() throws RemoteException {
481        // TODO Auto-generated method stub
482    }
483
484    @Override
485    public boolean clearWindowContentFrameStats(IBinder token) throws RemoteException {
486        // TODO Auto-generated method stub
487        return false;
488    }
489
490    @Override
491    public WindowContentFrameStats getWindowContentFrameStats(IBinder token)
492            throws RemoteException {
493        // TODO Auto-generated method stub
494        return null;
495    }
496}
497