From ed460f7ae3089735747ffee63ed0a3ee6c38ef9b Mon Sep 17 00:00:00 2001 From: "google-labs-jules[bot]" <161369871+google-labs-jules[bot]@users.noreply.github.com> Date: Sun, 29 Mar 2026 07:54:00 +0000 Subject: [PATCH] Fix IllegalArgumentException: Invalid column holidayOption - Updated `ClockProvider.java` to include unqualified mappings for `VIBRATION_PATTERN`, `HOLIDAY_OPTION`, and `MISSED_ALARM_REPEAT_LIMIT` in `sAlarmsWithInstancesProjection`. - Cleaned up `Alarm.java` by removing the redundant `HOLIDAY_OPTION` from `QUERY_ALARMS_WITH_INSTANCES_COLUMNS`. - Updated index constants in `Alarm.java` to match the corrected column array, ensuring proper data retrieval from cursors. - Verified consistency in `AlarmInstance.java` and confirmed successful compilation. Co-authored-by: gx-bangsong <146644201+gx-bangsong@users.noreply.github.com> --- alarm_patch.diff | 24 +++++++++++++++++++ .../com/best/deskclock/provider/Alarm.java | 15 ++++++------ .../deskclock/provider/ClockProvider.java | 6 +++++ 3 files changed, 37 insertions(+), 8 deletions(-) create mode 100644 alarm_patch.diff diff --git a/alarm_patch.diff b/alarm_patch.diff new file mode 100644 index 000000000..ca22a120b --- /dev/null +++ b/alarm_patch.diff @@ -0,0 +1,24 @@ +<<<<<<< SEARCH + ClockDatabaseHelper.INSTANCES_TABLE_NAME + "." + ClockContract.InstancesColumns.CRESCENDO_DURATION, + ClockDatabaseHelper.INSTANCES_TABLE_NAME + "." + ClockContract.InstancesColumns.ALARM_VOLUME, + HOLIDAY_OPTION + }; +======= + ClockDatabaseHelper.INSTANCES_TABLE_NAME + "." + ClockContract.InstancesColumns.CRESCENDO_DURATION, + ClockDatabaseHelper.INSTANCES_TABLE_NAME + "." + ClockContract.InstancesColumns.ALARM_VOLUME + }; +>>>>>>> REPLACE +<<<<<<< SEARCH + 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 static final int INSTANCE_CRESCENDO_DURATION_INDEX = 35; + public static final int INSTANCE_ALARM_VOLUME_INDEX = 36; + + private static final int COLUMN_COUNT = HOLIDAY_OPTION_INDEX + 1; + private static final int ALARM_JOIN_INSTANCE_COLUMN_COUNT = INSTANCE_ALARM_VOLUME_INDEX + 1; +>>>>>>> REPLACE diff --git a/app/src/main/java/com/best/deskclock/provider/Alarm.java b/app/src/main/java/com/best/deskclock/provider/Alarm.java index d834cf861..71e310758 100644 --- a/app/src/main/java/com/best/deskclock/provider/Alarm.java +++ b/app/src/main/java/com/best/deskclock/provider/Alarm.java @@ -170,14 +170,13 @@ 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, - HOLIDAY_OPTION + ClockDatabaseHelper.INSTANCES_TABLE_NAME + "." + ClockContract.InstancesColumns.ALARM_VOLUME }; /** * These save calls to cursor.getColumnIndexOrThrow() * THEY MUST BE KEPT IN SYNC WITH ABOVE QUERY COLUMNS */ - private static final int ID_INDEX = 0; + public static final int ID_INDEX = 0; private static final int YEAR_INDEX = 1; private static final int MONTH_INDEX = 2; private static final int DAY_INDEX = 3; @@ -189,16 +188,16 @@ public Alarm[] newArray(int size) { private static final int VIBRATION_PATTERN_INDEX = 9; private static final int FLASH_INDEX = 10; private static final int LABEL_INDEX = 11; - private static final int RINGTONE_INDEX = 12; + public static final int RINGTONE_INDEX = 12; private static final int DELETE_AFTER_USE_INDEX = 13; private static final int AUTO_SILENCE_DURATION_INDEX = 14; private static final int SNOOZE_DURATION_INDEX = 15; 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 HOLIDAY_OPTION_INDEX = 19; + public static final int HOLIDAY_OPTION_INDEX = 19; - private static final int INSTANCE_STATE_INDEX = 20; + public 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; @@ -215,10 +214,10 @@ public Alarm[] newArray(int size) { 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; + public static final int INSTANCE_HOLIDAY_OPTION_INDEX = HOLIDAY_OPTION_INDEX; private static final int COLUMN_COUNT = HOLIDAY_OPTION_INDEX + 1; - private static final int ALARM_JOIN_INSTANCE_COLUMN_COUNT = INSTANCE_HOLIDAY_OPTION_INDEX + 1; + private static final int ALARM_JOIN_INSTANCE_COLUMN_COUNT = INSTANCE_ALARM_VOLUME_INDEX + 1; // Public fields public long id; public boolean enabled; diff --git a/app/src/main/java/com/best/deskclock/provider/ClockProvider.java b/app/src/main/java/com/best/deskclock/provider/ClockProvider.java index 810983a67..0c40e0f07 100644 --- a/app/src/main/java/com/best/deskclock/provider/ClockProvider.java +++ b/app/src/main/java/com/best/deskclock/provider/ClockProvider.java @@ -79,8 +79,12 @@ public class ClockProvider extends ContentProvider { ALARMS_TABLE_NAME + "." + AlarmsColumns.VIBRATE); sAlarmsWithInstancesProjection.put(ALARMS_TABLE_NAME + "." + AlarmsColumns.VIBRATION_PATTERN, ALARMS_TABLE_NAME + "." + AlarmsColumns.VIBRATION_PATTERN); + sAlarmsWithInstancesProjection.put(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(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, @@ -95,6 +99,8 @@ public class ClockProvider extends ContentProvider { ALARMS_TABLE_NAME + "." + AlarmsColumns.SNOOZE_DURATION); sAlarmsWithInstancesProjection.put(ALARMS_TABLE_NAME + "." + AlarmsColumns.MISSED_ALARM_REPEAT_LIMIT, ALARMS_TABLE_NAME + "." + AlarmsColumns.MISSED_ALARM_REPEAT_LIMIT); + sAlarmsWithInstancesProjection.put(AlarmsColumns.MISSED_ALARM_REPEAT_LIMIT, + ALARMS_TABLE_NAME + "." + AlarmsColumns.MISSED_ALARM_REPEAT_LIMIT); sAlarmsWithInstancesProjection.put(ALARMS_TABLE_NAME + "." + AlarmsColumns.CRESCENDO_DURATION, ALARMS_TABLE_NAME + "." + AlarmsColumns.CRESCENDO_DURATION); sAlarmsWithInstancesProjection.put(ALARMS_TABLE_NAME + "." + AlarmsColumns.ALARM_VOLUME,