Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
<uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS" />
<uses-permission android:name="android.permission.FLASHLIGHT"/>
<uses-permission android:name="android.permission.INTERNET" />

<uses-feature android:name="android.hardware.camera" android:required="false" />
<uses-feature android:name="android.hardware.camera.flash" android:required="false" />
Expand Down
56 changes: 33 additions & 23 deletions app/src/main/java/com/best/deskclock/provider/Alarm.java
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,8 @@ public Alarm[] newArray(int size) {
SNOOZE_DURATION,
MISSED_ALARM_REPEAT_LIMIT,
CRESCENDO_DURATION,
ALARM_VOLUME
ALARM_VOLUME,
HOLIDAY_OPTION
};
private static final String[] QUERY_ALARMS_WITH_INSTANCES_COLUMNS = {
ClockDatabaseHelper.ALARMS_TABLE_NAME + "." + _ID,
Expand All @@ -152,6 +153,7 @@ public Alarm[] newArray(int size) {
ClockDatabaseHelper.ALARMS_TABLE_NAME + "." + MISSED_ALARM_REPEAT_LIMIT,
ClockDatabaseHelper.ALARMS_TABLE_NAME + "." + CRESCENDO_DURATION,
ClockDatabaseHelper.ALARMS_TABLE_NAME + "." + ALARM_VOLUME,
ClockDatabaseHelper.ALARMS_TABLE_NAME + "." + HOLIDAY_OPTION,
ClockDatabaseHelper.INSTANCES_TABLE_NAME + "." + ClockContract.InstancesColumns.ALARM_STATE,
ClockDatabaseHelper.INSTANCES_TABLE_NAME + "." + ClockContract.InstancesColumns._ID,
ClockDatabaseHelper.INSTANCES_TABLE_NAME + "." + ClockContract.InstancesColumns.YEAR,
Expand All @@ -168,7 +170,8 @@ public Alarm[] newArray(int size) {
ClockDatabaseHelper.INSTANCES_TABLE_NAME + "." + ClockContract.InstancesColumns.MISSED_ALARM_REPEAT_COUNT,
ClockDatabaseHelper.INSTANCES_TABLE_NAME + "." + ClockContract.InstancesColumns.MISSED_ALARM_REPEAT_LIMIT,
ClockDatabaseHelper.INSTANCES_TABLE_NAME + "." + ClockContract.InstancesColumns.CRESCENDO_DURATION,
ClockDatabaseHelper.INSTANCES_TABLE_NAME + "." + ClockContract.InstancesColumns.ALARM_VOLUME
ClockDatabaseHelper.INSTANCES_TABLE_NAME + "." + ClockContract.InstancesColumns.ALARM_VOLUME,
HOLIDAY_OPTION
};
/**
* These save calls to cursor.getColumnIndexOrThrow()
Expand All @@ -193,27 +196,29 @@ public Alarm[] newArray(int size) {
private static final int MISSED_ALARM_REPEAT_LIMIT_INDEX = 16;
private static final int CRESCENDO_DURATION_INDEX = 17;
private static final int ALARM_VOLUME_INDEX = 18;

private static final int INSTANCE_STATE_INDEX = 19;
public static final int INSTANCE_ID_INDEX = 20;
public static final int INSTANCE_YEAR_INDEX = 21;
public static final int INSTANCE_MONTH_INDEX = 22;
public static final int INSTANCE_DAY_INDEX = 23;
public static final int INSTANCE_HOUR_INDEX = 24;
public static final int INSTANCE_MINUTE_INDEX = 25;
public static final int INSTANCE_LABEL_INDEX = 26;
public static final int INSTANCE_VIBRATE_INDEX = 27;
public static final int INSTANCE_VIBRATION_PATTERN_INDEX = 28;
public static final int INSTANCE_FLASH_INDEX = 29;
public static final int INSTANCE_AUTO_SILENCE_DURATION_INDEX = 30;
public static final int INSTANCE_SNOOZE_DURATION_INDEX = 31;
public static final int INSTANCE_MISSED_ALARM_REPEAT_COUNT_INDEX = 32;
public static final int INSTANCE_MISSED_ALARM_REPEAT_LIMIT_INDEX = 33;
public static final int INSTANCE_CRESCENDO_DURATION_INDEX = 34;
public static final int INSTANCE_ALARM_VOLUME_INDEX = 35;

private static final int COLUMN_COUNT = ALARM_VOLUME_INDEX + 1;
private static final int ALARM_JOIN_INSTANCE_COLUMN_COUNT = INSTANCE_ALARM_VOLUME_INDEX + 1;
private static final int HOLIDAY_OPTION_INDEX = 19;

private static final int INSTANCE_STATE_INDEX = 20;
public static final int INSTANCE_ID_INDEX = 21;
public static final int INSTANCE_YEAR_INDEX = 22;
public static final int INSTANCE_MONTH_INDEX = 23;
public static final int INSTANCE_DAY_INDEX = 24;
public static final int INSTANCE_HOUR_INDEX = 25;
public static final int INSTANCE_MINUTE_INDEX = 26;
public static final int INSTANCE_LABEL_INDEX = 27;
public static final int INSTANCE_VIBRATE_INDEX = 28;
public static final int INSTANCE_VIBRATION_PATTERN_INDEX = 29;
public static final int INSTANCE_FLASH_INDEX = 30;
public static final int INSTANCE_AUTO_SILENCE_DURATION_INDEX = 31;
public static final int INSTANCE_SNOOZE_DURATION_INDEX = 32;
public static final int INSTANCE_MISSED_ALARM_REPEAT_COUNT_INDEX = 33;
public static final int INSTANCE_MISSED_ALARM_REPEAT_LIMIT_INDEX = 34;
public static final int INSTANCE_CRESCENDO_DURATION_INDEX = 35;
public static final int INSTANCE_ALARM_VOLUME_INDEX = 36;
public static final int INSTANCE_HOLIDAY_OPTION_INDEX = 37;

private static final int COLUMN_COUNT = HOLIDAY_OPTION_INDEX + 1;
private static final int ALARM_JOIN_INSTANCE_COLUMN_COUNT = INSTANCE_HOLIDAY_OPTION_INDEX + 1;
// Public fields
public long id;
public boolean enabled;
Expand Down Expand Up @@ -314,6 +319,7 @@ public Alarm(Cursor c) {
missedAlarmRepeatLimit = c.getInt(MISSED_ALARM_REPEAT_LIMIT_INDEX);
crescendoDuration = c.getInt(CRESCENDO_DURATION_INDEX);
alarmVolume = c.getInt(ALARM_VOLUME_INDEX);
holidayOption = c.getInt(HOLIDAY_OPTION_INDEX);

if (c.getColumnCount() == ALARM_JOIN_INSTANCE_COLUMN_COUNT) {
instanceState = c.getInt(INSTANCE_STATE_INDEX);
Expand Down Expand Up @@ -350,6 +356,7 @@ public Alarm(Cursor c) {
missedAlarmRepeatLimit = p.readInt();
crescendoDuration = p.readInt();
alarmVolume = p.readInt();
holidayOption = p.readInt();
}

public ContentValues createContentValues() {
Expand All @@ -375,6 +382,7 @@ public ContentValues createContentValues() {
values.put(MISSED_ALARM_REPEAT_LIMIT, missedAlarmRepeatLimit);
values.put(CRESCENDO_DURATION, crescendoDuration);
values.put(ALARM_VOLUME, alarmVolume);
values.put(HOLIDAY_OPTION, holidayOption);
if (alert == null) {
// We want to put null, so default alarm changes
values.putNull(RINGTONE);
Expand Down Expand Up @@ -405,6 +413,7 @@ public void writeToParcel(Parcel p, int flags) {
p.writeInt(missedAlarmRepeatLimit);
p.writeInt(crescendoDuration);
p.writeInt(alarmVolume);
p.writeInt(holidayOption);
}

public int describeContents() {
Expand Down Expand Up @@ -665,6 +674,7 @@ public AlarmInstance createInstanceAfter(Calendar time) {
result.mMissedAlarmRepeatLimit = missedAlarmRepeatLimit;
result.mCrescendoDuration = crescendoDuration;
result.mAlarmVolume = alarmVolume;
result.mHolidayOption = holidayOption;
return result;
}

Expand Down
12 changes: 10 additions & 2 deletions app/src/main/java/com/best/deskclock/provider/AlarmInstance.java
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,8 @@ public final class AlarmInstance implements ClockContract.InstancesColumns {
MISSED_ALARM_REPEAT_COUNT,
MISSED_ALARM_REPEAT_LIMIT,
CRESCENDO_DURATION,
ALARM_VOLUME
ALARM_VOLUME,
HOLIDAY_OPTION
};

/**
Expand All @@ -94,8 +95,9 @@ public final class AlarmInstance implements ClockContract.InstancesColumns {
private static final int MISSED_ALARM_MAX_COUNT_INDEX = 16;
private static final int CRESCENDO_DURATION_INDEX = 17;
private static final int ALARM_VOLUME_INDEX = 18;
private static final int HOLIDAY_OPTION_INDEX = 19;

private static final int COLUMN_COUNT = ALARM_VOLUME_INDEX + 1;
private static final int COLUMN_COUNT = HOLIDAY_OPTION_INDEX + 1;
// Public fields
public long mId;
public int mYear;
Expand All @@ -117,6 +119,7 @@ public final class AlarmInstance implements ClockContract.InstancesColumns {
public int mCrescendoDuration;
// Alarm volume level in steps; not a percentage
public int mAlarmVolume;
public int mHolidayOption;

public AlarmInstance(Calendar calendar, Long alarmId) {
this(calendar);
Expand All @@ -138,6 +141,7 @@ public AlarmInstance(Calendar calendar) {
mMissedAlarmRepeatLimit = Integer.parseInt(DEFAULT_MISSED_ALARM_REPEAT_LIMIT);
mCrescendoDuration = DEFAULT_VOLUME_CRESCENDO_DURATION;
mAlarmVolume = DEFAULT_ALARM_VOLUME;
mHolidayOption = 0;
}

public AlarmInstance(AlarmInstance instance) {
Expand All @@ -160,6 +164,7 @@ public AlarmInstance(AlarmInstance instance) {
this.mMissedAlarmRepeatLimit = instance.mMissedAlarmRepeatLimit;
this.mCrescendoDuration = instance.mCrescendoDuration;
this.mAlarmVolume = instance.mAlarmVolume;
this.mHolidayOption = instance.mHolidayOption;
}

public AlarmInstance(Cursor c, boolean joinedTable) {
Expand All @@ -180,6 +185,7 @@ public AlarmInstance(Cursor c, boolean joinedTable) {
mMissedAlarmRepeatLimit = c.getInt(Alarm.INSTANCE_MISSED_ALARM_REPEAT_LIMIT_INDEX);
mCrescendoDuration = c.getInt(Alarm.INSTANCE_CRESCENDO_DURATION_INDEX);
mAlarmVolume = c.getInt(Alarm.INSTANCE_ALARM_VOLUME_INDEX);
mHolidayOption = c.getInt(Alarm.INSTANCE_HOLIDAY_OPTION_INDEX);
} else {
mId = c.getLong(ID_INDEX);
mYear = c.getInt(YEAR_INDEX);
Expand All @@ -197,6 +203,7 @@ public AlarmInstance(Cursor c, boolean joinedTable) {
mMissedAlarmRepeatLimit = c.getInt(MISSED_ALARM_MAX_COUNT_INDEX);
mCrescendoDuration = c.getInt(CRESCENDO_DURATION_INDEX);
mAlarmVolume = c.getInt(ALARM_VOLUME_INDEX);
mHolidayOption = c.getInt(HOLIDAY_OPTION_INDEX);
}
if (c.isNull(RINGTONE_INDEX)) {
// Should we be saving this with the current ringtone or leave it null
Expand Down Expand Up @@ -242,6 +249,7 @@ public ContentValues createContentValues() {
values.put(MISSED_ALARM_REPEAT_LIMIT, mMissedAlarmRepeatLimit);
values.put(CRESCENDO_DURATION, mCrescendoDuration);
values.put(ALARM_VOLUME, mAlarmVolume);
values.put(HOLIDAY_OPTION, mHolidayOption);

return values;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,13 @@ private interface AlarmSettingColumns extends BaseColumns {
*/
String VIBRATION_PATTERN = "vibrationPattern";

/**
* Alarm holiday option.
*
* <p>Type: INTEGER</p>
*/
String HOLIDAY_OPTION = "holidayOption";

/**
* True if flash should turn on
* <p>Type: BOOLEAN</p>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ class ClockDatabaseHelper extends SQLiteOpenHelper {
static final String ALARMS_TABLE_NAME = "alarm_templates";
static final String INSTANCES_TABLE_NAME = "alarm_instances";

private static final int DATABASE_VERSION = 21;
private static final int DATABASE_VERSION = 22;
private static final int MINIMUM_SUPPORTED_VERSION = 15;

private final Context mContext;
Expand All @@ -47,6 +47,8 @@ private static void createAlarmsTable(SQLiteDatabase db, String alarmsTableName)
ClockContract.AlarmsColumns.DAYS_OF_WEEK + " INTEGER NOT NULL, " +
ClockContract.AlarmsColumns.ENABLED + " INTEGER NOT NULL, " +
ClockContract.AlarmsColumns.VIBRATE + " INTEGER NOT NULL, " +
ClockContract.AlarmsColumns.VIBRATION_PATTERN + " TEXT DEFAULT 'default', " +
ClockContract.AlarmsColumns.HOLIDAY_OPTION + " INTEGER NOT NULL DEFAULT 0, " +
ClockContract.AlarmsColumns.FLASH + " INTEGER NOT NULL, " +
ClockContract.AlarmsColumns.LABEL + " TEXT NOT NULL, " +
ClockContract.AlarmsColumns.RINGTONE + " TEXT, " +
Expand All @@ -68,6 +70,8 @@ private static void createInstanceTable(SQLiteDatabase db, String instanceTableN
ClockContract.InstancesColumns.HOUR + " INTEGER NOT NULL, " +
ClockContract.InstancesColumns.MINUTES + " INTEGER NOT NULL, " +
ClockContract.InstancesColumns.VIBRATE + " INTEGER NOT NULL, " +
ClockContract.InstancesColumns.VIBRATION_PATTERN + " TEXT DEFAULT 'default', " +
ClockContract.InstancesColumns.HOLIDAY_OPTION + " INTEGER NOT NULL DEFAULT 0, " +
ClockContract.InstancesColumns.FLASH + " INTEGER NOT NULL, " +
ClockContract.InstancesColumns.LABEL + " TEXT NOT NULL, " +
ClockContract.InstancesColumns.RINGTONE + " TEXT, " +
Expand Down Expand Up @@ -195,6 +199,16 @@ public void onUpgrade(SQLiteDatabase db, int oldVersion, int currentVersion) {

LogUtils.i("dismissAlarmWhenRingtoneEnds, alarmSnoozeActions and increasingVolume" +
" columns removed for version 21 upgrade.");

// Add vibrationPattern and holidayOption columns
if (oldVersion < 22) {
db.execSQL("ALTER TABLE " + ALARMS_TABLE_NAME + " ADD COLUMN vibrationPattern TEXT DEFAULT 'default';");
db.execSQL("ALTER TABLE " + ALARMS_TABLE_NAME + " ADD COLUMN holidayOption INTEGER NOT NULL DEFAULT 0;");
db.execSQL("ALTER TABLE " + INSTANCES_TABLE_NAME + " ADD COLUMN vibrationPattern TEXT DEFAULT 'default';");
db.execSQL("ALTER TABLE " + INSTANCES_TABLE_NAME + " ADD COLUMN holidayOption INTEGER NOT NULL DEFAULT 0;");

LogUtils.i("Added vibrationPattern and holidayOption columns for version 22 upgrade.");
}
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,10 @@ public class ClockProvider extends ContentProvider {
ALARMS_TABLE_NAME + "." + AlarmsColumns.ENABLED);
sAlarmsWithInstancesProjection.put(ALARMS_TABLE_NAME + "." + AlarmsColumns.VIBRATE,
ALARMS_TABLE_NAME + "." + AlarmsColumns.VIBRATE);
sAlarmsWithInstancesProjection.put(ALARMS_TABLE_NAME + "." + AlarmsColumns.VIBRATION_PATTERN,
ALARMS_TABLE_NAME + "." + AlarmsColumns.VIBRATION_PATTERN);
sAlarmsWithInstancesProjection.put(ALARMS_TABLE_NAME + "." + AlarmsColumns.HOLIDAY_OPTION,
ALARMS_TABLE_NAME + "." + AlarmsColumns.HOLIDAY_OPTION);
sAlarmsWithInstancesProjection.put(ALARMS_TABLE_NAME + "." + AlarmsColumns.FLASH,
ALARMS_TABLE_NAME + "." + AlarmsColumns.FLASH);
sAlarmsWithInstancesProjection.put(ALARMS_TABLE_NAME + "." + AlarmsColumns.LABEL,
Expand Down Expand Up @@ -112,6 +116,10 @@ public class ClockProvider extends ContentProvider {
INSTANCES_TABLE_NAME + "." + InstancesColumns.LABEL);
sAlarmsWithInstancesProjection.put(INSTANCES_TABLE_NAME + "." + InstancesColumns.VIBRATE,
INSTANCES_TABLE_NAME + "." + InstancesColumns.VIBRATE);
sAlarmsWithInstancesProjection.put(INSTANCES_TABLE_NAME + "." + InstancesColumns.VIBRATION_PATTERN,
INSTANCES_TABLE_NAME + "." + InstancesColumns.VIBRATION_PATTERN);
sAlarmsWithInstancesProjection.put(INSTANCES_TABLE_NAME + "." + InstancesColumns.HOLIDAY_OPTION,
INSTANCES_TABLE_NAME + "." + InstancesColumns.HOLIDAY_OPTION);
sAlarmsWithInstancesProjection.put(INSTANCES_TABLE_NAME + "." + InstancesColumns.FLASH,
INSTANCES_TABLE_NAME + "." + InstancesColumns.FLASH);
sAlarmsWithInstancesProjection.put(INSTANCES_TABLE_NAME + "." + InstancesColumns.AUTO_SILENCE_DURATION,
Expand Down
9 changes: 0 additions & 9 deletions duplicates.txt

This file was deleted.

58 changes: 0 additions & 58 deletions restore_strings.py

This file was deleted.

49 changes: 0 additions & 49 deletions update_alarm_settings.py

This file was deleted.

Loading