Zmanim calculations
KosherJava is vendored locally and wrapped by ZmanimHelper so builds are not blocked by flaky dependency fetches.
Android alarm clock · KosherJava
Zmanim Alarm computes zmanim for the user’s location and arms Android alarms against those shifting times, with daily refresh, reboot recovery, tones, debug logs, a tester bench, and a next-zman home-screen widget.
Coming soon to Google PlayKosherJava is vendored locally and wrapped by ZmanimHelper so builds are not blocked by flaky dependency fetches.
Alarm slots, Android Clock intents, daily exact refresh, foreground service, and boot receiver keep scheduled alarms current.
Debug logs, log viewer, Run Worker action, tester activity, and multiple fire mechanisms exist because wake-up reliability must be tested on device.
DailyAlarmScheduler and DailyAlarmService reload slots and call the shared alarm refresh logic.
BootReceiver re-arms the schedule after the device restarts.
TonePickerActivity and ToneHelper manage default and chosen alarm sounds.
NextZmanWidget gives a home-screen readout for the next zman.
AlarmHelper builds SET and DISMISS intents for Android Clock, because the app needs the operating system’s alarm behavior, not a decorative timer.
DailyAlarmService runs the refresh as a foreground service for scheduled and manual worker runs.
BatteryOptimizationHelper exists because exact alarm reliability depends on device settings as much as calculation correctness.
ZmanimListActivity exposes the broader daily zmanim list beyond the alarm cards.
AlarmTesterActivity and seven scheduling methods make it possible to isolate how a device actually fires.
Main alarm-card screen and footer controls.
RecyclerView adapter for saved zmanim alarm slots.
Ringtone selection for each alarm slot.
Full daily zmanim list beyond the alarm cards.