1 /**
2  * Copyright (c) 2008, 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.app;
18 
19 import android.graphics.Rect;
20 import android.os.Bundle;
21 import android.os.ParcelFileDescriptor;
22 import android.app.IWallpaperManagerCallback;
23 import android.app.WallpaperInfo;
24 import android.content.ComponentName;
25 
26 /** @hide */
27 interface IWallpaperManager {
28 
29     /**
30      * Set the wallpaper for the current user.
31      *
32      * If 'extras' is non-null, on successful return it will contain:
33      *   EXTRA_SET_WALLPAPER_ID : integer ID that the new wallpaper will have
34      *
35      * 'which' is some combination of:
36      *   FLAG_SET_SYSTEM
37      *   FLAG_SET_LOCK
38      *
39      * A 'null' cropHint rectangle is explicitly permitted as a sentinel for "whatever
40      * the source image's bounding rect is."
41      *
42      * The completion callback's "onWallpaperChanged()" method is invoked when the
43      * new wallpaper content is ready to display.
44      */
setWallpaper(String name, in String callingPackage, in Rect cropHint, boolean allowBackup, out Bundle extras, int which, IWallpaperManagerCallback completion)45     ParcelFileDescriptor setWallpaper(String name, in String callingPackage,
46             in Rect cropHint, boolean allowBackup, out Bundle extras, int which,
47             IWallpaperManagerCallback completion);
48 
49     /**
50      * Set the live wallpaper. This only affects the system wallpaper.
51      */
setWallpaperComponentChecked(in ComponentName name, in String callingPackage)52     void setWallpaperComponentChecked(in ComponentName name, in String callingPackage);
53 
54     /**
55      * Set the live wallpaper. This only affects the system wallpaper.
56      */
setWallpaperComponent(in ComponentName name)57     void setWallpaperComponent(in ComponentName name);
58 
59     /**
60      * Get the wallpaper for a given user.
61      */
getWallpaper(IWallpaperManagerCallback cb, int which, out Bundle outParams, int userId)62     ParcelFileDescriptor getWallpaper(IWallpaperManagerCallback cb, int which,
63             out Bundle outParams, int userId);
64 
65     /**
66      * Retrieve the given user's current wallpaper ID of the given kind.
67      */
getWallpaperIdForUser(int which, int userId)68     int getWallpaperIdForUser(int which, int userId);
69 
70     /**
71      * If the current system wallpaper is a live wallpaper component, return the
72      * information about that wallpaper.  Otherwise, if it is a static image,
73      * simply return null.
74      */
getWallpaperInfo()75     WallpaperInfo getWallpaperInfo();
76 
77     /**
78      * Clear the system wallpaper.
79      */
clearWallpaper(in String callingPackage, int which, int userId)80     void clearWallpaper(in String callingPackage, int which, int userId);
81 
82     /**
83      * Return whether the current system wallpaper has the given name.
84      */
hasNamedWallpaper(String name)85     boolean hasNamedWallpaper(String name);
86 
87     /**
88      * Sets the dimension hint for the wallpaper. These hints indicate the desired
89      * minimum width and height for the wallpaper.
90      */
setDimensionHints(in int width, in int height, in String callingPackage)91     void setDimensionHints(in int width, in int height, in String callingPackage);
92 
93     /**
94      * Returns the desired minimum width for the wallpaper.
95      */
getWidthHint()96     int getWidthHint();
97 
98     /**
99      * Returns the desired minimum height for the wallpaper.
100      */
getHeightHint()101     int getHeightHint();
102 
103     /**
104      * Sets extra padding that we would like the wallpaper to have outside of the display.
105      */
setDisplayPadding(in Rect padding, in String callingPackage)106     void setDisplayPadding(in Rect padding, in String callingPackage);
107 
108     /**
109      * Returns the name of the wallpaper. Private API.
110      */
getName()111     String getName();
112 
113     /**
114      * Informs the service that wallpaper settings have been restored. Private API.
115      */
settingsRestored()116     void settingsRestored();
117 
118     /**
119      * Check whether wallpapers are supported for the calling user.
120      */
isWallpaperSupported(in String callingPackage)121     boolean isWallpaperSupported(in String callingPackage);
122 
123     /**
124      * Check whether setting of wallpapers are allowed for the calling user.
125      */
isSetWallpaperAllowed(in String callingPackage)126     boolean isSetWallpaperAllowed(in String callingPackage);
127 
128     /*
129      * Backup: is the current system wallpaper image eligible for off-device backup?
130      */
isWallpaperBackupEligible(int userId)131     boolean isWallpaperBackupEligible(int userId);
132 
133     /*
134      * Keyguard: register a callback for being notified that lock-state relevant
135      * wallpaper content has changed.
136      */
setLockWallpaperCallback(IWallpaperManagerCallback cb)137     boolean setLockWallpaperCallback(IWallpaperManagerCallback cb);
138 }
139