package net.screenfreeze.deskcon; 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; public class DesktopHostsDBHelper extends SQLiteOpenHelper { // Database Version private static final int DATABASE_VERSION = 2; // Database Name private static final String DATABASE_NAME = "hosts.db"; private static final String TABLE = "desktophosts"; // Table Columns names private static final String COLUMN_ID = "_id"; private static final String COLUMN_NAME = "name"; private static final String COLUMN_IP = "ip"; private static final String COLUMN_PORT = "port"; private static final String COLUMN_UUID = "uuid"; private static final String COLUMN_WIFI = "wifi"; private static final String COLUMN_FINGERPRINT = "fingerprint"; public DesktopHostsDBHelper(Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION); } @Override public void onCreate(SQLiteDatabase db) { // SQL statement to create book table String CREATE_BOOK_TABLE = "CREATE TABLE desktophosts ( " + COLUMN_ID+" INTEGER PRIMARY KEY AUTOINCREMENT, " + COLUMN_NAME+" TEXT, "+ COLUMN_IP+" TEXT NOT NULL, "+ COLUMN_PORT+" INTEGER NOT NULL, "+ COLUMN_UUID+" INTEGER NOT NULL, "+ COLUMN_FINGERPRINT+" VARCHAR, "+ COLUMN_WIFI+" TEXT )"; // create books table db.execSQL(CREATE_BOOK_TABLE); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newversion) { // Drop older table if existed db.execSQL("DROP TABLE IF EXISTS desktophosts"); // create fresh table this.onCreate(db); } public void addHost(long uuid, String name, String ip, int port, String wifi, String mac, String fingerprint) { SQLiteDatabase db = this.getWritableDatabase(); ContentValues values = new ContentValues(); //values.put(COLUMN_ID, id); values.put(COLUMN_NAME, name); values.put(COLUMN_UUID, uuid); values.put(COLUMN_IP, ip); values.put(COLUMN_PORT, port); values.put(COLUMN_WIFI, wifi); values.put(COLUMN_FINGERPRINT, fingerprint); db.insert("desktophosts", null, values); Log.d("DB add: ", "added host"); } public void removeHost(long id) { SQLiteDatabase db = this.getWritableDatabase(); String sql = "DELETE FROM " + TABLE + " WHERE " +COLUMN_ID+ "=" +id; Log.d("DB Delete: ", "delete by id"); db.execSQL(sql); } public void updateHost(long id, String ip, int port, String wifi) { SQLiteDatabase db = this.getWritableDatabase(); ContentValues values = new ContentValues(); values.put(COLUMN_IP, ip); values.put(COLUMN_PORT, port); values.put(COLUMN_WIFI, wifi); db.update("desktophosts", values, COLUMN_ID+ "="+id, null); Log.d("DB Update: ", "update by id"); } public void clearDB() { SQLiteDatabase db = this.getWritableDatabase(); String sql = "DELETE FROM " + TABLE; Log.d("DB Clear: ", "delete all entrys"); db.execSQL(sql); } public Cursor getAllCursor() { SQLiteDatabase db = this.getReadableDatabase(); String sql = "SELECT * FROM " + TABLE; Cursor cursor = db.rawQuery(sql, null); cursor.moveToFirst(); return cursor; } public Cursor getHostByIdCursor(long id) { SQLiteDatabase db = this.getReadableDatabase(); String sql = "SELECT * FROM " + TABLE + " WHERE " + COLUMN_ID + "="+id; Cursor cursor = db.rawQuery(sql, null); cursor.moveToFirst(); return cursor; } public Cursor getHostsOnWifiCursor(String ssid) { SQLiteDatabase db = this.getReadableDatabase(); String sql = "SELECT * FROM " + TABLE + " WHERE " + COLUMN_WIFI + "='"+ssid+"'" + " OR " + COLUMN_WIFI + "=''"; Cursor cursor = db.rawQuery(sql, null); cursor.moveToFirst(); return cursor; } }