// Path: app/src/main/java/com/yininghuang/zhihudailynews/model/db/Favorite.java
// public class Favorite {
// 
//     private int id;
// 
//     private int saveTime;
// 
//     private String content;
// 
//     public Favorite() {
//     }
// 
//     public Favorite(int id, int saveTime, String content) {
//         this.id = id;
//         this.saveTime = saveTime;
//         this.content = content;
//     }
// 
//     public int getId() {
//         return id;
//     }
// 
//     public void setId(int id) {
//         this.id = id;
//     }
// 
//     public int getSaveTime() {
//         return saveTime;
//     }
// 
//     public void setSaveTime(int saveTime) {
//         this.saveTime = saveTime;
//     }
// 
//     public String getContent() {
//         return content;
//     }
// 
//     public void setContent(String content) {
//         this.content = content;
//     }
// }
// 
// Path: app/src/main/java/com/yininghuang/zhihudailynews/utils/DBManager.java
// public class DBManager {
// 
//     private SQLiteDatabase db;
// 
//     public DBManager(Context context) {
//         DBHelper mDBHelper = new DBHelper(context);
//         db = mDBHelper.getWritableDatabase();
//     }
// 
//     public void addFavorite(Favorite content) {
//         db.beginTransaction();
//         try {
//             db.execSQL("INSERT INTO " + DBHelper.TABLE_FAVORITE + " VALUES(?, ?, ?)",
//                     new Object[]{
//                             content.getId(),
//                             content.getSaveTime(),
//                             content.getContent()
//                     });
//             db.setTransactionSuccessful();
//         } catch (SQLiteException e) {
//             e.printStackTrace();
//         } finally {
//             db.endTransaction();
//         }
//     }
// 
//     public void removeFavorite(int id) {
//         db.delete(DBHelper.TABLE_FAVORITE, "id = ?", new String[]{String.valueOf(id)});
//     }
// 
//     @Nullable
//     public Favorite queryFavorite(int contentId) {
//         Favorite favorite = null;
//         Cursor cursor = db.rawQuery("SELECT * FROM " + DBHelper.TABLE_FAVORITE + " WHERE id = ?",
//                 new String[]{String.valueOf(contentId)});
//         if (cursor.getCount() != 0) {
//             cursor.moveToFirst();
//             favorite = new Favorite(
//                     cursor.getInt(cursor.getColumnIndex("id")),
//                     cursor.getInt(cursor.getColumnIndex("save_time")),
//                     cursor.getString(cursor.getColumnIndex("content"))
//             );
//         }
//         cursor.close();
//         return favorite;
//     }
// 
//     public List<Favorite> queryFavoriteList() {
//         List<Favorite> list = new ArrayList<>();
//         Cursor cursor = db.query(DBHelper.TABLE_FAVORITE, null, null, null, null, null, "save_time DESC");
//         if (cursor.moveToFirst()) {
//             do {
//                 Favorite favorite = new Favorite(
//                         cursor.getInt(cursor.getColumnIndex("id")),
//                         cursor.getInt(cursor.getColumnIndex("save_time")),
//                         cursor.getString(cursor.getColumnIndex("content")));
//                 list.add(favorite);
//             } while (cursor.moveToNext());
//         }
//         cursor.close();
//         return list;
//     }
// 
//     public void clearAllFavorite() {
//         db.delete(DBHelper.TABLE_FAVORITE, null, null);
//     }
// 
// }


import com.yininghuang.zhihudailynews.model.db.Favorite;
import com.yininghuang.zhihudailynews.utils.DBManager;
package com.yininghuang.zhihudailynews.favorite;


/**
 * Created by Yining Huang on 2016/11/1.
 */

public class FavoritePresenter implements FavoriteContract.Presenter {

    private FavoriteContract.View mView;
    private DBManager mDBManager;

    public FavoritePresenter(FavoriteContract.View view, DBManager dbManager) {
        mView = view;
        mDBManager = dbManager;
        mView.setPresenter(this);
    }

    @Override
    public void init() {
        mView.setResults(mDBManager.queryFavoriteList());
    }

    @Override
    public void add(Favorite favorite) {
        mDBManager.addFavorite(favorite);
    }

    @Override
    public void remove(int id) {
        mDBManager.removeFavorite(id);
    }

