diff options
Diffstat (limited to 'src/com/android/deskclock/provider/ClockDatabaseHelper.java')
-rw-r--r-- | src/com/android/deskclock/provider/ClockDatabaseHelper.java | 68 |
1 files changed, 61 insertions, 7 deletions
diff --git a/src/com/android/deskclock/provider/ClockDatabaseHelper.java b/src/com/android/deskclock/provider/ClockDatabaseHelper.java index b6fc90017..0d75f92e6 100644 --- a/src/com/android/deskclock/provider/ClockDatabaseHelper.java +++ b/src/com/android/deskclock/provider/ClockDatabaseHelper.java @@ -16,6 +16,7 @@ package com.android.deskclock.provider; +import android.content.ContentResolver; import android.content.ContentValues; import android.content.Context; import android.database.Cursor; @@ -27,8 +28,10 @@ import android.text.TextUtils; import com.android.deskclock.LogUtils; import com.android.deskclock.data.Weekdays; +import lineageos.app.ProfileManager; import java.util.Calendar; +import java.util.UUID; /** * Helper class for opening the database from multiple providers. Also provides @@ -57,11 +60,23 @@ class ClockDatabaseHelper extends SQLiteOpenHelper { */ private static final int VERSION_8 = 8; + /** + * Added increasing alarm volume mode + */ + private static final int VERSION_9 = 10; + + /** + * Added change profile + */ + private static final int VERSION_10 = 11; + // This creates a default alarm at 8:30 for every Mon,Tue,Wed,Thu,Fri - private static final String DEFAULT_ALARM_1 = "(8, 30, 31, 0, 1, '', NULL, 0);"; + private static final String DEFAULT_ALARM_1 = "(8, 30, 31, 0, 1, '', NULL, 0, 0, " + + ProfileManager.NO_PROFILE.toString() + ");"; // This creates a default alarm at 9:30 for every Sat,Sun - private static final String DEFAULT_ALARM_2 = "(9, 00, 96, 0, 1, '', NULL, 0);"; + private static final String DEFAULT_ALARM_2 = "(9, 00, 96, 0, 1, '', NULL, 0, 0, " + + ProfileManager.NO_PROFILE.toString() + ");"; // Database and table names static final String DATABASE_NAME = "alarms.db"; @@ -80,7 +95,10 @@ class ClockDatabaseHelper extends SQLiteOpenHelper { ClockContract.AlarmsColumns.VIBRATE + " INTEGER NOT NULL, " + ClockContract.AlarmsColumns.LABEL + " TEXT NOT NULL, " + ClockContract.AlarmsColumns.RINGTONE + " TEXT, " + - ClockContract.AlarmsColumns.DELETE_AFTER_USE + " INTEGER NOT NULL DEFAULT 0);"); + ClockContract.AlarmsColumns.DELETE_AFTER_USE + " INTEGER NOT NULL DEFAULT 0, " + + ClockContract.AlarmsColumns.INCREASING_VOLUME + " INTEGER NOT NULL DEFAULT 0, " + + ClockContract.AlarmsColumns.PROFILE + " TEXT NOT NULL DEFAULT '" + + ProfileManager.NO_PROFILE.toString() + "');"); LogUtils.i("Alarms Table created"); } @@ -98,13 +116,15 @@ class ClockDatabaseHelper extends SQLiteOpenHelper { ClockContract.InstancesColumns.ALARM_STATE + " INTEGER NOT NULL, " + ClockContract.InstancesColumns.ALARM_ID + " INTEGER REFERENCES " + ALARMS_TABLE_NAME + "(" + ClockContract.AlarmsColumns._ID + ") " + - "ON UPDATE CASCADE ON DELETE CASCADE" + - ");"); + "ON UPDATE CASCADE ON DELETE CASCADE, " + + ClockContract.InstancesColumns.INCREASING_VOLUME + " INTEGER NOT NULL DEFAULT 0, " + + ClockContract.InstancesColumns.PROFILE + " TEXT NOT NULL DEFAULT '" + + ProfileManager.NO_PROFILE.toString() + "');"); LogUtils.i("Instance table created"); } public ClockDatabaseHelper(Context context) { - super(context, DATABASE_NAME, null, VERSION_8); + super(context, DATABASE_NAME, null, VERSION_10); } @Override @@ -123,7 +143,9 @@ class ClockDatabaseHelper extends SQLiteOpenHelper { ClockContract.AlarmsColumns.VIBRATE + cs + ClockContract.AlarmsColumns.LABEL + cs + ClockContract.AlarmsColumns.RINGTONE + cs + - ClockContract.AlarmsColumns.DELETE_AFTER_USE + ") VALUES "; + ClockContract.AlarmsColumns.DELETE_AFTER_USE + cs + + ClockContract.AlarmsColumns.INCREASING_VOLUME + cs + + ClockContract.AlarmsColumns.PROFILE + ") VALUES "; db.execSQL(insertMe + DEFAULT_ALARM_1); db.execSQL(insertMe + DEFAULT_ALARM_2); } @@ -155,6 +177,8 @@ class ClockDatabaseHelper extends SQLiteOpenHelper { "vibrate", "message", "alert", + "incvol", + "profile" }; try (Cursor cursor = db.query(OLD_ALARMS_TABLE_NAME, OLD_TABLE_COLUMNS, null, null, null, null, null)) { @@ -176,6 +200,17 @@ class ClockDatabaseHelper extends SQLiteOpenHelper { alarm.alert = TextUtils.isEmpty(alertString) ? null : Uri.parse(alertString); } + alarm.increasingVolume = cursor.getInt(8) == 1; + + if (cursor.isNull(9)) { + alarm.profile = ProfileManager.NO_PROFILE; + } else { + try { + alarm.profile = UUID.fromString(cursor.getString(9)); + } catch (IllegalArgumentException ex) { + alarm.profile = ProfileManager.NO_PROFILE; + } + } // Save new version of alarm and create alarm instance for it db.insert(ALARMS_TABLE_NAME, null, Alarm.createContentValues(alarm)); @@ -189,6 +224,25 @@ class ClockDatabaseHelper extends SQLiteOpenHelper { LogUtils.i("Dropping old alarm table"); db.execSQL("DROP TABLE IF EXISTS " + OLD_ALARMS_TABLE_NAME + ";"); + return; + } + + if (oldVersion < VERSION_9) { + db.execSQL("ALTER TABLE " + ALARMS_TABLE_NAME + + " ADD COLUMN " + ClockContract.AlarmsColumns.INCREASING_VOLUME + + " INTEGER NOT NULL DEFAULT 0;"); + db.execSQL("ALTER TABLE " + INSTANCES_TABLE_NAME + + " ADD COLUMN " + ClockContract.InstancesColumns.INCREASING_VOLUME + + " INTEGER NOT NULL DEFAULT 0;"); + } + + if (oldVersion < VERSION_10) { + db.execSQL("ALTER TABLE " + ALARMS_TABLE_NAME + + " ADD COLUMN " + ClockContract.AlarmsColumns.PROFILE + + " TEXT NOT NULL DEFAULT '" + ProfileManager.NO_PROFILE + "';"); + db.execSQL("ALTER TABLE " + INSTANCES_TABLE_NAME + + " ADD COLUMN " + ClockContract.InstancesColumns.PROFILE + + " TEXT NOT NULL DEFAULT '" + ProfileManager.NO_PROFILE + "';"); } } |