@@ -12,7 +12,7 @@ import java.util.*
1212import java.util.concurrent.TimeUnit
1313
1414
15- fun getLatestAlarm (db : SQLiteDatabase , wantNextAlarm : Boolean , profile : String ): Map <String , * >? {
15+ fun getLatestAlarm (db : SQLiteDatabase , wantNextAlarm : Boolean , profile : String , context : Context ): Map <String , * >? {
1616 val now = Calendar .getInstance()
1717 var nowInMinutes = now.get(Calendar .HOUR_OF_DAY ) * 60 + now.get(Calendar .MINUTE )
1818 var nowInSeconds = nowInMinutes * 60 + now.get(Calendar .SECOND )
@@ -22,8 +22,10 @@ fun getLatestAlarm(db: SQLiteDatabase, wantNextAlarm: Boolean, profile: String):
2222 }
2323 val currentDay = Calendar .getInstance().get(Calendar .DAY_OF_WEEK ) - 1
2424 val currentTime = SimpleDateFormat (" HH:mm" , Locale .getDefault()).format(Date ())
25- Log .d(" d" ," cd ${currentDay} " )
25+ Log .d(" d" , " cd ${currentDay} " )
2626
27+ // Initialize DatabaseHelper
28+ val logdbHelper = LogDatabaseHelper (context)
2729
2830 val cursor = db.rawQuery(
2931 """
@@ -32,77 +34,75 @@ fun getLatestAlarm(db: SQLiteDatabase, wantNextAlarm: Boolean, profile: String):
3234 AND (profile = ? OR ringOn = 1)
3335 """ , arrayOf(profile)
3436 )
35- var selectedAlarm = null ;
37+ var selectedAlarm = null
3638 Log .d(" Alarm" , cursor.count.toString())
3739
38- return if (cursor.count> 0 ) {
40+ return if (cursor.count > 0 ) {
3941 // Parse the cursor into an AlarmModel object
4042 cursor.moveToFirst()
4143 var alarm = AlarmModel .fromCursor(cursor)
4244 var intervaltoAlarm = Long .MAX_VALUE
43- var setAlarm: AlarmModel ? = null
44- do {
45- alarm = AlarmModel .fromCursor(cursor)
46- if (alarm.ringOn == 0 ) {
45+ var setAlarm: AlarmModel ? = null
46+ do {
47+ alarm = AlarmModel .fromCursor(cursor)
48+ if (alarm.ringOn == 0 ) {
4749
48- var dayfromToday = 0
49- var timeDif = getTimeDifferenceInMillis(alarm.alarmTime)
50- Log .d(" d" ," timeDiff ${timeDif} " )
50+ var dayfromToday = 0
51+ var timeDif = getTimeDifferenceInMillis(alarm.alarmTime)
52+ Log .d(" d" , " timeDiff ${timeDif} " )
53+
54+ if ((alarm.days[currentDay] == ' 1' || alarm.days == " 0000000" ) && timeDif > - 1L ) {
55+ if (timeDif < intervaltoAlarm) {
56+ intervaltoAlarm = timeDif
57+ setAlarm = alarm
58+ }
59+ } else {
60+ dayfromToday = getDaysUntilNextAlarm(alarm.days, currentDay)
61+ if (dayfromToday == 0 ) {
62+
63+ if (alarm.days == " 0000000" ) {
5164
52- if ((alarm.days[currentDay] == ' 1' || alarm.days== " 0000000" ) && timeDif > - 1L ) {
53- if (timeDif < intervaltoAlarm) {
54- intervaltoAlarm = timeDif
55- setAlarm = alarm
56- }
57- } else {
58- dayfromToday = getDaysUntilNextAlarm(alarm.days, currentDay)
59- if (dayfromToday == 0 ) {
60-
61- if (alarm.days== " 0000000" )
62- {
63-
64- var timeDif =
65- getTimeDifferenceFromMidnight(alarm.alarmTime) + getMillisecondsUntilMidnight()
66- if (timeDif < intervaltoAlarm && timeDif > - 1L ) {
67- intervaltoAlarm = timeDif
68- setAlarm = alarm
69- }
70- }
71- else {
72-
73- var timeDif =
74- getTimeDifferenceFromMidnight(alarm.alarmTime) + getMillisecondsUntilMidnight() + 86400000 * 6
75- if (timeDif < intervaltoAlarm && timeDif > - 1L ) {
76- intervaltoAlarm = timeDif
77- setAlarm = alarm
78- }
79- }
80- } else if (dayfromToday == 1 ) {
8165 var timeDif =
8266 getTimeDifferenceFromMidnight(alarm.alarmTime) + getMillisecondsUntilMidnight()
83- Log .d(" d" ," timeDiff ${timeDif} " )
84-
8567 if (timeDif < intervaltoAlarm && timeDif > - 1L ) {
8668 intervaltoAlarm = timeDif
8769 setAlarm = alarm
8870 }
8971 } else {
72+
9073 var timeDif =
91- getTimeDifferenceFromMidnight(alarm.alarmTime) + getMillisecondsUntilMidnight() + 86400000 * (dayfromToday - 1 )
74+ getTimeDifferenceFromMidnight(alarm.alarmTime) + getMillisecondsUntilMidnight() + 86400000 * 6
9275 if (timeDif < intervaltoAlarm && timeDif > - 1L ) {
9376 intervaltoAlarm = timeDif
9477 setAlarm = alarm
9578 }
9679 }
80+ } else if (dayfromToday == 1 ) {
81+ var timeDif =
82+ getTimeDifferenceFromMidnight(alarm.alarmTime) + getMillisecondsUntilMidnight()
83+ Log .d(" d" , " timeDiff ${timeDif} " )
9784
85+ if (timeDif < intervaltoAlarm && timeDif > - 1L ) {
86+ intervaltoAlarm = timeDif
87+ setAlarm = alarm
88+ }
89+ } else {
90+ var timeDif =
91+ getTimeDifferenceFromMidnight(alarm.alarmTime) + getMillisecondsUntilMidnight() + 86400000 * (dayfromToday - 1 )
92+ if (timeDif < intervaltoAlarm && timeDif > - 1L ) {
93+ intervaltoAlarm = timeDif
94+ setAlarm = alarm
95+ }
9896 }
99- } else {
100- val dayfromToday = getDaysFromCurrentDate(alarm.alarmDate)
101- if (dayfromToday == 0L ) {
102- var timeDif = getTimeDifferenceInMillis(alarm.alarmTime)
103- if (alarm.days[currentDay] == ' 1' && timeDif > - 1L ) {
104- if (timeDif < intervaltoAlarm) {
105- intervaltoAlarm = timeDif
97+
98+ }
99+ } else {
100+ val dayfromToday = getDaysFromCurrentDate(alarm.alarmDate)
101+ if (dayfromToday == 0L ) {
102+ var timeDif = getTimeDifferenceInMillis(alarm.alarmTime)
103+ if (alarm.days[currentDay] == ' 1' && timeDif > - 1L ) {
104+ if (timeDif < intervaltoAlarm) {
105+ intervaltoAlarm = timeDif
106106 setAlarm = alarm
107107 }
108108 }
@@ -127,18 +127,27 @@ fun getLatestAlarm(db: SQLiteDatabase, wantNextAlarm: Boolean, profile: String):
127127
128128 } while (cursor.moveToNext())
129129 cursor.close()
130+
130131 if (setAlarm != null ) {
131132 Log .d(" Alarm" , intervaltoAlarm.toString())
132- val a = mapOf (
133+
134+ // Add the latest alarm details to the LOG table
135+ val logDetails = """
136+ Alarm Scheduled for ${setAlarm.alarmTime}
137+ """ .trimIndent()
138+ logdbHelper.insertLog(logDetails)
139+
140+ // Return the latest alarm details
141+ val a = mapOf (
133142 " interval" to intervaltoAlarm,
134143 " isActivity" to setAlarm.activityMonitor,
135144 " isLocation" to setAlarm.isLocationEnabled,
136145 " location" to setAlarm.location,
137146 " isWeather" to setAlarm.isWeatherEnabled,
138147 " weatherTypes" to setAlarm.weatherTypes,
139- " alarmID" to setAlarm.alarmId
148+ " alarmID" to setAlarm.alarmId
140149 )
141- Log .d(" s" ," sdsd ${a} " )
150+ Log .d(" s" , " sdsd ${a} " )
142151 return a
143152 }
144153 null
@@ -147,7 +156,6 @@ fun getLatestAlarm(db: SQLiteDatabase, wantNextAlarm: Boolean, profile: String):
147156 }
148157}
149158
150-
151159fun getTimeDifferenceInMillis (timeString : String ): Long {
152160 // Define the time format
153161 val timeFormat = SimpleDateFormat (" HH:mm" , Locale .getDefault())
@@ -321,4 +329,4 @@ data class AlarmModel(
321329 )
322330 }
323331 }
324- }
332+ }
0 commit comments