1 package de.dhbwloe.campusapp.database;
3 import android.content.ContentValues;
4 import android.database.Cursor;
5 import android.database.sqlite.SQLiteDatabase;
7 import java.util.ArrayList;
9 import de.dhbwloe.campusapp.CampusAppContext;
10 import de.dhbwloe.campusapp.news.NewsItem;
13 * Created by pk910 on 24.01.2016.
15 public class NewsDatabaseHelper {
16 private CampusAppContext AppContext;
17 private SQLiteDatabase database;
19 public NewsDatabaseHelper(CampusAppContext context, SQLiteDatabase database) {
20 this.database = database;
24 public void updateNewsItem(NewsItem news) {
25 boolean isExisting = false;
26 String[] whereArgs = new String[] {
30 Cursor resultSet = database.rawQuery("SELECT ChkSum FROM News WHERE Source = ? AND UniqueId = ?", whereArgs);
31 if(resultSet.moveToFirst()) {
32 long chksum = resultSet.getLong(0);
33 if (news.getChkSum() == chksum)
34 return; // nothing to update
41 ContentValues updateValues = new ContentValues();
42 updateValues.put("ChkSum", news.getChkSum());
43 updateValues.put("Title", news.getTitle());
44 updateValues.put("Time", news.getTime());
45 updateValues.put("Summary", news.getSummary());
46 updateValues.put("Content", news.getContent());
47 updateValues.put("Link", news.getLink());
48 updateValues.put("Categories", news.getCategories());
50 database.update("News", updateValues, "Source = ? AND UniqueId = ?", whereArgs);
51 } catch(Exception e) {
56 ContentValues indexValues = new ContentValues();
57 indexValues.put("Source", news.getSource());
58 indexValues.put("UniqueId", news.getUniqueId());
60 indexValues.put("ChkSum", news.getChkSum());
61 indexValues.put("Title", news.getTitle());
62 indexValues.put("Time", news.getTime());
63 indexValues.put("Summary", news.getSummary());
64 indexValues.put("Content", news.getContent());
65 indexValues.put("Link", news.getLink());
66 indexValues.put("Categories", news.getCategories());
68 long newId = database.insertOrThrow("News", null, indexValues);
69 news.setIsNew((int) newId);
70 } catch(Exception e) {
77 public NewsItem[] getNewsItems(String source, long timeFrom, long timeTo) {
78 String[] whereArgs = new String[] {
80 Long.toString(timeFrom),
83 Cursor resultSet = database.rawQuery("SELECT Id, Source, Time, UniqueId, ChkSum, Title, Summary, Content, Link, Categories FROM News WHERE Source = ? AND Time >= ? AND Time <= ?", whereArgs);
84 ArrayList<NewsItem> results = new ArrayList<NewsItem>();
85 if(resultSet.moveToFirst()) {
86 int[] columnIndexes = {
87 resultSet.getColumnIndex("Id"),
88 resultSet.getColumnIndex("Source"),
89 resultSet.getColumnIndex("Time"),
90 resultSet.getColumnIndex("UniqueId"),
91 resultSet.getColumnIndex("ChkSum"),
92 resultSet.getColumnIndex("Title"),
93 resultSet.getColumnIndex("Summary"),
94 resultSet.getColumnIndex("Content"),
95 resultSet.getColumnIndex("Link"),
96 resultSet.getColumnIndex("Categories")
99 NewsItem news = new NewsItem(
100 resultSet.getInt(columnIndexes[0]), resultSet.getString(columnIndexes[1]),
101 resultSet.getLong(columnIndexes[2]), resultSet.getString(columnIndexes[3]),
102 resultSet.getLong(columnIndexes[4]), resultSet.getString(columnIndexes[5]),
103 resultSet.getString(columnIndexes[6]), resultSet.getString(columnIndexes[7]),
104 resultSet.getString(columnIndexes[8]), resultSet.getString(columnIndexes[9])
108 } while (resultSet.moveToNext());
112 NewsItem[] resultsArr = new NewsItem[results.size()];
113 resultsArr = results.toArray(resultsArr);