Thursday, 11 June 2015

Alarms table class

package com.siliconicpro.admin.ialarm;


import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;

public class AlarmsTable {

    /*................................Table and Column Names...............................*/

    public static final String ALARMS_TABLE = "alarmsTable"; // Table Name
    public static final String _id = "_id";
    public static final String TIME = "time";
    public static final String DATE = "date";
    public static final String INTERVAL = "interval";
    public static final String REPEAT = "repeat";
    public static final String TITLE = "title";
    public static final String ALERT_1 = "alert1";
    public static final String ALERT_2 = "alert2";
    public static final String LOCATION = "location";
    public static final String URL = "url";
    public static final String DESCRIPTION = "description";
    public static final String STATUS = "status";
    public static final String ACT_ARC = "act_arc"; // 1 Active, 0 Archive
    public static final String SYS_TIME = "sys_time";
    public static final String SNOOZE = "snooze";
    public static final String[] columns = {"rowid _id", TIME, DATE, INTERVAL, REPEAT, TITLE, ALERT_1,
                                            ALERT_2, LOCATION, URL, DESCRIPTION, STATUS, ACT_ARC,
                                            SYS_TIME, SNOOZE};

    /*....................................Queries of TABLE................................*/
   
    // create table
    public static final String CREATE_ALARMS_TABLE =
    "CREATE TABLE "+ALARMS_TABLE+" ("+_id+" INTEGER PRIMARY KEY AUTOINCREMENT, "+TIME+" VARCHAR(255), "+DATE+" VARCHAR(255), " +
            ""+ INTERVAL +" INTEGER, "+REPEAT+" INTEGER, "+TITLE+" VARCHAR(255), "+ALERT_1+" VARCHAR(255), "+ALERT_2+" VARCHAR(255), " +
            ""+LOCATION+" VARCHAR(255), "+URL+" VARCHAR(255), "+DESCRIPTION+" VARCHAR(255), "+STATUS+" INTEGER, "+ACT_ARC+" INTEGER, " +
            ""+SYS_TIME+" INTEGER, " +SNOOZE+" VARCHAR(50));";

    // delete table
    public static final String DROP_ALARMS_TABLE = "DROP TABLE IF EXISTS "+ALARMS_TABLE+";";

    /*....................................TABLE Methods...................................*/

    public static long insertAlarm(String time, String date, int interval, int repeat, String title, String alert1, String alert2,
                                   String snooze, String location, String url, String description, DatabaseOperations dop){
        SQLiteDatabase db = dop.getWritableDatabase();
        ContentValues contentValues = new ContentValues();
        contentValues.put(TIME, time);
        contentValues.put(DATE, date);
        contentValues.put(INTERVAL, interval);
        contentValues.put(REPEAT, repeat);
        contentValues.put(TITLE, title);
        contentValues.put(ALERT_1, alert1);
        contentValues.put(ALERT_2, alert2);
        contentValues.put(LOCATION, location);
        contentValues.put(SNOOZE, snooze);
        contentValues.put(URL, url);
        contentValues.put(DESCRIPTION, description);
        contentValues.put(STATUS, 1); // On (Default)
        contentValues.put(ACT_ARC, 1); // Active (Default)
        contentValues.put(SYS_TIME, System.currentTimeMillis());
        long id = db.insert(ALARMS_TABLE, DESCRIPTION, contentValues);
        db.close();
        return id;
    }

    public static Cursor getAlarm(DatabaseOperations dop, String id) {
        SQLiteDatabase db = dop.getReadableDatabase();
        String[] args ={id};
        Cursor cursor = db.query(ALARMS_TABLE, columns, _id + " =? ", args, null, null, null);
        cursor.moveToFirst();
        db.close();
        return cursor;
    }

    public static void updateAlarm(String id, String time, String date, int interval, int repeat, String title, String alert1,
                                   String alert2, String snooze, String location, String url, String description,
                                   DatabaseOperations dop){
        SQLiteDatabase db = dop.getWritableDatabase();
        ContentValues contentValues = new ContentValues();
        contentValues.put(TIME, time);
        contentValues.put(DATE, date);
        contentValues.put(INTERVAL, interval);
        contentValues.put(REPEAT, repeat);
        contentValues.put(TITLE, title);
        contentValues.put(ALERT_1, alert1);
        contentValues.put(ALERT_2, alert2);
        contentValues.put(SNOOZE, snooze);
        contentValues.put(LOCATION, location);
        contentValues.put(URL, url);
        contentValues.put(DESCRIPTION, description);
        contentValues.put(SYS_TIME, System.currentTimeMillis());
        String[] args = {id};
        db.update(ALARMS_TABLE, contentValues, _id + " =? ", args);
        db.close();
    }

