package com.example.administrator.searchpicturetool.model.db;
import android.content.Context;
import com.example.administrator.searchpicturetool.config.API;
import com.example.administrator.searchpicturetool.model.bean.CollectSearchTip;
import com.example.administrator.searchpicturetool.model.bean.DownloadImg;
import com.example.administrator.searchpicturetool.model.bean.NetImage;
import java.util.ArrayList;
import java.util.List;
import rx.Observable;
import rx.Subscriber;
import rx.android.schedulers.AndroidSchedulers;
import rx.functions.Func1;
import rx.schedulers.Schedulers;
/**
* Created by wenhuaijun on 2016/1/31 0031.
*/
public class SqlModel {
//存下载图片信息到数据库
public static void addDownloadImg(Context context,NetImage netImage,String fileName){
// DBManager manager = new DBManager(context);
DownloadImg hasDownloadImg= new DownloadImg(fileName,netImage.getLargeImg(),netImage.getHeight(),netImage.getWidth());
DBManager.getInstance(context).addHasDownload(hasDownloadImg);
}
//从download数据库中删除一个图片信息
public static void deleteDownloadImgByname(Context context,String name){
// DBManager manager = new DBManager(context);
DBManager.getInstance(context).deleteHasDownload(name);
}
//批量删除选中的已下载图片
public static Observable<String> deleteDownloadImgs(final Context context, final List<DownloadImg> imgs){
Observable<String> observable = Observable.just("")
.map(s -> {
DBManager.getInstance(context).deleteDownloadPictures(imgs,context);
return API.status.success+"";
}).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread());
return observable;
}
//批量删除选中的收藏的标签
public static Observable<String> deleteSeachTips(final Context context, final List<CollectSearchTip> imgs){
Observable<String> observable = Observable.just("")
.map(s -> {
DBManager.getInstance(context).deleteSearchTips(imgs);
return API.status.success+"";
}).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread());
return observable;
}
//存收藏图片信息到数据库
public static void addCollectImg(Context context,NetImage netImage){
DBManager.getInstance(context).addHasCollect(netImage);
}
public static Observable<String> addSearchTip(Context context,String tip,String uriType,String uri){
return Observable.create(new Observable.OnSubscribe<String>() {
@Override
public void call(Subscriber<? super String> subscriber) {
DBManager.getInstance(context).addSearchTip(tip,uriType,uri);
subscriber.onNext("收藏搜索标签成功");
}
}).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread());
}
//从collect数据库删除一张图片信息
public static void deleteCollectImgByUrl(Context context,String largeUrl){
DBManager.getInstance(context).deleteHasCollect(largeUrl);
}
//批量删除选中的已下载图片
public static Observable<String> deleteCollectImgs(final Context context, final ArrayList<NetImage> imgs){
Observable<String> observable = Observable.just("")
.map(s -> {
DBManager.getInstance(context).deleteCollectPictures(imgs);
return API.status.success+"";
}).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread());
return observable;
}
//从数据库获取所有收藏图片的信息
public static Observable<ArrayList<NetImage>> getCollectImgs(final Context context){
Observable<ArrayList<NetImage>> observable = Observable.just("").map(new Func1<String, ArrayList<NetImage>>() {
@Override
public ArrayList<NetImage> call(String s) {
return DBManager.getInstance(context).queryHasCollectImgs();
}
}).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread());
return observable;
}
//从数据库获取所有下载图片的信息
public static Observable<ArrayList<DownloadImg>> getDownloadImgs(final Context context){
Observable<ArrayList<DownloadImg>> observable = Observable.just("").map(new Func1<String, ArrayList<DownloadImg>>() {
@Override
public ArrayList<DownloadImg> call(String s) {
return DBManager.getInstance(context).queryHasDownloadImgs();
}
}).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread());
return observable;
}
}