Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.mysite.datasources;
- import org.apache.commons.lang3.StringEscapeUtils;
- import android.content.ContentValues;
- import android.content.Context;
- import android.database.Cursor;
- import android.database.DatabaseUtils;
- import android.database.SQLException;
- import android.database.sqlite.SQLiteDatabase;
- import android.widget.Toast;
- import com.mysite.models.Photo;
- import com.mysite.utilities.DbHelper;
- public class PhotosDataSource
- {
- private Context mContext;
- // Database fields
- private SQLiteDatabase database;
- private DbHelper dbHelper;
- private final String[] allColumns = {
- Photo.COLUMN_ID,
- Photo.COLUMN_TRIBID,
- Photo.COLUMN_CAPTION,
- Photo.COLUMN_HEIGHT,
- Photo.COLUMN_WIDTH,
- Photo.COLUMN_FILEPATH,
- Photo.COLUMN_ARTICLETRIBID,
- Photo.COLUMN_MODIFIED
- };
- public PhotosDataSource(Context context)
- {
- this.mContext = context;
- dbHelper = new DbHelper(context);
- }
- public void open() throws SQLException
- {
- database = dbHelper.getWritableDatabase();
- }
- public void close()
- {
- dbHelper.close();
- }
- public long createPhoto(Photo photo)
- {
- this.open();
- try {
- return database.insert(Photo.TABLE, null, this.buildContentValues(photo));
- }
- finally
- {
- this.close();
- }
- }
- public int updatePhoto(Photo photo)
- {
- this.open();
- try {
- return database.update(Photo.TABLE, buildContentValues(photo), Photo.COLUMN_ID + " = ?", new String[] { String.valueOf(photo.id) });
- }
- finally
- {
- this.close();
- }
- }
- private ContentValues buildContentValues(Photo photo)
- {
- ContentValues values = new ContentValues();
- values.put(Photo.COLUMN_TRIBID, photo.tribid);
- values.put(Photo.COLUMN_CAPTION, photo.caption);
- values.put(Photo.COLUMN_HEIGHT, photo.height);
- values.put(Photo.COLUMN_WIDTH, photo.width);
- values.put(Photo.COLUMN_FILEPATH, photo.filepath);
- values.put(Photo.COLUMN_ARTICLETRIBID, photo.articletribid);
- values.put(Photo.COLUMN_MODIFIED, photo.modified);
- return values;
- }
- public Photo getPhotoData(String id, Boolean showToast)
- {
- this.open();
- Photo p1 = new Photo();
- try {
- Cursor cursor = database.query(Photo.TABLE,
- allColumns,
- Photo.COLUMN_ID + "=?",
- new String[] {id},
- null, null, null, null); //WHY CAN'T I USE "LIMIT 1" ?????
- cursor.moveToFirst();
- p1 = cursorToPhoto(cursor);
- cursor.close();
- } catch (Exception e) {
- e.printStackTrace();
- if(showToast)
- {
- //show "couldn't load" message"
- Toast toast = Toast.makeText(
- this.mContext.getApplicationContext(),
- "NOTICE: Could not load selected photo.",
- Toast.LENGTH_LONG);
- toast.show();
- }
- }
- finally
- {
- this.close();
- }
- return p1;
- }
- private Photo cursorToPhoto(Cursor cursor)
- {
- Photo photo = new Photo();
- photo.id = cursor.getLong(cursor.getColumnIndex(Photo.COLUMN_ID));
- photo.tribid = StringEscapeUtils.unescapeXml(cursor.getString(cursor.getColumnIndex(Photo.COLUMN_TRIBID)));
- photo.caption = StringEscapeUtils.unescapeXml(cursor.getString(cursor.getColumnIndex(Photo.COLUMN_CAPTION)));
- photo.height = cursor.getInt(cursor.getColumnIndex(Photo.COLUMN_HEIGHT));
- photo.width = cursor.getInt(cursor.getColumnIndex(Photo.COLUMN_WIDTH));
- photo.filepath = StringEscapeUtils.unescapeXml(cursor.getString(cursor.getColumnIndex(Photo.COLUMN_FILEPATH)));
- photo.articletribid = StringEscapeUtils.unescapeXml(cursor.getString(cursor.getColumnIndex(Photo.COLUMN_ARTICLETRIBID)));
- photo.modified = StringEscapeUtils.unescapeXml(cursor.getString(cursor.getColumnIndex(Photo.COLUMN_MODIFIED)));
- return photo;
- }
- public boolean exists(String filepath)
- {
- this.open();
- long theCount = 0;
- Boolean itExists = false;
- String countQuery = "SELECT count(" + Photo.COLUMN_ID + ") FROM " + Photo.TABLE + " WHERE " + Photo.COLUMN_FILEPATH + " = '" + filepath + "' LIMIT 1";
- try {
- theCount = DatabaseUtils.longForQuery(database, countQuery, null);
- if(theCount > 0) { itExists = true; }
- }
- catch (Exception e)
- {
- System.out.println(e);
- }
- finally
- {
- this.close();
- }
- return itExists;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement