Features scheduled for removal. These duplicate functionality now built into modern Android.
- DEPRECATED - Do not add tests, scheduled for removal
- REMOVAL PENDING - Test suite complete, ready to remove
- REMOVED - Feature has been removed
Status: DEPRECATED
Reason: Android's built-in Do Not Disturb (DND) mode provides equivalent functionality.
Package: com.github.quarck.calnotify.quiethours
-
QuietHoursManager.kt -
QuietHoursManagerInterface.kt
UI:
-
prefs/fragments/QuietHoursSettingsFragment.kt - Related entries in
res/xml/preference_headers.xml
Dependencies to clean up:
-
ApplicationController.kt-isCustomQuietHoursActive(), quiet hours references -
AlarmScheduler.kt/AlarmSchedulerInterface.kt- quiet hours parameters -
EventNotificationManager.kt/EventNotificationManagerInterface.kt- silent period checks -
ReminderAlarmBroadcastReceiver.kt- quiet hours checks -
MainActivity.kt,SnoozeAllActivity.kt,ViewEventActivityNoRecents.kt- UI references -
SettingsActivityNew.kt- settings UI
Status: DEPRECATED
Reason: Modern calendar apps have robust rescheduling built-in. Users can reschedule directly from notification tap → calendar app.
Package: com.github.quarck.calnotify.calendareditor
-
CalendarChangeManager.kt -
CalendarChangeManagerInterface.kt -
CalendarChangePersistentState.kt -
CalendarChangeRequest.kt -
CalendarChangeRequestMonitor.kt -
CalendarChangeRequestMonitorInterface.kt
Storage subpackage: com.github.quarck.calnotify.calendareditor.storage
-
CalendarChangeRequestsStorage.kt -
CalendarChangeRequestsStorageImplInterface.kt -
CalendarChangeRequestsStorageImplV3.kt -
CalendarChangeRequestsStorageInterface.kt
UI:
-
EditEventActivity.kt
Dependencies to clean up:
-
ApplicationController.kt-CalendarChangeRequestMonitorusage -
CalendarMonitorService.kt- change request handling -
AndroidManifest.xml- activity registrations
Before removing these features:
- Complete test suite for remaining core features
- Update README to remove references to deprecated features
- Verify no crashes when deprecated code paths are hit
Status: DEPRECATED (cleanup deferred until legacy storage removal)
Reason: The .use {} / Closeable pattern exists only for LegacyEventsStorage compatibility. Room storage has no-op close() because Room databases are singletons.
- Room storage
close(): No-op (intentional - Room manages singleton lifecycle) - Legacy storage
close(): Actually closes SQLiteOpenHelper - Code pattern: Uses
.use {}everywhere for consistency - Result: Code can use storage after
.use {}without crashing (but is conceptually wrong)
Remove Closeable from interfaces:
-
EventsStorageInterface.kt -
DismissedEventsStorageInterface.kt -
MonitorStorageInterface.kt
Simplify wrapper classes:
-
EventsStorage.kt- remove delegation, simplify to direct Room usage -
DismissedEventsStorage.kt- same -
MonitorStorage.kt- same
Remove .use {} calls throughout codebase (or keep as harmless scope functions):
-
ApplicationController.kt- many.use {}calls - UI fragments and activities
Update mocks:
-
MockEventsStorage.kt- remove closed-state tracking -
MockDismissedEventsStorage.kt- same -
MockMonitorStorage.kt- same
See also: docs/architecture/storage_lifecycle.md
| Phase | Action | Status |
|---|---|---|
| 1 | Add @Deprecated annotations to code | Pending |
| 2 | Complete core feature test suite | In Progress |
| 3 | Remove Quiet Hours feature | Pending |
| 4 | Remove Calendar Editor feature | Pending |
| 5 | Remove Legacy Storage & .use {} pattern |
Pending |
| 6 | Clean up dependencies and update docs | Pending |