Skip to content

Fix alarm rescheduling, SQLite schema mismatch, guardian timer input, and task-list persistence#956

Open
NihalDR wants to merge 71 commits into
CCExtractor:mainfrom
NihalDR:tasklist
Open

Fix alarm rescheduling, SQLite schema mismatch, guardian timer input, and task-list persistence#956
NihalDR wants to merge 71 commits into
CCExtractor:mainfrom
NihalDR:tasklist

Conversation

@NihalDR
Copy link
Copy Markdown
Contributor

@NihalDR NihalDR commented May 24, 2026

Summary

Multiple fixes and improvements related to alarm creation, updating, persistence, and scheduling.

Changes

Guardian Angel timer input

  • Added a numeric input field in the Guardian Angel dialog for configuring timer duration in seconds
  • Added digits-only filtering
  • Added fallback validation to default to 120 seconds if the input is invalid
  • Updates controller.guardianTimer correctly during create/edit alarm flows

SQLite schema fix for calendar fields

Fixes crashes caused by no such column: calendarEventId.

Added missing alarm table columns:

  • calendarEventId
  • calendarEventStart
  • calendarEventUpdated
  • calendarId
  • isCalendarEvent

Added migration handling in onUpgrade so existing installations upgrade safely without data loss.


Alarm task persistence fix

Fixed issue where tasks added during new alarm creation were not being saved. Added tasks: controller.alarmTasks.toList() to the AlarmModel(...) constructor in the new alarm creation path.


Immediate alarm reschedule after update

Fixed issue where edited alarms sometimes failed to ring after saving changes.

Root cause:

  • The update flow depended on refreshUpcomingAlarms()
  • Debounce logic could skip refresh calls within 5 seconds
  • Alarm became cancelled but not rescheduled

Fix:

  • Added forced refresh reset in forceRefreshAfterAlarmUpdate
  • Cancels pending delay timers
  • Resets lastRefreshTime
  • Ensures updated alarms reschedule immediately

Testing

  • Created and edited alarms successfully
  • Verified Guardian Timer value persists
  • Verified tasks persist after reopening alarms
  • Confirmed updated alarms reschedule immediately
  • Confirmed schema upgrades work without crashes

Rijuth Menon and others added 30 commits April 14, 2025 21:49
…l widget errors, and resolve overflow issues
SQLite Database Schema Migration for Alarm Clock App
Resolved merge conflicts between shared alarm functionality and system ringtones:
- Combined shared alarm features with system ringtone support
- Merged MainActivity.kt with both shared alarm methods and system ringtone methods
- Integrated time input controllers with shared alarm functionality
- Preserved both notification systems and audio management
- Fixed all import conflicts and maintained backward compatibility

Features merged:
✅ Shared alarm functionality with push notifications
✅ System ringtone selection and playback
✅ Max snooze count settings
✅ Time input controllers
✅ Guardian angel improvements
✅ Audio focus management
✅ Controller lifecycle improvements
…ed alarm functionality

- Combined negative condition alarm logic (4 activity condition types) with shared alarm system
- Updated database schema to version 3 with activityConditionType and weatherConditionType columns
- Enhanced AlarmReceiver to support both shared and local alarms with proper logging
- Updated BootReceiver with shared alarm rescheduling after boot
- Modified MainActivity with proper alarm cancellation logic preserving dual alarm types
- Fixed database providers to support both Firestore (shared) and SQLite (local) storage
- Integrated AlarmUtils.scheduleAlarm calls throughout the system
- Fixed snooze button instantly closing when duration is 0
- Added default 5-minute snooze when snoozeDuration is 0 or unset
- Enhanced debug logs UI with improved cards and filtering
- Added sunrise alarm effect widget for visual wake-up experience
- Improved alarm ring controller with better error handling
- Enhanced shared alarm functionality and location/weather conditions
mahendra-918 and others added 30 commits August 17, 2025 01:45
- Remove node_modules/ directory (58 files) from version control
- Remove ios/Podfile.lock from tracking
- Update .gitignore to prevent future build artifacts
- Add comprehensive ignore patterns for build/, gradle/, lock files
- Clean up repository for professional GSoC submission

This removes unnecessary artifacts while preserving all legitimate GSoC work.
Co-authored-by: Inderjeet Singh <inderjet05@gmail.com>
…tor#915)

Fixes CCExtractor#914

- Removed duplicate import of debug_view.dart
- Removed unused import of DebugController
- Resolves analyzer warnings that fail CI
* Implement a graceful UI fallback when system ringtones are unavailable on iOS

* fix(android): remove null-unsafe unwraps in location/weather services

Resolve crash-prone null assertions in LocationFetcherService and WeatherFetcherService with guarded parsing, logging, and graceful exits.\n\nCloses CCExtractor#931

* fix(android): make foreground start API-safe for minSdk 24

Use SDK-gated foreground service startup to avoid 3-arg startForeground on older Android versions.\n\nRefs CCExtractor#933
…tractor#926)

* Implement a graceful UI fallback when system ringtones are unavailable on iOS

* Update alarm_challenge_controller.dart

* Update share_dialog.dart

* Fix email validation regex in share_dialog.dart

* docs: reflect support for subdomains and hyphens in shared emails
* fix: Stopped the laggy UI animation everytime the app is rebuilt

* fix: Used confirmDismiss instead of ondismissed which prevents unnecessary rebuilds and error

* fix: prevents default animation for when multipleSelected mode is true
…CCExtractor#833)

* Stage 1: Added alarmDate parameter to timeUntilAlarm

* Updated  and  Controller

* Done
Co-authored-by: Kush Choudhary <kushchoudhary@Kushs-MacBook-Pro.local>
…actor#940)

* feat(world-clock): add visible remove action for added clocks

* Enhance Shared Alarm System to Support Full Alarm Feature Set

- Extend shared alarm payload to include full alarm configuration and payload versioning

- Reconstruct accepted alarms from full payload with backward-compatible fallback

- Improve notification UI with time, label, and repeat schedule details

- Add robust deserialization defaults for legacy/partial payloads

- Add tests for serialization compatibility and notification payload parsing

Refs CCExtractor#939

* Delete test/shared_alarm_payload_test.dart
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

10 participants