package com.cundong.izhihu.db;
import java.util.ArrayList;
import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.text.TextUtils;
/**
* 类说明: 新闻已读、未读数据表,数据库帮助类
*
* @date 2014-10-7
* @version 1.0
*/
public final class NewsReadDataSource extends BaseDataSource {
private SQLiteDatabase database;
private String[] allColumns = { DatabaseHelper.READ_COLUMN_ID,
DatabaseHelper.READ_COLUMN_NEWSID };
public NewsReadDataSource(DatabaseHelper dbHelper) {
database = dbHelper.getWritableDatabase();
}
private void insert(String newsId) {
ContentValues values = new ContentValues();
values.put(DatabaseHelper.READ_COLUMN_NEWSID, newsId);
database.insert(DatabaseHelper.READ_TABLE_NAME, null, values);
}
/**
* 设置为已读
*
* @param newsId
* @return
*/
public boolean readNews(String newsId) {
if (TextUtils.isEmpty(newsId))
return false;
if (!isNewsRead(newsId)) {
insert(newsId);
return true;
} else {
return false;
}
}
/**
* 新闻是否已读
*
* @param newsId
* @return
*/
private boolean isNewsRead(String newsId) {
boolean result = false;
Cursor cursor = database.query(DatabaseHelper.READ_TABLE_NAME, allColumns,
DatabaseHelper.READ_COLUMN_NEWSID + " = '" + newsId + "'", null,
null, null, null);
if (cursor != null && cursor.getCount() > 0 && cursor.moveToFirst()) {
result = true;
}
cursor.close();
return result;
}
/**
* 获取所有已读新闻
*
* @return
*/
public ArrayList<String> getNewsReadList() {
ArrayList<String> newsList = new ArrayList<String>();
Cursor cursor = database.query(DatabaseHelper.READ_TABLE_NAME, allColumns,
null, null, null, null, null);
if (cursor != null && cursor.getCount() > 0 && cursor.moveToFirst()) {
while (!cursor.isAfterLast()) {
String newsId = cursor.getString(cursor.getColumnIndex(DatabaseHelper.READ_COLUMN_NEWSID));
newsList.add(newsId);
cursor.moveToNext();
}
}
if (cursor != null) {
cursor.close();
}
return newsList;
}
}