package com.simplecity.amp_library.sql.databases; import android.content.ContentValues; import com.annimon.stream.Stream; import com.simplecity.amp_library.model.WhitelistFolder; import com.simplecity.amp_library.utils.DataManager; import com.squareup.sqlbrite.BriteDatabase; import java.util.List; import rx.Observable; public class WhitelistHelper { private WhitelistHelper() { } public static void addToWhitelist(String path) { ContentValues values = new ContentValues(); values.put(WhitelistDbOpenHelper.COLUMN_FOLDER, path); DataManager.getInstance().getWhitelistDatabase().insert(WhitelistDbOpenHelper.TABLE_FOLDERS, values); } public static void addToWhitelist(List<String> paths) { BriteDatabase db = DataManager.getInstance().getWhitelistDatabase(); BriteDatabase.Transaction transaction = db.newTransaction(); try { Stream.of(paths).map(path -> { ContentValues contentValues = new ContentValues(); contentValues.put(WhitelistDbOpenHelper.COLUMN_FOLDER, path); return contentValues; }).forEach(contentValues -> db.insert(WhitelistDbOpenHelper.TABLE_FOLDERS, contentValues)); transaction.markSuccessful(); } finally { transaction.end(); } } public static void deleteFolder(WhitelistFolder folder) { DataManager.getInstance().getWhitelistDatabase().delete(WhitelistDbOpenHelper.TABLE_FOLDERS, WhitelistDbOpenHelper.COLUMN_ID + " = " + folder.id); } public static Observable<List<WhitelistFolder>> getWhitelistFolders() { return DataManager.getInstance().getWhitelistDatabase() .createQuery(WhitelistDbOpenHelper.TABLE_FOLDERS, "SELECT * FROM " + WhitelistDbOpenHelper.TABLE_FOLDERS) .mapToList(WhitelistFolder::new); } public static void deleteAllFolders() { DataManager.getInstance().getWhitelistDatabase().delete(WhitelistDbOpenHelper.TABLE_FOLDERS, null); } }