--- /dev/null
+package com.example.furt.myapplication;
+
+import android.content.ContentValues;
+import android.content.Context;
+import android.database.Cursor;
+import android.database.sqlite.SQLiteDatabase;
+import android.database.sqlite.SQLiteOpenHelper;
+import android.util.Log;
+
+import java.sql.Timestamp;
+import java.util.ArrayList;
+import java.util.List;
+
+import static com.example.furt.myapplication.personalTrackerContract.DATABASE_NAME;
+import static com.example.furt.myapplication.personalTrackerContract.DATABASE_VERSION;
+import static com.example.furt.myapplication.personalTrackerContract.esercizi;
+import static com.example.furt.myapplication.personalTrackerContract.esercizi.COLUMN_CHECK;
+import static com.example.furt.myapplication.personalTrackerContract.esercizi.COLUMN_CLICK;
+import static com.example.furt.myapplication.personalTrackerContract.esercizi.COLUMN_ESERCIZIO;
+import static com.example.furt.myapplication.personalTrackerContract.esercizi.COLUMN_MD5;
+import static com.example.furt.myapplication.personalTrackerContract.esercizi.COLUMN_TIME;
+import static com.example.furt.myapplication.personalTrackerContract.esercizi.COLUMN_UTENTE;
+import static com.example.furt.myapplication.personalTrackerContract.esercizi.SQL_CREATE_ENTRIES;
+import static com.example.furt.myapplication.personalTrackerContract.esercizi.TABLE_NAME;
+
+
+
+public class personalDBHelper extends SQLiteOpenHelper{
+ public personalDBHelper(Context context) {
+ super(context, DATABASE_NAME, null, DATABASE_VERSION);
+ }
+
+ public void onCreate(SQLiteDatabase db) {
+
+ db.execSQL(SQL_CREATE_ENTRIES);
+ Log.e("dphelper", SQL_CREATE_ENTRIES);
+ }
+
+ public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
+ // This database is only a cache for online data, so its upgrade policy is
+ // to simply to discard the data and start over
+ db.execSQL(SQL_CREATE_ENTRIES);
+ onCreate(db);
+ }
+
+ public void onDowngrade(SQLiteDatabase db, int oldVersion, int newVersion) {
+ onUpgrade(db, oldVersion, newVersion);
+ }
+
+ public void add(String utente, String esercizio, String md5, Double time, int ckick, int check)
+ {
+ SQLiteDatabase db=this.getWritableDatabase();
+ ContentValues values=new ContentValues();
+ values.put(COLUMN_MD5,md5);
+ if(time==0)
+ values.put(COLUMN_TIME,(double)time());
+ else
+ values.put(COLUMN_TIME,(time));
+ values.put(COLUMN_CHECK,check);
+ values.put(COLUMN_UTENTE,utente);
+ values.put(COLUMN_ESERCIZIO,esercizio);
+ values.put(COLUMN_CLICK, ckick);
+ db.insert(TABLE_NAME, null, values);
+ db.close();
+ }
+
+ public void remove(String user, double time)
+ {
+ SQLiteDatabase db = this.getWritableDatabase();
+ String request=COLUMN_MD5 + "=? AND " + COLUMN_TIME + "=? AND " + COLUMN_UTENTE + "=?";
+ String[] condition=new String[]{
+ String.valueOf(time),
+ String.valueOf(user)
+ };
+ db.delete(TABLE_NAME,request,condition);
+ db.close();
+ }
+
+ public static Long time()
+ {
+ java.util.Date date= new java.util.Date();
+ Timestamp now=new Timestamp(date.getTime());
+ return now.getTime();
+ }
+
+ public void removeAll(){
+ SQLiteDatabase db=this.getWritableDatabase();
+ String request="TRUNCATE "+TABLE_NAME;
+ }
+
+ public List<listElem> getElem(String user)
+ {
+ List<listElem> elem=null;
+ SQLiteDatabase db=this.getReadableDatabase();
+ String[] tableColums={
+ esercizi.COLUMN_MD5,
+ esercizi.COLUMN_TIME,
+ esercizi.COLUMN_CLICK,
+ esercizi.COLUMN_ESERCIZIO
+ };
+ String whereClause= COLUMN_UTENTE +"=? AND " + COLUMN_CHECK +"=?";
+ String[] whereArgs=new String[]{
+ String.valueOf(user),
+ String.valueOf("0")
+ };
+ Cursor cursor=db.query(TABLE_NAME,tableColums,whereClause,whereArgs,null,null,null);
+ if(cursor.moveToFirst()) {
+ elem = new ArrayList<listElem>();
+ listElem el=new listElem();
+ do {
+ el.setMd5 (cursor.getString(0));
+ el.setTime(cursor.getDouble(1));
+ el.setClick(cursor.getInt(2));
+ el.setEsercizio(cursor.getString(3));
+ elem.add(el);
+ }while(cursor.moveToNext());
+ }
+ return elem;
+ }
+
+ public List<listElem> getElemForName(String user, String esName)
+ {
+ List<listElem> elem=null;
+ SQLiteDatabase db=this.getReadableDatabase();
+ String[] tableColums={
+ esercizi.COLUMN_MD5,
+ esercizi.COLUMN_TIME,
+ esercizi.COLUMN_CLICK,
+ esercizi.COLUMN_CHECK
+ };
+ String whereClause= COLUMN_UTENTE +"=? AND " + COLUMN_ESERCIZIO +"=? ORDER BY "+COLUMN_CLICK;
+ String[] whereArgs=new String[]{
+ String.valueOf(user),
+ String.valueOf(esName)
+ };
+ Cursor cursor=db.query(TABLE_NAME,tableColums,whereClause,whereArgs,null,null,null);
+ if(cursor.moveToFirst()) {
+ elem = new ArrayList<listElem>();
+ listElem el=new listElem();
+ do {
+ el.setMd5 (cursor.getString(0));
+ el.setTime(cursor.getDouble(1));
+ el.setClick(cursor.getInt(2));
+ el.setCheck(cursor.getInt(3));
+ elem.add(el);
+ }while(cursor.moveToNext());
+ }
+ return elem;
+ }
+
+ public List<listElem> getAllElem(String user)
+ {
+ List<listElem> elem=null;
+ SQLiteDatabase db=this.getReadableDatabase();
+ String[] tableColums={
+ esercizi.COLUMN_MD5,
+ esercizi.COLUMN_TIME,
+ esercizi.COLUMN_CLICK,
+ esercizi.COLUMN_ESERCIZIO,
+ esercizi.COLUMN_CHECK
+ };
+ String whereClause= COLUMN_UTENTE +"=?";
+ String[] whereArgs=new String[]{
+ String.valueOf(user)
+ };
+ Cursor cursor=db.query(TABLE_NAME,tableColums,whereClause,whereArgs,null,null,null);
+ if(cursor.moveToFirst()) {
+ elem = new ArrayList<listElem>();
+ listElem el=new listElem();
+ do {
+ el.setMd5 (cursor.getString(0));
+ el.setTime(cursor.getDouble(1));
+ el.setClick(cursor.getInt(2));
+ el.setEsercizio(cursor.getString(3));
+ el.setCheck(cursor.getInt(4));
+ elem.add(el);
+ }while(cursor.moveToNext());
+ }
+ return elem;
+ }
+
+ public void updateElem(String md5, String user, double time)
+ {
+ SQLiteDatabase db=this.getWritableDatabase();
+ String request="UPDATE "+TABLE_NAME+" set "+COLUMN_CHECK+"=1 WHERE "+COLUMN_UTENTE+"='"+user+"' AND "+COLUMN_MD5+"='"+md5+"' AND "+COLUMN_TIME+"="+time;
+ db.execSQL(request);
+ }
+
+}