public RecordInfo getRecordsInfo(String difficulty, Context context) { dbHelper = new DBHelper(context); SQLiteDatabase db = dbHelper.WritableDatabase; SQLiteCursor gc = (SQLiteCursor)db.Query("general", null, "difficulty = ?", new String[] { difficulty }, null, null, null); int avgTimeColIndex = gc.GetColumnIndex("avgTime"); int gamesCountColIndex = gc.GetColumnIndex("gamesCount"); int avgTime = 0; int gamesCount = 0; if (gc.MoveToFirst()) { avgTime = gc.GetInt(avgTimeColIndex); gamesCount = gc.GetInt(gamesCountColIndex); } RecordInfo result = new RecordInfo(avgTime, gamesCount, new Java.Lang.String(difficulty)); SQLiteCursor c = (SQLiteCursor)db.Query("records", null, " difficulty = ?", new String[] { difficulty }, null, null, null); if (c.MoveToFirst()) { int timeColIndex = c.GetColumnIndex("time"); result.addRecord(c.GetInt(timeColIndex)); while (c.MoveToNext()) { result.addRecord(c.GetInt(timeColIndex)); } } return(result); }
public void putRecord(long time, String difficulty, Context context) { dbHelper = new DBHelper(context); ContentValues cv = new ContentValues(); SQLiteDatabase db = dbHelper.WritableDatabase; SQLiteCursor c = (SQLiteCursor)db.Query("records", null, " difficulty = ?", new String[] { difficulty }, null, null, null); int count = 1; if (c.MoveToFirst()) { int idColIndex = c.GetColumnIndex("id"); int timeColIndex = c.GetColumnIndex("time"); int maxDBindex = c.GetInt(idColIndex); int maxDBtime = c.GetInt(timeColIndex); count++; while (c.MoveToNext()) { if (c.GetInt(timeColIndex) > maxDBtime) { maxDBtime = c.GetInt(timeColIndex); maxDBindex = c.GetInt(idColIndex); } count++; } if (count == 6) { if (time < maxDBtime) { db.Delete("records", " id = ?", new String[] { maxDBindex + "" }); } else { c.Close(); db.Close(); return; } } } cv.Put("time", time); cv.Put("difficulty", difficulty); db.Insert("records", null, cv); cv.Clear(); SQLiteCursor gc = (SQLiteCursor)db.Query("general", null, "difficulty = ?", new String[] { difficulty }, null, null, null); gc.MoveToFirst(); int avgTimeColIndex = gc.GetColumnIndex("avgTime"); int gamesCountColIndex = gc.GetColumnIndex("gamesCount"); int avgTime = 0; int gamesCount = 0; if (gc.MoveToFirst()) { avgTime = gc.GetInt(avgTimeColIndex); gamesCount = gc.GetInt(gamesCountColIndex); } int newGamesCount = gamesCount + 1; int newAvgTime = (avgTime * gamesCount / newGamesCount) + (int)(time / newGamesCount); cv.Put("difficulty", difficulty); cv.Put("avgTime", newAvgTime); cv.Put("gamesCount", newGamesCount); db.Delete("general", " difficulty = ?", new String[] { difficulty }); db.Insert("general", null, cv); db.Close(); c.Close(); gc.Close(); }