/*
* HighScoreAdapater
* runnersHigh 1.0
*
* _DESCRIPTION:
* Table operations for 'rh_highscore'
* Saves and returns highscores from database
*
* Child class of DbAdapter
*
* TODO: Delete entries, if there are more than SHOW_LIMIT
*/
package com.alarmclocksnoozers.highscore;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
public class HighscoreAdapter extends DbAdapter {
private static final String DATABASE_TABLE = "rh_highscore";
public static final String KEY_ROWID = "_id";
public static final String KEY_NAME = "name";
public static final String KEY_SCORE = "score";
public static final String KEY_ISONLINE = "isonline";
public HighscoreAdapter(Context ctx) {
super(ctx);
this.mCtx = ctx;
}
// -------------------------------------------------------
// Create
public long createHighscore(String score, String name, int isonline) {
ContentValues initialValues = new ContentValues();
initialValues.put(KEY_NAME, name);
initialValues.put(KEY_SCORE, score);
initialValues.put(KEY_ISONLINE, isonline);
return mDb.insert(DATABASE_TABLE, null, initialValues);
}
// -------------------------------------------------------
// Update
public boolean updateScore(long rowId, int isOnline) {
ContentValues args = new ContentValues();
args.put(KEY_ROWID, rowId);
args.put(KEY_ISONLINE, isOnline);
return mDb.update(DATABASE_TABLE, args, KEY_ROWID + "=" + rowId, null) > 0;
}
// -------------------------------------------------------
// Delete
public boolean delete(long rowId) {
return mDb.delete(DATABASE_TABLE, KEY_ROWID + "=" + rowId, null) > 0;
}
// -------------------------------------------------------
// Clear table
public boolean clear() {
return mDb.delete(DATABASE_TABLE, null, null) > 0;
}
// -------------------------------------------------------
// Show List
public Cursor fetchScores(String limit) throws SQLException {
Cursor mCursor;
if (limit == "0")
{
mCursor = mDb.query(DATABASE_TABLE, new String[] { KEY_ROWID,
KEY_NAME, KEY_SCORE, KEY_ISONLINE }, null, null, null, null,
KEY_SCORE + " DESC", null);
}
else
{
mCursor = mDb.query(DATABASE_TABLE, new String[] { KEY_ROWID,
KEY_NAME, KEY_SCORE, KEY_ISONLINE }, null, null, null, null,
KEY_SCORE + " DESC", limit);
}
if (mCursor != null) {
mCursor.moveToFirst();
}
return mCursor;
}
// -------------------------------------------------------
// Show Single
public Cursor fetchSingleScore(long id) throws SQLException {
Cursor mCursor = mDb.query(true, DATABASE_TABLE, new String[] {
KEY_ROWID, KEY_NAME, KEY_SCORE, KEY_ISONLINE }, KEY_ROWID + "="
+ id, null, null, null, null, null);
if (mCursor != null) {
mCursor.moveToFirst();
}
return mCursor;
}
public Cursor getHighscore(long place)
{
Cursor mCursor = mDb.query(DATABASE_TABLE, new String[] { KEY_ROWID,
KEY_NAME, KEY_SCORE, KEY_ISONLINE }, null, null, null, null,
KEY_SCORE + " DESC", ""+place);
if (mCursor != null) {
mCursor.moveToLast();
}
return mCursor;
}
// -------------------------------------------------------
// Get Last Entry
public Cursor fetchLastEntry() throws SQLException {
Cursor mCursor = mDb.query(DATABASE_TABLE, new String[] { KEY_ROWID,
KEY_NAME, KEY_SCORE, KEY_ISONLINE }, "isonline = 0", null,
null, null, KEY_ROWID + " DESC", "1");
if (mCursor != null) {
mCursor.moveToFirst();
}
return mCursor;
}
}