Merge "Wallpaper color extraction API stub" into oc-dev
This commit is contained in:
@ -6092,6 +6092,17 @@ package android.app {
|
||||
method public void onDetached();
|
||||
}
|
||||
|
||||
public final class WallpaperColors implements android.os.Parcelable {
|
||||
ctor public WallpaperColors(android.os.Parcel);
|
||||
ctor public WallpaperColors(java.util.List<android.util.Pair<android.graphics.Color, java.lang.Integer>>);
|
||||
ctor public WallpaperColors(java.util.List<android.util.Pair<android.graphics.Color, java.lang.Integer>>, boolean);
|
||||
method public int describeContents();
|
||||
method public java.util.List<android.util.Pair<android.graphics.Color, java.lang.Integer>> getColors();
|
||||
method public boolean supportsDarkText();
|
||||
method public void writeToParcel(android.os.Parcel, int);
|
||||
field public static final android.os.Parcelable.Creator<android.app.WallpaperColors> CREATOR;
|
||||
}
|
||||
|
||||
public final class WallpaperInfo implements android.os.Parcelable {
|
||||
ctor public WallpaperInfo(android.content.Context, android.content.pm.ResolveInfo) throws java.io.IOException, org.xmlpull.v1.XmlPullParserException;
|
||||
method public int describeContents();
|
||||
@ -6114,6 +6125,8 @@ package android.app {
|
||||
}
|
||||
|
||||
public class WallpaperManager {
|
||||
method public void addOnColorsChangedListener(android.app.WallpaperManager.OnColorsChangedListener);
|
||||
method public void addOnColorsChangedListener(android.app.WallpaperManager.OnColorsChangedListener, android.os.Handler);
|
||||
method public void clear() throws java.io.IOException;
|
||||
method public void clear(int) throws java.io.IOException;
|
||||
method public void clearWallpaperOffsets(android.os.IBinder);
|
||||
@ -6128,6 +6141,7 @@ package android.app {
|
||||
method public android.graphics.drawable.Drawable getDrawable();
|
||||
method public android.graphics.drawable.Drawable getFastDrawable();
|
||||
method public static android.app.WallpaperManager getInstance(android.content.Context);
|
||||
method public android.app.WallpaperColors getWallpaperColors(int);
|
||||
method public android.os.ParcelFileDescriptor getWallpaperFile(int);
|
||||
method public int getWallpaperId(int);
|
||||
method public android.app.WallpaperInfo getWallpaperInfo();
|
||||
@ -6136,6 +6150,7 @@ package android.app {
|
||||
method public boolean isWallpaperSupported();
|
||||
method public android.graphics.drawable.Drawable peekDrawable();
|
||||
method public android.graphics.drawable.Drawable peekFastDrawable();
|
||||
method public void removeOnColorsChangedListener(android.app.WallpaperManager.OnColorsChangedListener);
|
||||
method public void sendWallpaperCommand(android.os.IBinder, java.lang.String, int, int, int, android.os.Bundle);
|
||||
method public void setBitmap(android.graphics.Bitmap) throws java.io.IOException;
|
||||
method public int setBitmap(android.graphics.Bitmap, android.graphics.Rect, boolean) throws java.io.IOException;
|
||||
@ -6160,6 +6175,10 @@ package android.app {
|
||||
field public static final java.lang.String WALLPAPER_PREVIEW_META_DATA = "android.wallpaper.preview";
|
||||
}
|
||||
|
||||
public static abstract interface WallpaperManager.OnColorsChangedListener {
|
||||
method public abstract void onColorsChanged(android.app.WallpaperColors, int);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
package android.app.admin {
|
||||
@ -37783,10 +37802,12 @@ package android.service.wallpaper {
|
||||
method public int getDesiredMinimumHeight();
|
||||
method public int getDesiredMinimumWidth();
|
||||
method public android.view.SurfaceHolder getSurfaceHolder();
|
||||
method public void invalidateColors();
|
||||
method public boolean isPreview();
|
||||
method public boolean isVisible();
|
||||
method public void onApplyWindowInsets(android.view.WindowInsets);
|
||||
method public android.os.Bundle onCommand(java.lang.String, int, int, int, android.os.Bundle, boolean);
|
||||
method public android.app.WallpaperColors onComputeWallpaperColors();
|
||||
method public void onCreate(android.view.SurfaceHolder);
|
||||
method public void onDesiredSizeChanged(int, int);
|
||||
method public void onDestroy();
|
||||
|
@ -6296,6 +6296,17 @@ package android.app {
|
||||
method public void setPersistentVrModeEnabled(boolean);
|
||||
}
|
||||
|
||||
public final class WallpaperColors implements android.os.Parcelable {
|
||||
ctor public WallpaperColors(android.os.Parcel);
|
||||
ctor public WallpaperColors(java.util.List<android.util.Pair<android.graphics.Color, java.lang.Integer>>);
|
||||
ctor public WallpaperColors(java.util.List<android.util.Pair<android.graphics.Color, java.lang.Integer>>, boolean);
|
||||
method public int describeContents();
|
||||
method public java.util.List<android.util.Pair<android.graphics.Color, java.lang.Integer>> getColors();
|
||||
method public boolean supportsDarkText();
|
||||
method public void writeToParcel(android.os.Parcel, int);
|
||||
field public static final android.os.Parcelable.Creator<android.app.WallpaperColors> CREATOR;
|
||||
}
|
||||
|
||||
public final class WallpaperInfo implements android.os.Parcelable {
|
||||
ctor public WallpaperInfo(android.content.Context, android.content.pm.ResolveInfo) throws java.io.IOException, org.xmlpull.v1.XmlPullParserException;
|
||||
method public int describeContents();
|
||||
@ -6318,6 +6329,8 @@ package android.app {
|
||||
}
|
||||
|
||||
public class WallpaperManager {
|
||||
method public void addOnColorsChangedListener(android.app.WallpaperManager.OnColorsChangedListener);
|
||||
method public void addOnColorsChangedListener(android.app.WallpaperManager.OnColorsChangedListener, android.os.Handler);
|
||||
method public void clear() throws java.io.IOException;
|
||||
method public void clear(int) throws java.io.IOException;
|
||||
method public void clearWallpaper();
|
||||
@ -6334,6 +6347,7 @@ package android.app {
|
||||
method public android.graphics.drawable.Drawable getDrawable();
|
||||
method public android.graphics.drawable.Drawable getFastDrawable();
|
||||
method public static android.app.WallpaperManager getInstance(android.content.Context);
|
||||
method public android.app.WallpaperColors getWallpaperColors(int);
|
||||
method public android.os.ParcelFileDescriptor getWallpaperFile(int);
|
||||
method public int getWallpaperId(int);
|
||||
method public android.app.WallpaperInfo getWallpaperInfo();
|
||||
@ -6342,6 +6356,7 @@ package android.app {
|
||||
method public boolean isWallpaperSupported();
|
||||
method public android.graphics.drawable.Drawable peekDrawable();
|
||||
method public android.graphics.drawable.Drawable peekFastDrawable();
|
||||
method public void removeOnColorsChangedListener(android.app.WallpaperManager.OnColorsChangedListener);
|
||||
method public void sendWallpaperCommand(android.os.IBinder, java.lang.String, int, int, int, android.os.Bundle);
|
||||
method public void setBitmap(android.graphics.Bitmap) throws java.io.IOException;
|
||||
method public int setBitmap(android.graphics.Bitmap, android.graphics.Rect, boolean) throws java.io.IOException;
|
||||
@ -6369,6 +6384,10 @@ package android.app {
|
||||
field public static final java.lang.String WALLPAPER_PREVIEW_META_DATA = "android.wallpaper.preview";
|
||||
}
|
||||
|
||||
public static abstract interface WallpaperManager.OnColorsChangedListener {
|
||||
method public abstract void onColorsChanged(android.app.WallpaperColors, int);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
package android.app.admin {
|
||||
@ -41042,10 +41061,12 @@ package android.service.wallpaper {
|
||||
method public int getDesiredMinimumHeight();
|
||||
method public int getDesiredMinimumWidth();
|
||||
method public android.view.SurfaceHolder getSurfaceHolder();
|
||||
method public void invalidateColors();
|
||||
method public boolean isPreview();
|
||||
method public boolean isVisible();
|
||||
method public void onApplyWindowInsets(android.view.WindowInsets);
|
||||
method public android.os.Bundle onCommand(java.lang.String, int, int, int, android.os.Bundle, boolean);
|
||||
method public android.app.WallpaperColors onComputeWallpaperColors();
|
||||
method public void onCreate(android.view.SurfaceHolder);
|
||||
method public void onDesiredSizeChanged(int, int);
|
||||
method public void onDestroy();
|
||||
|
@ -6112,6 +6112,17 @@ package android.app {
|
||||
method public void onDetached();
|
||||
}
|
||||
|
||||
public final class WallpaperColors implements android.os.Parcelable {
|
||||
ctor public WallpaperColors(android.os.Parcel);
|
||||
ctor public WallpaperColors(java.util.List<android.util.Pair<android.graphics.Color, java.lang.Integer>>);
|
||||
ctor public WallpaperColors(java.util.List<android.util.Pair<android.graphics.Color, java.lang.Integer>>, boolean);
|
||||
method public int describeContents();
|
||||
method public java.util.List<android.util.Pair<android.graphics.Color, java.lang.Integer>> getColors();
|
||||
method public boolean supportsDarkText();
|
||||
method public void writeToParcel(android.os.Parcel, int);
|
||||
field public static final android.os.Parcelable.Creator<android.app.WallpaperColors> CREATOR;
|
||||
}
|
||||
|
||||
public final class WallpaperInfo implements android.os.Parcelable {
|
||||
ctor public WallpaperInfo(android.content.Context, android.content.pm.ResolveInfo) throws java.io.IOException, org.xmlpull.v1.XmlPullParserException;
|
||||
method public int describeContents();
|
||||
@ -6134,6 +6145,8 @@ package android.app {
|
||||
}
|
||||
|
||||
public class WallpaperManager {
|
||||
method public void addOnColorsChangedListener(android.app.WallpaperManager.OnColorsChangedListener);
|
||||
method public void addOnColorsChangedListener(android.app.WallpaperManager.OnColorsChangedListener, android.os.Handler);
|
||||
method public void clear() throws java.io.IOException;
|
||||
method public void clear(int) throws java.io.IOException;
|
||||
method public void clearWallpaperOffsets(android.os.IBinder);
|
||||
@ -6148,6 +6161,7 @@ package android.app {
|
||||
method public android.graphics.drawable.Drawable getDrawable();
|
||||
method public android.graphics.drawable.Drawable getFastDrawable();
|
||||
method public static android.app.WallpaperManager getInstance(android.content.Context);
|
||||
method public android.app.WallpaperColors getWallpaperColors(int);
|
||||
method public android.os.ParcelFileDescriptor getWallpaperFile(int);
|
||||
method public int getWallpaperId(int);
|
||||
method public android.app.WallpaperInfo getWallpaperInfo();
|
||||
@ -6156,6 +6170,7 @@ package android.app {
|
||||
method public boolean isWallpaperSupported();
|
||||
method public android.graphics.drawable.Drawable peekDrawable();
|
||||
method public android.graphics.drawable.Drawable peekFastDrawable();
|
||||
method public void removeOnColorsChangedListener(android.app.WallpaperManager.OnColorsChangedListener);
|
||||
method public void sendWallpaperCommand(android.os.IBinder, java.lang.String, int, int, int, android.os.Bundle);
|
||||
method public void setBitmap(android.graphics.Bitmap) throws java.io.IOException;
|
||||
method public int setBitmap(android.graphics.Bitmap, android.graphics.Rect, boolean) throws java.io.IOException;
|
||||
@ -6180,6 +6195,10 @@ package android.app {
|
||||
field public static final java.lang.String WALLPAPER_PREVIEW_META_DATA = "android.wallpaper.preview";
|
||||
}
|
||||
|
||||
public static abstract interface WallpaperManager.OnColorsChangedListener {
|
||||
method public abstract void onColorsChanged(android.app.WallpaperColors, int);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
package android.app.admin {
|
||||
@ -37977,10 +37996,12 @@ package android.service.wallpaper {
|
||||
method public int getDesiredMinimumHeight();
|
||||
method public int getDesiredMinimumWidth();
|
||||
method public android.view.SurfaceHolder getSurfaceHolder();
|
||||
method public void invalidateColors();
|
||||
method public boolean isPreview();
|
||||
method public boolean isVisible();
|
||||
method public void onApplyWindowInsets(android.view.WindowInsets);
|
||||
method public android.os.Bundle onCommand(java.lang.String, int, int, int, android.os.Bundle, boolean);
|
||||
method public android.app.WallpaperColors onComputeWallpaperColors();
|
||||
method public void onCreate(android.view.SurfaceHolder);
|
||||
method public void onDesiredSizeChanged(int, int);
|
||||
method public void onDestroy();
|
||||
|
97
core/java/android/app/WallpaperColors.java
Normal file
97
core/java/android/app/WallpaperColors.java
Normal file
@ -0,0 +1,97 @@
|
||||
/*
|
||||
* Copyright (C) 2017 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License
|
||||
*/
|
||||
|
||||
package android.app;
|
||||
|
||||
import android.graphics.Color;
|
||||
import android.os.Parcel;
|
||||
import android.os.Parcelable;
|
||||
|
||||
import android.util.Pair;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* A class containing information about the colors of a wallpaper.
|
||||
*/
|
||||
public final class WallpaperColors implements Parcelable {
|
||||
|
||||
public WallpaperColors(Parcel parcel) {
|
||||
}
|
||||
|
||||
/**
|
||||
* Wallpaper color details containing a list of colors and their weights,
|
||||
* as if it were an histogram.
|
||||
* This list can be extracted from a bitmap by the Palette API.
|
||||
*
|
||||
* Dark text support will be calculated internally based on the histogram.
|
||||
*
|
||||
* @param colors list of pairs where each pair contains a color
|
||||
* and number of occurrences/influence.
|
||||
*/
|
||||
public WallpaperColors(List<Pair<Color, Integer>> colors) {
|
||||
}
|
||||
|
||||
/**
|
||||
* Wallpaper color details containing a list of colors and their weights,
|
||||
* as if it were an histogram.
|
||||
* Explicit dark text support.
|
||||
*
|
||||
* @param colors list of pairs where each pair contains a color
|
||||
* and number of occurrences/influence.
|
||||
* @param supportsDarkText can have dark text on top or not
|
||||
*/
|
||||
public WallpaperColors(List<Pair<Color, Integer>> colors, boolean supportsDarkText) {
|
||||
}
|
||||
|
||||
public static final Creator<WallpaperColors> CREATOR = new Creator<WallpaperColors>() {
|
||||
@Override
|
||||
public WallpaperColors createFromParcel(Parcel in) {
|
||||
return new WallpaperColors(in);
|
||||
}
|
||||
|
||||
@Override
|
||||
public WallpaperColors[] newArray(int size) {
|
||||
return new WallpaperColors[size];
|
||||
}
|
||||
};
|
||||
|
||||
@Override
|
||||
public int describeContents() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeToParcel(Parcel dest, int flags) {
|
||||
}
|
||||
|
||||
/**
|
||||
* List of colors with their occurrences. The bigger the int, the more relevant the color.
|
||||
* @return list of colors paired with their weights.
|
||||
*/
|
||||
public List<Pair<Color, Integer>> getColors() {
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Whether or not dark text is legible on top of this wallpaper.
|
||||
*
|
||||
* @return true if dark text is supported
|
||||
*/
|
||||
public boolean supportsDarkText() {
|
||||
return false;
|
||||
}
|
||||
}
|
@ -17,6 +17,8 @@
|
||||
package android.app;
|
||||
|
||||
import android.annotation.IntDef;
|
||||
import android.annotation.NonNull;
|
||||
import android.annotation.Nullable;
|
||||
import android.annotation.RawRes;
|
||||
import android.annotation.SystemApi;
|
||||
import android.content.ComponentName;
|
||||
@ -741,6 +743,43 @@ public class WallpaperManager {
|
||||
return getWallpaperFile(which, mContext.getUserId());
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Registers a listener to get notified when the wallpaper colors change.
|
||||
* Callback might be called from an arbitrary background thread.
|
||||
*
|
||||
* @param listener A listener to register
|
||||
*/
|
||||
public void addOnColorsChangedListener(@NonNull OnColorsChangedListener listener) {
|
||||
}
|
||||
|
||||
/**
|
||||
* Registers a listener to get notified when the wallpaper colors change
|
||||
* @param listener A listener to register
|
||||
* @param handler Where to call it from. Might be called from a background thread
|
||||
* if null.
|
||||
*/
|
||||
public void addOnColorsChangedListener(@NonNull OnColorsChangedListener listener,
|
||||
@Nullable Handler handler) {
|
||||
}
|
||||
|
||||
/**
|
||||
* Stop listening to color updates.
|
||||
* @param callback A callback to unsubscribe
|
||||
*/
|
||||
public void removeOnColorsChangedListener(@NonNull OnColorsChangedListener callback) {
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the primary colors of a wallpaper
|
||||
* @param which wallpaper type. Must be either {@link #FLAG_SYSTEM} or
|
||||
* {@link #FLAG_LOCK}
|
||||
* @return a list of colors ordered by priority
|
||||
*/
|
||||
public @Nullable WallpaperColors getWallpaperColors(int which) {
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Version of {@link #getWallpaperFile(int)} that can access the wallpaper data
|
||||
* for a given user. The caller must hold the INTERACT_ACROSS_USERS_FULL
|
||||
@ -1732,4 +1771,19 @@ public class WallpaperManager {
|
||||
mLatch.countDown();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Interface definition for a callback to be invoked when colors change on a wallpaper.
|
||||
*/
|
||||
public interface OnColorsChangedListener {
|
||||
/**
|
||||
* Called when colors change.
|
||||
* A {@link android.app.WallpaperColors} object containing a simplified
|
||||
* color histogram will be given.
|
||||
*
|
||||
* @param colors Wallpaper color info
|
||||
* @param which A combination of {@link #FLAG_LOCK} and {@link #FLAG_SYSTEM}
|
||||
*/
|
||||
void onColorsChanged(WallpaperColors colors, int which);
|
||||
}
|
||||
}
|
||||
|
@ -16,6 +16,8 @@
|
||||
|
||||
package android.service.wallpaper;
|
||||
|
||||
import android.annotation.Nullable;
|
||||
import android.app.WallpaperColors;
|
||||
import android.content.res.TypedArray;
|
||||
import android.graphics.Canvas;
|
||||
import android.util.MergedConfiguration;
|
||||
@ -543,6 +545,24 @@ public abstract class WallpaperService extends Service {
|
||||
public void onSurfaceDestroyed(SurfaceHolder holder) {
|
||||
}
|
||||
|
||||
/**
|
||||
* Notifies the engine that wallpaper colors changed significantly.
|
||||
* This will trigger a {@link #onComputeWallpaperColors()} call.
|
||||
*/
|
||||
public void invalidateColors() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Notifies the system about what colors the wallpaper is using.
|
||||
* You might return null if no color information is available at the moment. In that case
|
||||
* you might want to call {@link #invalidateColors()} in a near future.
|
||||
*
|
||||
* @return List of wallpaper colors and their weights.
|
||||
*/
|
||||
public @Nullable WallpaperColors onComputeWallpaperColors() {
|
||||
return null;
|
||||
}
|
||||
|
||||
protected void dump(String prefix, FileDescriptor fd, PrintWriter out, String[] args) {
|
||||
out.print(prefix); out.print("mInitializing="); out.print(mInitializing);
|
||||
out.print(" mDestroyed="); out.println(mDestroyed);
|
||||
|
Reference in New Issue
Block a user