    @Override
    public void clearAll() {
// Path: app/src/main/java/com/yininghuang/zhihudailynews/model/db/Favorite.java
// public class Favorite {
// 
//     private int id;
// 
//     private int saveTime;
// 
//     private String content;
// 
//     public Favorite() {
//     }
// 
//     public Favorite(int id, int saveTime, String content) {
//         this.id = id;
//         this.saveTime = saveTime;
//         this.content = content;
//     }
// 
//     public int getId() {
//         return id;
//     }
// 
//     public void setId(int id) {
//         this.id = id;
//     }
// 
//     public int getSaveTime() {
//         return saveTime;
//     }
// 
//     public void setSaveTime(int saveTime) {
//         this.saveTime = saveTime;
//     }
// 
//     public String getContent() {
//         return content;
//     }
// 
//     public void setContent(String content) {
//         this.content = content;
//     }
// }
// 
// Path: app/src/main/java/com/yininghuang/zhihudailynews/utils/DBManager.java
// public class DBManager {
// 
//     private SQLiteDatabase db;
// 
//     public DBManager(Context context) {
//         DBHelper mDBHelper = new DBHelper(context);
//         db = mDBHelper.getWritableDatabase();
//     }
// 
//     public void addFavorite(Favorite content) {
//         db.beginTransaction();
//         try {
//             db.execSQL("INSERT INTO " + DBHelper.TABLE_FAVORITE + " VALUES(?, ?, ?)",
//                     new Object[]{
//                             content.getId(),
//                             content.getSaveTime(),
//                             content.getContent()
//                     });
//             db.setTransactionSuccessful();
//         } catch (SQLiteException e) {
//             e.printStackTrace();
//         } finally {
//             db.endTransaction();
//         }
//     }
// 
//     public void removeFavorite(int id) {
//         db.delete(DBHelper.TABLE_FAVORITE, "id = ?", new String[]{String.valueOf(id)});
//     }
// 
//     @Nullable
//     public Favorite queryFavorite(int contentId) {
//         Favorite favorite = null;
//         Cursor cursor = db.rawQuery("SELECT * FROM " + DBHelper.TABLE_FAVORITE + " WHERE id = ?",
//                 new String[]{String.valueOf(contentId)});
//         if (cursor.getCount() != 0) {
//             cursor.moveToFirst();
//             favorite = new Favorite(
//                     cursor.getInt(cursor.getColumnIndex("id")),
//                     cursor.getInt(cursor.getColumnIndex("save_time")),
//                     cursor.getString(cursor.getColumnIndex("content"))
//             );
//         }
//         cursor.close();
//         return favorite;
//     }
// 
//     public List<Favorite> queryFavoriteList() {
//         List<Favorite> list = new ArrayList<>();
//         Cursor cursor = db.query(DBHelper.TABLE_FAVORITE, null, null, null, null, null, "save_time DESC");
//         if (cursor.moveToFirst()) {
//             do {
//                 Favorite favorite = new Favorite(
//                         cursor.getInt(cursor.getColumnIndex("id")),
//                         cursor.getInt(cursor.getColumnIndex("save_time")),
//                         cursor.getString(cursor.getColumnIndex("content")));
//                 list.add(favorite);
//             } while (cursor.moveToNext());
//         }
//         cursor.close();
//         return list;
//     }
// 
//     public void clearAllFavorite() {
//         db.delete(DBHelper.TABLE_FAVORITE, null, null);
//     }
// 
// }


// Path: app/src/main/java/com/yininghuang/zhihudailynews/favorite/FavoritePresenter.java
import com.yininghuang.zhihudailynews.model.db.Favorite;
import com.yininghuang.zhihudailynews.utils.DBManager;

package com.yininghuang.zhihudailynews.favorite;


/**
 * Created by Yining Huang on 2016/11/1.
 */

public class FavoritePresenter implements FavoriteContract.Presenter {

    private FavoriteContract.View mView;
    private DBManager mDBManager;

    public FavoritePresenter(FavoriteContract.View view, DBManager dbManager) {
        mView = view;
        mDBManager = dbManager;
        mView.setPresenter(this);
    }

    @Override
    public void init() {
        mView.setResults(mDBManager.queryFavoriteList());
    }

    @Override
    public void add(Favorite favorite) {
        mDBManager.addFavorite(favorite);
    }

    @Override
    public void remove(int id) {
        mDBManager.removeFavorite(id);
    }

    @Override
    public void clearAll() {
        mDBManager.clearAllFavorite();