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 
unsupportedInt()77     private static int unsupportedInt() {
78         if (DEBUG) Log.w(TAG, "unsupported method called; returning -1", new Exception());
79         return -1;
80     }
81 
82     @Override
getDrawable()83     public Drawable getDrawable() {
84         return unsupported();
85     }
86 
87     @Override
getBuiltInDrawable()88     public Drawable getBuiltInDrawable() {
89         return unsupported();
90     }
91 
92     @Override
getBuiltInDrawable(int which)93     public Drawable getBuiltInDrawable(int which) {
94         return unsupported();
95     }
96 
97     @Override
getBuiltInDrawable(int outWidth, int outHeight, boolean scaleToFit, float horizontalAlignment, float verticalAlignment)98     public Drawable getBuiltInDrawable(int outWidth, int outHeight, boolean scaleToFit,
99             float horizontalAlignment, float verticalAlignment) {
100         return unsupported();
101     }
102 
103     @Override
getBuiltInDrawable(int outWidth, int outHeight, boolean scaleToFit, float horizontalAlignment, float verticalAlignment, int which)104     public Drawable getBuiltInDrawable(int outWidth, int outHeight, boolean scaleToFit,
105             float horizontalAlignment, float verticalAlignment, int which) {
106         return unsupported();
107     }
108 
109     @Override
peekDrawable()110     public Drawable peekDrawable() {
111         return unsupported();
112     }
113 
114     @Override
getFastDrawable()115     public Drawable getFastDrawable() {
116         return unsupported();
117     }
118 
119     @Override
peekFastDrawable()120     public Drawable peekFastDrawable() {
121         return unsupported();
122     }
123 
124     @Override
getBitmap()125     public Bitmap getBitmap() {
126         return unsupported();
127     }
128 
129     @Override
getBitmap(boolean hardware)130     public Bitmap getBitmap(boolean hardware) {
131         return unsupported();
132     }
133 
134     @Override
getBitmapAsUser(int userId, boolean hardware)135     public Bitmap getBitmapAsUser(int userId, boolean hardware) {
136         return unsupported();
137     }
138 
139     @Override
getWallpaperFile(int which)140     public ParcelFileDescriptor getWallpaperFile(int which) {
141         return unsupported();
142     }
143 
144     @Override
addOnColorsChangedListener(OnColorsChangedListener listener, Handler handler)145     public void addOnColorsChangedListener(OnColorsChangedListener listener, Handler handler) {
146         unsupported();
147     }
148 
149     @Override
addOnColorsChangedListener(OnColorsChangedListener listener, Handler handler, int userId)150     public void addOnColorsChangedListener(OnColorsChangedListener listener, Handler handler,
151             int userId) {
152         unsupported();
153     }
154 
155     @Override
removeOnColorsChangedListener(OnColorsChangedListener callback)156     public void removeOnColorsChangedListener(OnColorsChangedListener callback) {
157         unsupported();
158     }
159 
160     @Override
removeOnColorsChangedListener(OnColorsChangedListener callback, int userId)161     public void removeOnColorsChangedListener(OnColorsChangedListener callback, int userId) {
162         unsupported();
163     }
164 
165     @Override
getWallpaperColors(int which)166     public WallpaperColors getWallpaperColors(int which) {
167         return unsupported();
168     }
169 
170     @Override
getWallpaperColors(int which, int userId)171     public WallpaperColors getWallpaperColors(int which, int userId) {
172         return unsupported();
173     }
174 
175     @Override
getWallpaperFile(int which, int userId)176     public ParcelFileDescriptor getWallpaperFile(int which, int userId) {
177         return unsupported();
178     }
179 
180     @Override
forgetLoadedWallpaper()181     public void forgetLoadedWallpaper() {
182         unsupported();
183     }
184 
185     @Override
getWallpaperInfo()186     public WallpaperInfo getWallpaperInfo() {
187         return unsupported();
188     }
189 
190     @Override
getWallpaperInfo(int userId)191     public WallpaperInfo getWallpaperInfo(int userId) {
192         return unsupported();
193     }
194 
195     @Override
getWallpaperId(int which)196     public int getWallpaperId(int which) {
197         return unsupportedInt();
198     }
199 
200     @Override
getWallpaperIdForUser(int which, int userId)201     public int getWallpaperIdForUser(int which, int userId) {
202         return unsupportedInt();
203     }
204 
205     @Override
getCropAndSetWallpaperIntent(Uri imageUri)206     public Intent getCropAndSetWallpaperIntent(Uri imageUri) {
207         return unsupported();
208     }
209 
210     @Override
setResource(int resid)211     public void setResource(int resid) throws IOException {
212         unsupported();
213     }
214 
215     @Override
setResource(int resid, int which)216     public int setResource(int resid, int which) throws IOException {
217         unsupported();
218         return 0;
219     }
220 
221     @Override
setBitmap(Bitmap bitmap)222     public void setBitmap(Bitmap bitmap) throws IOException {
223         unsupported();
224     }
225 
226     @Override
setBitmap(Bitmap fullImage, Rect visibleCropHint, boolean allowBackup)227     public int setBitmap(Bitmap fullImage, Rect visibleCropHint, boolean allowBackup)
228             throws IOException {
229         unsupported();
230         return 0;
231     }
232 
233     @Override
setBitmap(Bitmap fullImage, Rect visibleCropHint, boolean allowBackup, int which)234     public int setBitmap(Bitmap fullImage, Rect visibleCropHint, boolean allowBackup, int which)
235             throws IOException {
236         unsupported();
237         return 0;
238     }
239 
240     @Override
setBitmap(Bitmap fullImage, Rect visibleCropHint, boolean allowBackup, int which, int userId)241     public int setBitmap(Bitmap fullImage, Rect visibleCropHint, boolean allowBackup, int which,
242             int userId) throws IOException {
243         unsupported();
244         return 0;
245     }
246 
247     @Override
setStream(InputStream bitmapData)248     public void setStream(InputStream bitmapData) throws IOException {
249         unsupported();
250     }
251 
252     @Override
setStream(InputStream bitmapData, Rect visibleCropHint, boolean allowBackup)253     public int setStream(InputStream bitmapData, Rect visibleCropHint, boolean allowBackup)
254             throws IOException {
255         unsupported();
256         return 0;
257     }
258 
259     @Override
setStream(InputStream bitmapData, Rect visibleCropHint, boolean allowBackup, int which)260     public int setStream(InputStream bitmapData, Rect visibleCropHint, boolean allowBackup,
261             int which) throws IOException {
262         unsupported();
263         return 0;
264     }
265 
266     @Override
hasResourceWallpaper(int resid)267     public boolean hasResourceWallpaper(int resid) {
268         return unsupportedBoolean();
269     }
270 
271     @Override
getDesiredMinimumWidth()272     public int getDesiredMinimumWidth() {
273         return unsupportedInt();
274     }
275 
276     @Override
getDesiredMinimumHeight()277     public int getDesiredMinimumHeight() {
278         return unsupportedInt();
279     }
280 
281     @Override
suggestDesiredDimensions(int minimumWidth, int minimumHeight)282     public void suggestDesiredDimensions(int minimumWidth, int minimumHeight) {
283         unsupported();
284     }
285 
286     @Override
setDisplayPadding(Rect padding)287     public void setDisplayPadding(Rect padding) {
288         unsupported();
289     }
290 
291     @Override
setDisplayOffset(IBinder windowToken, int x, int y)292     public void setDisplayOffset(IBinder windowToken, int x, int y) {
293         unsupported();
294     }
295 
296     @Override
clearWallpaper()297     public void clearWallpaper() {
298         unsupported();
299     }
300 
301     @Override
clearWallpaper(int which, int userId)302     public void clearWallpaper(int which, int userId) {
303         unsupported();
304     }
305 
306     @Override
setWallpaperComponent(ComponentName name)307     public boolean setWallpaperComponent(ComponentName name) {
308         return unsupportedBoolean();
309     }
310 
311     @Override
setWallpaperComponent(ComponentName name, int userId)312     public boolean setWallpaperComponent(ComponentName name, int userId) {
313         return unsupportedBoolean();
314     }
315 
316     @Override
setWallpaperOffsets(IBinder windowToken, float xOffset, float yOffset)317     public void setWallpaperOffsets(IBinder windowToken, float xOffset, float yOffset) {
318         unsupported();
319     }
320 
321     @Override
setWallpaperOffsetSteps(float xStep, float yStep)322     public void setWallpaperOffsetSteps(float xStep, float yStep) {
323         unsupported();
324     }
325 
326     @Override
sendWallpaperCommand(IBinder windowToken, String action, int x, int y, int z, Bundle extras)327     public void sendWallpaperCommand(IBinder windowToken, String action, int x, int y, int z,
328             Bundle extras) {
329         unsupported();
330     }
331 
332     @Override
clearWallpaperOffsets(IBinder windowToken)333     public void clearWallpaperOffsets(IBinder windowToken) {
334         unsupported();
335     }
336 
337     @Override
clear()338     public void clear() throws IOException {
339         unsupported();
340     }
341 
342     @Override
clear(int which)343     public void clear(int which) throws IOException {
344         unsupported();
345     }
346 
347     @Override
isWallpaperBackupEligible(int which)348     public boolean isWallpaperBackupEligible(int which) {
349         return unsupportedBoolean();
350     }
351 
352     @Override
wallpaperSupportsWcg(int which)353     public boolean wallpaperSupportsWcg(int which) {
354         return unsupportedBoolean();
355     }
356 }
357