1 /* 2 * Copyright (C) 2019 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 package android.app; 17 18 import android.annotation.NonNull; 19 import android.content.ComponentName; 20 import android.content.Intent; 21 import android.graphics.Bitmap; 22 import android.graphics.Rect; 23 import android.graphics.drawable.Drawable; 24 import android.net.Uri; 25 import android.os.Bundle; 26 import android.os.Handler; 27 import android.os.IBinder; 28 import android.os.ParcelFileDescriptor; 29 import android.util.Log; 30 31 import java.io.IOException; 32 import java.io.InputStream; 33 34 /** 35 * A no-op implementation of {@link WallpaperManager}. 36 */ 37 final class DisabledWallpaperManager extends WallpaperManager { 38 39 private static final String TAG = DisabledWallpaperManager.class.getSimpleName(); 40 41 // Don't need to worry about synchronization 42 private static DisabledWallpaperManager sInstance; 43 44 private static final boolean DEBUG = false; 45 46 @NonNull getInstance()47 static DisabledWallpaperManager getInstance() { 48 if (sInstance == null) { 49 sInstance = new DisabledWallpaperManager(); 50 } 51 return sInstance; 52 } 53 DisabledWallpaperManager()54 private DisabledWallpaperManager() { 55 } 56 57 @Override isWallpaperSupported()58 public boolean isWallpaperSupported() { 59 return false; 60 } 61 62 @Override isSetWallpaperAllowed()63 public boolean isSetWallpaperAllowed() { 64 return false; 65 } 66 unsupported()67 private static <T> T unsupported() { 68 if (DEBUG) Log.w(TAG, "unsupported method called; returning null", new Exception()); 69 return null; 70 } 71 unsupportedBoolean()72 private static boolean unsupportedBoolean() { 73 if (DEBUG) Log.w(TAG, "unsupported method called; returning false", new Exception()); 74 return false; 75 } 76 77 @Override getDrawable()78 public Drawable getDrawable() { 79 return unsupported(); 80 } 81 82 @Override getBuiltInDrawable()83 public Drawable getBuiltInDrawable() { 84 return unsupported(); 85 } 86 87 @Override getBuiltInDrawable(int which)88 public Drawable getBuiltInDrawable(int which) { 89 return unsupported(); 90 } 91 92 @Override getBuiltInDrawable(int outWidth, int outHeight, boolean scaleToFit, float horizontalAlignment, float verticalAlignment)93 public Drawable getBuiltInDrawable(int outWidth, int outHeight, boolean scaleToFit, 94 float horizontalAlignment, float verticalAlignment) { 95 return unsupported(); 96 } 97 98 @Override getBuiltInDrawable(int outWidth, int outHeight, boolean scaleToFit, float horizontalAlignment, float verticalAlignment, int which)99 public Drawable getBuiltInDrawable(int outWidth, int outHeight, boolean scaleToFit, 100 float horizontalAlignment, float verticalAlignment, int which) { 101 return unsupported(); 102 } 103 104 @Override peekDrawable()105 public Drawable peekDrawable() { 106 return unsupported(); 107 } 108 109 @Override getFastDrawable()110 public Drawable getFastDrawable() { 111 return unsupported(); 112 } 113 114 @Override peekFastDrawable()115 public Drawable peekFastDrawable() { 116 return unsupported(); 117 } 118 119 @Override getBitmap()120 public Bitmap getBitmap() { 121 return unsupported(); 122 } 123 124 @Override getBitmap(boolean hardware)125 public Bitmap getBitmap(boolean hardware) { 126 return unsupported(); 127 } 128 129 @Override getBitmapAsUser(int userId, boolean hardware)130 public Bitmap getBitmapAsUser(int userId, boolean hardware) { 131 return unsupported(); 132 } 133 134 @Override getWallpaperFile(int which)135 public ParcelFileDescriptor getWallpaperFile(int which) { 136 return unsupported(); 137 } 138 139 @Override addOnColorsChangedListener(OnColorsChangedListener listener, Handler handler)140 public void addOnColorsChangedListener(OnColorsChangedListener listener, Handler handler) { 141 unsupported(); 142 } 143 144 @Override addOnColorsChangedListener(OnColorsChangedListener listener, Handler handler, int userId)145 public void addOnColorsChangedListener(OnColorsChangedListener listener, Handler handler, 146 int userId) { 147 unsupported(); 148 } 149 150 @Override removeOnColorsChangedListener(OnColorsChangedListener callback)151 public void removeOnColorsChangedListener(OnColorsChangedListener callback) { 152 unsupported(); 153 } 154 155 @Override removeOnColorsChangedListener(OnColorsChangedListener callback, int userId)156 public void removeOnColorsChangedListener(OnColorsChangedListener callback, int userId) { 157 unsupported(); 158 } 159 160 @Override getWallpaperColors(int which)161 public WallpaperColors getWallpaperColors(int which) { 162 return unsupported(); 163 } 164 165 @Override getWallpaperColors(int which, int userId)166 public WallpaperColors getWallpaperColors(int which, int userId) { 167 return unsupported(); 168 } 169 170 @Override getWallpaperFile(int which, int userId)171 public ParcelFileDescriptor getWallpaperFile(int which, int userId) { 172 return unsupported(); 173 } 174 175 @Override forgetLoadedWallpaper()176 public void forgetLoadedWallpaper() { 177 unsupported(); 178 } 179 180 @Override getWallpaperInfo()181 public WallpaperInfo getWallpaperInfo() { 182 return unsupported(); 183 } 184 185 @Override getWallpaperInfo(int userId)186 public WallpaperInfo getWallpaperInfo(int userId) { 187 return unsupported(); 188 } 189 190 @Override getWallpaperId(int which)191 public int getWallpaperId(int which) { 192 return unsupported(); 193 } 194 195 @Override getWallpaperIdForUser(int which, int userId)196 public int getWallpaperIdForUser(int which, int userId) { 197 return unsupported(); 198 } 199 200 @Override getCropAndSetWallpaperIntent(Uri imageUri)201 public Intent getCropAndSetWallpaperIntent(Uri imageUri) { 202 return unsupported(); 203 } 204 205 @Override setResource(int resid)206 public void setResource(int resid) throws IOException { 207 unsupported(); 208 } 209 210 @Override setResource(int resid, int which)211 public int setResource(int resid, int which) throws IOException { 212 return unsupported(); 213 } 214 215 @Override setBitmap(Bitmap bitmap)216 public void setBitmap(Bitmap bitmap) throws IOException { 217 unsupported(); 218 } 219 220 @Override setBitmap(Bitmap fullImage, Rect visibleCropHint, boolean allowBackup)221 public int setBitmap(Bitmap fullImage, Rect visibleCropHint, boolean allowBackup) 222 throws IOException { 223 return unsupported(); 224 } 225 226 @Override setBitmap(Bitmap fullImage, Rect visibleCropHint, boolean allowBackup, int which)227 public int setBitmap(Bitmap fullImage, Rect visibleCropHint, boolean allowBackup, int which) 228 throws IOException { 229 return unsupported(); 230 } 231 232 @Override setBitmap(Bitmap fullImage, Rect visibleCropHint, boolean allowBackup, int which, int userId)233 public int setBitmap(Bitmap fullImage, Rect visibleCropHint, boolean allowBackup, int which, 234 int userId) throws IOException { 235 return unsupported(); 236 } 237 238 @Override setStream(InputStream bitmapData)239 public void setStream(InputStream bitmapData) throws IOException { 240 unsupported(); 241 } 242 243 @Override setStream(InputStream bitmapData, Rect visibleCropHint, boolean allowBackup)244 public int setStream(InputStream bitmapData, Rect visibleCropHint, boolean allowBackup) 245 throws IOException { 246 return unsupported(); 247 } 248 249 @Override setStream(InputStream bitmapData, Rect visibleCropHint, boolean allowBackup, int which)250 public int setStream(InputStream bitmapData, Rect visibleCropHint, boolean allowBackup, 251 int which) throws IOException { 252 return unsupported(); 253 } 254 255 @Override hasResourceWallpaper(int resid)256 public boolean hasResourceWallpaper(int resid) { 257 return unsupportedBoolean(); 258 } 259 260 @Override getDesiredMinimumWidth()261 public int getDesiredMinimumWidth() { 262 return unsupported(); 263 } 264 265 @Override getDesiredMinimumHeight()266 public int getDesiredMinimumHeight() { 267 return unsupported(); 268 } 269 270 @Override suggestDesiredDimensions(int minimumWidth, int minimumHeight)271 public void suggestDesiredDimensions(int minimumWidth, int minimumHeight) { 272 unsupported(); 273 } 274 275 @Override setDisplayPadding(Rect padding)276 public void setDisplayPadding(Rect padding) { 277 unsupported(); 278 } 279 280 @Override setDisplayOffset(IBinder windowToken, int x, int y)281 public void setDisplayOffset(IBinder windowToken, int x, int y) { 282 unsupported(); 283 } 284 285 @Override clearWallpaper()286 public void clearWallpaper() { 287 unsupported(); 288 } 289 290 @Override clearWallpaper(int which, int userId)291 public void clearWallpaper(int which, int userId) { 292 unsupported(); 293 } 294 295 @Override setWallpaperComponent(ComponentName name)296 public boolean setWallpaperComponent(ComponentName name) { 297 return unsupportedBoolean(); 298 } 299 300 @Override setWallpaperComponent(ComponentName name, int userId)301 public boolean setWallpaperComponent(ComponentName name, int userId) { 302 return unsupportedBoolean(); 303 } 304 305 @Override setWallpaperOffsets(IBinder windowToken, float xOffset, float yOffset)306 public void setWallpaperOffsets(IBinder windowToken, float xOffset, float yOffset) { 307 unsupported(); 308 } 309 310 @Override setWallpaperOffsetSteps(float xStep, float yStep)311 public void setWallpaperOffsetSteps(float xStep, float yStep) { 312 unsupported(); 313 } 314 315 @Override sendWallpaperCommand(IBinder windowToken, String action, int x, int y, int z, Bundle extras)316 public void sendWallpaperCommand(IBinder windowToken, String action, int x, int y, int z, 317 Bundle extras) { 318 unsupported(); 319 } 320 321 @Override clearWallpaperOffsets(IBinder windowToken)322 public void clearWallpaperOffsets(IBinder windowToken) { 323 unsupported(); 324 } 325 326 @Override clear()327 public void clear() throws IOException { 328 unsupported(); 329 } 330 331 @Override clear(int which)332 public void clear(int which) throws IOException { 333 unsupported(); 334 } 335 336 @Override isWallpaperBackupEligible(int which)337 public boolean isWallpaperBackupEligible(int which) { 338 return unsupportedBoolean(); 339 } 340 341 @Override wallpaperSupportsWcg(int which)342 public boolean wallpaperSupportsWcg(int which) { 343 return unsupportedBoolean(); 344 } 345 } 346