Upstream version 8.36.161.0
[platform/framework/web/crosswalk.git] / src / xwalk / runtime / android / core_internal / src / org / xwalk / core / internal / extension / api / DisplayManagerJBMR1.java
1 // Copyright (c) 2013 Intel Corporation. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 package org.xwalk.core.internal.extension.api;
6
7 import android.content.Context;
8 import android.hardware.display.DisplayManager;
9 import android.view.Display;
10
11 /**
12  * A wrapper class for DisplayManager implementation on Android JellyBean MR1 (API Level 17).
13  */
14 public class DisplayManagerJBMR1 extends XWalkDisplayManager implements DisplayManager.DisplayListener {
15     private DisplayManager mDisplayManager;
16
17     public DisplayManagerJBMR1(Context context) {
18         mDisplayManager = (DisplayManager) context.getSystemService(Context.DISPLAY_SERVICE);
19     }
20
21     @Override
22     public Display getDisplay(int displayId) {
23         return mDisplayManager.getDisplay(displayId);
24     }
25
26     @Override
27     public Display[] getDisplays() {
28         return mDisplayManager.getDisplays();
29     }
30
31     @Override
32     public Display[] getPresentationDisplays() {
33         String category = DisplayManager.DISPLAY_CATEGORY_PRESENTATION;
34         return mDisplayManager.getDisplays(category);
35     }
36
37     @Override
38     public void registerDisplayListener(XWalkDisplayManager.DisplayListener listener) {
39         super.registerDisplayListener(listener);
40         if (mListeners.size() == 1)
41             mDisplayManager.registerDisplayListener(this, null);
42     }
43
44     @Override
45     public void unregisterDisplayListener(XWalkDisplayManager.DisplayListener listener) {
46         super.unregisterDisplayListener(listener);
47         if (mListeners.size() == 0)
48             mDisplayManager.unregisterDisplayListener(this);
49     }
50
51     @Override
52     public void onDisplayAdded(int displayId) {
53         notifyDisplayAdded(displayId);
54     }
55
56     @Override
57     public void onDisplayRemoved(int displayId) {
58         notifyDisplayRemoved(displayId);
59     }
60
61     @Override
62     public void onDisplayChanged(int displayId) {
63         notifyDisplayChanged(displayId);
64     }
65 }
66