]> matita.cs.unibo.it Git - logicplayer.git/blobdiff - mainActivity/app/src/main/java/com/example/furt/myapplication/personalDBHelper.java
Ported to latest version of Android SDK
[logicplayer.git] / mainActivity / app / src / main / java / com / example / furt / myapplication / personalDBHelper.java
diff --git a/mainActivity/app/src/main/java/com/example/furt/myapplication/personalDBHelper.java b/mainActivity/app/src/main/java/com/example/furt/myapplication/personalDBHelper.java
new file mode 100644 (file)
index 0000000..2af2653
--- /dev/null
@@ -0,0 +1,189 @@
+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);
+    }
+
+}