package com.example.administrator.searchpicturetool.model;
import android.app.WallpaperManager;
import android.content.Context;
import android.graphics.Bitmap;
import com.example.administrator.searchpicturetool.config.API;
import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import rx.Observable;
import rx.android.schedulers.AndroidSchedulers;
import rx.functions.Func1;
import rx.schedulers.Schedulers;
/**
* Created by wenhuaijun on 2016/1/23 0023.
*/
public class WrapperModel {
public static Observable<Integer> getSetWallWrapperObservable(Bitmap bitmap, final Context context){
Observable<Bitmap> observable = Observable.just(bitmap);
return observable.map(new Func1<Bitmap, Integer>() {
@Override
public Integer call(Bitmap bitmap) {
WallpaperManager wallpaperManager = WallpaperManager.getInstance(context);
try {
wallpaperManager.setBitmap(bitmap);
} catch (IOException e) {
e.printStackTrace();
return API.status.error;
}
return API.status.success;
}
}).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread());
}
public static Observable<Integer> getSetLockWrapperObservable(Bitmap bitmap, final Context context){
Observable<Bitmap> observable = Observable.just(bitmap);
return observable.map(new Func1<Bitmap, Integer>() {
@Override
public Integer call(Bitmap bitmap) {
WallpaperManager mWallManager =WallpaperManager.getInstance(context);
Class class1 =mWallManager.getClass();
Method setWallPaperMethod = null;
try {
setWallPaperMethod = class1.getMethod("setBitmapToLockWallpaper",Bitmap.class);
} catch (NoSuchMethodException e) {
e.printStackTrace();
return API.status.error;
}
try {
setWallPaperMethod.invoke(mWallManager,bitmap);
} catch (IllegalAccessException e) {
e.printStackTrace();
return API.status.error;
} catch (InvocationTargetException e) {
e.printStackTrace();
return API.status.error;
}
return API.status.success;
}
}).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread());
}
}