    // Delete Alarm
    public static void deleteAlarm(Long id, DatabaseOperations dop){
        SQLiteDatabase db = dop.getWritableDatabase();
        String[] args = {Long.toString(id)};
        db.delete(ALARMS_TABLE, _id + " =? ", args);
        db.close();
    }

    // Get Alarm Status
    public static int getAlarmStatus(int id, DatabaseOperations dop) {
        SQLiteDatabase db = dop.getReadableDatabase();
        String[] columns = {STATUS};
        String[] args ={Integer.toString(id)};
        Cursor cursor = db.query(ALARMS_TABLE, columns, _id + " =? ", args, null, null, null);
        cursor.moveToFirst();
        db.close();
        return cursor.getInt(cursor.getColumnIndex(STATUS));
    }

    // Update Alarm Status
    public static void updateAlarmStatus(int id, int status, DatabaseOperations dop){
        SQLiteDatabase db = dop.getWritableDatabase();
        ContentValues contentValues = new ContentValues();
        contentValues.put(STATUS, status);
        String[] args = {Integer.toString(id)};
        db.update(ALARMS_TABLE, contentValues, _id + " =? ", args);
        db.close();
    }

    // Update Alarm System Time
    public static void updateSysTime(int id, DatabaseOperations dop){
        SQLiteDatabase db = dop.getWritableDatabase();
        ContentValues contentValues = new ContentValues();
        contentValues.put(SYS_TIME, System.currentTimeMillis());
        String[] args = {Integer.toString(id)};
        db.update(ALARMS_TABLE, contentValues, _id + " =? ", args);
        db.close();
    }

    // Get All Active/Archive Alarms
    public static Cursor getActArcData(DatabaseOperations dop, int act_arc) {
        SQLiteDatabase db = dop.getReadableDatabase();
        String[] args ={Integer.toString(act_arc)};
        Cursor cursor = db.query(ALARMS_TABLE, columns, ACT_ARC + " =? ", args, null, null, SYS_TIME+" DESC");
        cursor.moveToFirst();
        db.close();
        return cursor;
    }

    // Update Active Status
    public static void updateActArcStatus(int id, int act_arc, DatabaseOperations dop){
        SQLiteDatabase db = dop.getWritableDatabase();
        ContentValues contentValues = new ContentValues();
        contentValues.put(ACT_ARC, act_arc);
        String[] args = {Integer.toString(id)};
        db.update(ALARMS_TABLE, contentValues, _id + " =? ", args);
        db.close();
    }

    // Set Snooze Time for All ON Alarms
    public static void setSnoozeTimeForAll(String snooze, DatabaseOperations dop){
        SQLiteDatabase db = dop.getWritableDatabase();
        ContentValues contentValues = new ContentValues();
        contentValues.put(SNOOZE, snooze);
        String[] args = {Integer.toString(1)};
        db.update(ALARMS_TABLE, contentValues, STATUS + " =? ", args);
        db.close();
    }

    // Get Default snooze time
    public static String getDefaultSnooze(DatabaseOperations dop) {
        SQLiteDatabase db = dop.getReadableDatabase();
        String[] columns = {SNOOZE};
        Cursor cursor = db.query(ALARMS_TABLE, columns, null, null, null, null, SYS_TIME+" DESC");
        if(cursor.getCount() > 0) {
            cursor.moveToFirst();
            return cursor.getString(cursor.getColumnIndex(SNOOZE));
        }
        db.close();
        return "";
    }

    // Updating Date and Time for Repeat Alarm at Snooze Time
    public static void updateRepeatTime(String id, String newTime, String newDate, DatabaseOperations dop) {
        SQLiteDatabase db = dop.getWritableDatabase();
        ContentValues contentValues = new ContentValues();
        contentValues.put(TIME, newTime);
        contentValues.put(DATE, newDate);
        String[] args = {id};
        db.update(ALARMS_TABLE, contentValues, _id + " =? ", args);
        db.close();
    }

    // Get no. of On Alarms
    public static int onAlarms(DatabaseOperations dop){
        SQLiteDatabase db = dop.getReadableDatabase();
        String columns[] = {STATUS};
        String[] args = {Integer.toString(1)};
        Cursor cursor = db.query(ALARMS_TABLE, columns, STATUS + " =? ", args, null, null, null);
        int on_alarms = cursor.getCount();
        db.close();
        return on_alarms;
    }

    // Get all On Alarms Data
    public static Cursor getAllOnAlarms(Context ctx) {
        DatabaseOperations dop = new DatabaseOperations(ctx);
        SQLiteDatabase db = dop.getReadableDatabase();
        String[] args = {Integer.toString(1)};
        return db.query(ALARMS_TABLE, columns, STATUS + " =? ", args, null, null, null);
    }
}

No comments:

Post a Comment