blob: 2eb9c51f9b3490f81f261836daae28a98130f46f [file] [log] [blame]
package com.android.wallpaperpicker.common;
import android.app.WallpaperManager;
import android.content.Context;
import android.graphics.Rect;
import java.io.IOException;
import java.io.InputStream;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
public class WallpaperManagerCompatVN extends WallpaperManagerCompatV16 {
public WallpaperManagerCompatVN(Context context) {
super(context);
}
@Override
public void setStream(final InputStream data, Rect visibleCropHint, boolean allowBackup,
int whichWallpaper) throws IOException {
try {
// TODO: use mWallpaperManager.setStream(data, visibleCropHint, allowBackup, which)
// without needing reflection.
Method setStream = WallpaperManager.class.getMethod("setStream", InputStream.class,
Rect.class, boolean.class, int.class);
setStream.invoke(mWallpaperManager, data, visibleCropHint, allowBackup, whichWallpaper);
} catch (NoSuchMethodException | InvocationTargetException | IllegalAccessException e) {
// Fall back to previous implementation (set both)
super.setStream(data, visibleCropHint, allowBackup, whichWallpaper);
}
}
@Override
public void clear(int whichWallpaper) throws IOException {
try {
// TODO: use mWallpaperManager.clear(whichWallpaper) without needing reflection.
Method clear = WallpaperManager.class.getMethod("clear", int.class);
clear.invoke(mWallpaperManager, whichWallpaper);
} catch (NoSuchMethodException | IllegalAccessException | InvocationTargetException e) {
// Fall back to previous implementation (set both)
super.clear(whichWallpaper);
}
}
}