Thursday, 11 June 2015

Settings table class

package com.siliconicpro.admin.ialarm;

import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.media.Ringtone;
import android.media.RingtoneManager;
import android.net.Uri;

import com.siliconicpro.admin.ialarm.R;

public class SettingsTable{

    /*...............................Table and Columns Names..............................*/

    public static final String SETTINGS_TABLE = "settingsTable"; // Table name
    public static final String RINGTONE = "ringTone";
    private static String[] columns = {RINGTONE};

    /*..................................Queries of Table................................*/

    // create table
    public static final String CREATE_SETTINGS_TABLE =
                     "CREATE TABLE " + SETTINGS_TABLE + " ("+ RINGTONE + " VARCHAR(255));";
    // delete table
    public static final String DROP_SETTINGS_TABLE = "DROP TABLE IF EXISTS "+SETTINGS_TABLE+";";

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

    public static void insertDefaultRow(SQLiteDatabase db){
        // Creating default row for SETTINGS TABLE
        ContentValues contentValues = new ContentValues();
        contentValues.put(RINGTONE, getDefaultUri());
        db.insert(SETTINGS_TABLE, null, contentValues);
    }

    // Runs only when app is opened 1st time
    private static String getDefaultUri() {
        Uri uri = RingtoneManager.getActualDefaultRingtoneUri(Home.getContext(), RingtoneManager.TYPE_RINGTONE);
        return String.valueOf(uri);
    }

    public static Uri getUri(DatabaseOperations dop){
        SQLiteDatabase db = dop.getReadableDatabase();
        Cursor cursor = db.query(SETTINGS_TABLE, columns, null, null, null, null, null);
        cursor.moveToFirst();
        String uri = cursor.getString(cursor.getColumnIndex(RINGTONE));
        db.close();
        return Uri.parse(uri);
    }

    public static Cursor getSettingsData(DatabaseOperations dop){
        SQLiteDatabase db = dop.getReadableDatabase();
        Cursor cursor = db.query(SETTINGS_TABLE, columns, null, null, null, null, null);
        cursor.moveToFirst();
        db.close();
        return cursor;
    }

    public static void updateRingTone(String ringtone, DatabaseOperations dop) {
        SQLiteDatabase db = dop.getWritableDatabase();
        ContentValues contentValues = new ContentValues();
        contentValues.put(RINGTONE, ringtone);
        db.update(SETTINGS_TABLE, contentValues, null, null);
        db.close();
    }

}

No comments:

Post a Comment