package com.easyfitness.DAO.program; import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import com.easyfitness.DAO.DAOBase; import java.util.ArrayList; import java.util.List; public class DAOProgram extends DAOBase { // Contacts table name public static final String TABLE_NAME = "EFworkout"; public static final String KEY = "_id"; public static final String NAME = "name"; public static final String DESCRIPTION = "description"; public static final String TABLE_CREATE = "CREATE TABLE " + TABLE_NAME + " (" + KEY + " INTEGER PRIMARY KEY AUTOINCREMENT, " + NAME + " TEXT, " + DESCRIPTION + " TEXT);"; public static final String TABLE_DROP = "DROP TABLE IF EXISTS " + TABLE_NAME + ";"; private Cursor mCursor = null; //DAOFonte mDAOFonte = null; public DAOProgram(Context context) { super(context); } /** * @param m DBOProfil Profile a ajouter a la base */ public long add(Program m) { SQLiteDatabase db = this.getWritableDatabase(); ContentValues value = new ContentValues(); value.put(DAOProgram.NAME, m.getName()); value.put(DAOProgram.DESCRIPTION, m.getDescription()); long new_id = db.insert(DAOProgram.TABLE_NAME, null, value); close(); return new_id; } /** * @param id long id of the Profile */ public Program get(long id) { SQLiteDatabase db = this.getReadableDatabase(); if (mCursor != null) mCursor.close(); mCursor = null; mCursor = db.query(TABLE_NAME, new String[]{KEY, NAME, DESCRIPTION}, KEY + "=?", new String[]{String.valueOf(id)}, null, null, null, null); if (mCursor != null && mCursor.getCount() > 0) { mCursor.moveToFirst(); Program value = new Program(mCursor.getLong(mCursor.getColumnIndex(DAOProgram.KEY)), mCursor.getString(mCursor.getColumnIndex(DAOProgram.NAME)), mCursor.getString(mCursor.getColumnIndex(DAOProgram.DESCRIPTION)) ); mCursor.close(); close(); // return value return value; } else { mCursor.close(); close(); return null; } } // Getting All Profils public List<Program> getList(String pRequest) { List<Program> valueList = new ArrayList<>(); // Select All Query SQLiteDatabase db = this.getReadableDatabase(); mCursor = null; mCursor = db.rawQuery(pRequest, null); // looping through all rows and adding to list if (mCursor.moveToFirst()) { do { Program value = new Program(mCursor.getLong(mCursor.getColumnIndex(DAOProgram.KEY)), mCursor.getString(mCursor.getColumnIndex(DAOProgram.NAME)), mCursor.getString(mCursor.getColumnIndex(DAOProgram.DESCRIPTION)) ); // Adding value to list valueList.add(value); } while (mCursor.moveToNext()); } close(); // return value list return valueList; } // Getting All public List<Program> getAll() { // Select All Query String selectQuery = "SELECT * FROM " + TABLE_NAME + " ORDER BY " + NAME + " ASC"; // return value list return getList(selectQuery); } // Updating single value public int update(Program m) { SQLiteDatabase db = this.getWritableDatabase(); ContentValues value = new ContentValues(); value.put(DAOProgram.NAME, m.getName()); value.put(DAOProgram.DESCRIPTION, m.getDescription()); // updating row return db.update(TABLE_NAME, value, KEY + " = ?", new String[]{String.valueOf(m.getId())}); } // Deleting single Profile public void delete(Program m) { delete(m.getId()); } // Deleting single Profile public void delete(long id) { open(); // Should delete the Workout template // Delete the Workout SQLiteDatabase db = this.getWritableDatabase(); db.delete(TABLE_NAME, KEY + " = ?", new String[]{String.valueOf(id)}); close(); } // Getting Profils Count public int getCount() { String countQuery = "SELECT * FROM " + TABLE_NAME; open(); SQLiteDatabase db = this.getReadableDatabase(); Cursor cursor = db.rawQuery(countQuery, null); int value = cursor.getCount(); cursor.close(); close(); // return count return value; } /* DEBUG ONLY */ public void populate() { Program m = new Program(0,"Template 1", "Description 1"); this.add(m); m = new Program(0,"Template 2", "Description 2"); this.add(m); } /** * @return List of Machine object ordered by Favorite and Name */ public void deleteAllEmptyWorkout() { SQLiteDatabase db = this.getWritableDatabase(); db.delete(TABLE_NAME, NAME + "=?", new String[]{""}); db.close(); } }