1 /* 2 * Copyright (C) 2021 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.hardware.display; 18 19 20 import com.android.internal.annotations.VisibleForTesting; 21 22 import android.annotation.NonNull; 23 import android.annotation.Nullable; 24 import android.content.Context; 25 import android.content.res.Resources; 26 import android.graphics.ColorSpace; 27 import android.graphics.Point; 28 import android.hardware.OverlayProperties; 29 import android.hardware.display.DisplayManager.DisplayListener; 30 import android.media.projection.MediaProjection; 31 import android.os.Handler; 32 import android.os.HandlerExecutor; 33 import android.os.Looper; 34 import android.util.Pair; 35 import android.view.Display; 36 import android.view.DisplayAdjustments; 37 import android.view.DisplayInfo; 38 import android.view.Surface; 39 40 import java.util.List; 41 import java.util.concurrent.Executor; 42 43 public final class DisplayManagerGlobal { 44 public static final int EVENT_DISPLAY_ADDED = 1; 45 public static final int EVENT_DISPLAY_CHANGED = 2; 46 public static final int EVENT_DISPLAY_REMOVED = 3; 47 public static final int EVENT_DISPLAY_BRIGHTNESS_CHANGED = 4; 48 public static final int EVENT_DISPLAY_HDR_SDR_RATIO_CHANGED = 5; 49 public static final int EVENT_DISPLAY_CONNECTED = 6; 50 public static final int EVENT_DISPLAY_DISCONNECTED = 7; 51 public static final int EVENT_DISPLAY_REFRESH_RATE_CHANGED = 8; 52 public static final int EVENT_DISPLAY_STATE_CHANGED = 9; 53 54 private static DisplayManagerGlobal sInstance; 55 56 @VisibleForTesting DisplayManagerGlobal(IDisplayManager dm)57 public DisplayManagerGlobal(IDisplayManager dm) {} 58 getInstance()59 public static DisplayManagerGlobal getInstance() { 60 synchronized (DisplayManagerGlobal.class) { 61 if (sInstance == null) { 62 sInstance = new DisplayManagerGlobal(null); 63 } 64 return sInstance; 65 } 66 } 67 getDisplayInfo(int displayId)68 public DisplayInfo getDisplayInfo(int displayId) { 69 return null; 70 } 71 getDisplayIds()72 public int[] getDisplayIds() { 73 return null; 74 } 75 isUidPresentOnDisplay(int uid, int displayId)76 public boolean isUidPresentOnDisplay(int uid, int displayId) { 77 return false; 78 } 79 getCompatibleDisplay(int displayId, DisplayAdjustments daj)80 public Display getCompatibleDisplay(int displayId, DisplayAdjustments daj) { 81 return null; 82 } 83 getCompatibleDisplay(int displayId, Resources resources)84 public Display getCompatibleDisplay(int displayId, Resources resources) { 85 return null; 86 } 87 getRealDisplay(int displayId)88 public Display getRealDisplay(int displayId) { 89 return null; 90 } 91 registerDisplayListener(@onNull DisplayListener listener, @Nullable Handler handler, long internalEventFlagsMask, String packageName, boolean isEventFilterExplicit)92 public void registerDisplayListener(@NonNull DisplayListener listener, 93 @Nullable Handler handler, long internalEventFlagsMask, String packageName, 94 boolean isEventFilterExplicit) {} 95 registerDisplayListener(@onNull DisplayListener listener, @Nullable Handler handler, long internalEventFlagsMask, String packageName)96 public void registerDisplayListener(@NonNull DisplayListener listener, 97 @Nullable Handler handler, long internalEventFlagsMask, String packageName) {} 98 registerDisplayListener(@onNull DisplayListener listener, @NonNull Executor executor, long internalEventFlagsMask, String packageName, boolean isEventFilterExplicit)99 public void registerDisplayListener(@NonNull DisplayListener listener, 100 @NonNull Executor executor, long internalEventFlagsMask, String packageName, 101 boolean isEventFilterExplicit) {} 102 unregisterDisplayListener(DisplayListener listener)103 public void unregisterDisplayListener(DisplayListener listener) {} 104 startWifiDisplayScan()105 public void startWifiDisplayScan() {} 106 stopWifiDisplayScan()107 public void stopWifiDisplayScan() {} 108 connectWifiDisplay(String deviceAddress)109 public void connectWifiDisplay(String deviceAddress) {} 110 pauseWifiDisplay()111 public void pauseWifiDisplay() {} 112 resumeWifiDisplay()113 public void resumeWifiDisplay() {} 114 disconnectWifiDisplay()115 public void disconnectWifiDisplay() {} 116 renameWifiDisplay(String deviceAddress, String alias)117 public void renameWifiDisplay(String deviceAddress, String alias) {} 118 forgetWifiDisplay(String deviceAddress)119 public void forgetWifiDisplay(String deviceAddress) {} 120 getWifiDisplayStatus()121 public WifiDisplayStatus getWifiDisplayStatus() { 122 return null; 123 } 124 setUserDisabledHdrTypes(int[] userDisabledHdrTypes)125 public void setUserDisabledHdrTypes(int[] userDisabledHdrTypes) {} 126 setAreUserDisabledHdrTypesAllowed(boolean areUserDisabledHdrTypesAllowed)127 public void setAreUserDisabledHdrTypesAllowed(boolean areUserDisabledHdrTypesAllowed) {} 128 areUserDisabledHdrTypesAllowed()129 public boolean areUserDisabledHdrTypesAllowed() { 130 return false; 131 } 132 getUserDisabledHdrTypes()133 public int[] getUserDisabledHdrTypes() { 134 return null; 135 } 136 requestColorMode(int displayId, int colorMode)137 public void requestColorMode(int displayId, int colorMode) {} 138 createVirtualDisplay(@onNull Context context, MediaProjection projection, @NonNull VirtualDisplayConfig virtualDisplayConfig, VirtualDisplay.Callback callback, Handler handler)139 public VirtualDisplay createVirtualDisplay(@NonNull Context context, MediaProjection projection, 140 @NonNull VirtualDisplayConfig virtualDisplayConfig, VirtualDisplay.Callback callback, 141 Handler handler) { 142 return null; 143 } 144 setVirtualDisplaySurface(IVirtualDisplayCallback token, Surface surface)145 public void setVirtualDisplaySurface(IVirtualDisplayCallback token, Surface surface) {} 146 resizeVirtualDisplay(IVirtualDisplayCallback token, int width, int height, int densityDpi)147 public void resizeVirtualDisplay(IVirtualDisplayCallback token, 148 int width, int height, int densityDpi) {} 149 releaseVirtualDisplay(IVirtualDisplayCallback token)150 public void releaseVirtualDisplay(IVirtualDisplayCallback token) {} 151 setVirtualDisplayState(IVirtualDisplayCallback token, boolean isOn)152 void setVirtualDisplayState(IVirtualDisplayCallback token, boolean isOn) {} 153 getStableDisplaySize()154 public Point getStableDisplaySize() { 155 return null; 156 } 157 getBrightnessEvents(String callingPackage)158 public List<BrightnessChangeEvent> getBrightnessEvents(String callingPackage) { 159 return null; 160 } 161 getBrightnessInfo(int displayId)162 public BrightnessInfo getBrightnessInfo(int displayId) { 163 return null; 164 } 165 getPreferredWideGamutColorSpace()166 public ColorSpace getPreferredWideGamutColorSpace() { 167 return null; 168 } 169 getOverlaySupport()170 public OverlayProperties getOverlaySupport() { return null; } 171 setBrightnessConfigurationForUser(BrightnessConfiguration c, int userId, String packageName)172 public void setBrightnessConfigurationForUser(BrightnessConfiguration c, int userId, 173 String packageName) {} 174 getBrightnessConfigurationForUser(int userId)175 public BrightnessConfiguration getBrightnessConfigurationForUser(int userId) { 176 return null; 177 } 178 getDefaultBrightnessConfiguration()179 public BrightnessConfiguration getDefaultBrightnessConfiguration() { 180 return null; 181 } 182 isMinimalPostProcessingRequested(int displayId)183 public boolean isMinimalPostProcessingRequested(int displayId) { 184 return false; 185 } 186 setTemporaryBrightness(int displayId, float brightness)187 public void setTemporaryBrightness(int displayId, float brightness) {} 188 setBrightness(int displayId, float brightness)189 public void setBrightness(int displayId, float brightness) {} 190 getBrightness(int displayId)191 public float getBrightness(int displayId) { 192 return 0.0f; 193 } 194 setTemporaryAutoBrightnessAdjustment(float adjustment)195 public void setTemporaryAutoBrightnessAdjustment(float adjustment) {} 196 getMinimumBrightnessCurve()197 public Pair<float[], float[]> getMinimumBrightnessCurve() { 198 return null; 199 } 200 getAmbientBrightnessStats()201 public List<AmbientBrightnessDayStats> getAmbientBrightnessStats() { 202 return null; 203 } 204 setShouldAlwaysRespectAppRequestedMode(boolean enabled)205 public void setShouldAlwaysRespectAppRequestedMode(boolean enabled) {} 206 shouldAlwaysRespectAppRequestedMode()207 public boolean shouldAlwaysRespectAppRequestedMode() { 208 return false; 209 } 210 setRefreshRateSwitchingType(int newValue)211 public void setRefreshRateSwitchingType(int newValue) {} 212 getRefreshRateSwitchingType()213 public int getRefreshRateSwitchingType() { 214 return 0; 215 } 216 217 public static final String CACHE_KEY_DISPLAY_INFO_PROPERTY = 218 "cache_key.display_info"; 219 invalidateLocalDisplayInfoCaches()220 public static void invalidateLocalDisplayInfoCaches() {} 221 disableLocalDisplayInfoCaches()222 public void disableLocalDisplayInfoCaches() {} 223 } 224