Skip to content

Android app (and widget collection) that displays sunlight and moonlight times.

License

GPL-3.0, GPL-3.0 licenses found

Licenses found

GPL-3.0
LICENSE
GPL-3.0
COPYING
Notifications You must be signed in to change notification settings

forrestguice/SuntimesWidget

Repository files navigation

Suntimes

Android app (and widget collection) that displays sunlight and moonlight times for a given location.

Get it on F-Droid

F-Droid GitHub release Android CI

Displays sunrise and sunset, twilights (civil / nautical / astronomical), blue and golden hour, solstices and equinoxes, moonrise and moonset, moon phases and illumination.

Suntimes Alarms
An alarm clock for Suntimes.

Suntimes Calendars
A calendar provider add-on for Suntimes.

Solunar Periods
A hunting and fishing add-on for Suntimes.

Natural Hour
A 24-hour clock & roman timekeeping add-on for Suntimes.

Suntimes NFC
An NFC Addon for Suntimes Alarms; dismiss alarms with an NFC tag.

Interval Midpoints
A midpoint calculator add-on for Suntimes Alarms; schedule alarms for event midpoints.

The app:

  • displays the current time (system time zone, custom time zone, or solar time)
  • displays the time until the next rising/setting event.
  • displays the sunrise and sunset, blue and golden hour, and twilight times (civil / nautical / astronomical).
  • displays the current moon phase, illumination, moonrise, moonset, lunar noon, lunar midnight, apogee, perigee, and major phase dates.
  • displays the current sunlight and moonlight projected over a world map (basic equirectangular, blue marble, or azimuthal maps).
  • displays the total amount of sunlight over the year, and earliest/latest sunrise and sunset times.
  • displays the solstices, equinoxes, and cross-quarter days, and notes the time until the next event.
  • displays the sun's current position, and its position at sunrise, sunset, and noon.
  • displays the moon's current position, and its position at moonrise and moonset.
  • includes support for custom rising/setting events; the time when the sun is at a given angle, or an object casts a shadow of given length.
  • includes an Alarm Clock that can set a repeating alarm or notification for the next sunrise or sunset (or other rising/setting event).
  • includes a "Quick Settings" tile that displays information as part of the settings tray.
  • can display the configured location on a map (requires a map application) and configure the location from a map (using geo intent).

The app:

  • does not require GPS. The location is manually specified by default (and optionally obtained from GPS).
  • does not require network connectivity (or other unnecessary permissions). All calculations are performed locally on the device.

The alarm clock:

  • supports different types; schedule "alarms", "notifications", or "quick notifications".
  • supports astronomical events (in addition to ordinary alarms), and repeating alarms that are rescheduled as event times change throughout the year.
  • includes features for heavy sleepers; challenges to dismiss alarms ("easy math"), snooze limits, and bright fullscreen alarms.
  • includes a bedtime mode that schedules alarms using sleep cycles, and manages do-not-disturb during sleep hours.

Widgets are (re)configurable:

  • location (latitude, longitude, elevation).
  • time zone (system / custom), sidereal time (lmst, gmst), or solar time (local mean time, apparent solar time).
  • user-defined titles (supporting limited substitutions).
  • misc. options: "use elevation", "show seconds", "show noon", and "show comparison", etc.

Widgets are themeable and provide:

  • a theme editor and support for basic custom themes.
  • a (default) dark theme (and dark w/ semi-transparent background).
  • a (default) light theme (and light w/ transparent background).

Widgets are resizable and include...

Clock widgets:

  • 1x1 digital clock widget that displays solar time (or a given timezone).

Alarm widgets:

  • 1x1 alarm widget that displays the time of the next alarm.
  • 2x2 alarm widget that displays a basic list of upcoming alarms.
  • 3x2 alarm widget that displays a detailed list of upcoming alarms.

Date widgets:

  • 1x1 date widget that displays the date with a given calendars (Chinese, Coptic, Ethiopian, Gregorian, Hebrew, Indian, Japanese, Julian, Korean, Minguo, Solar Hijiri, Thai Solar, or Vietnamese).

Sun widgets:

  • 1x1 sun widget that displays the sunrise or sunset time.
  • 1x1 sun widget that displays both sunrise and sunset times.
  • 1x1 sun widget that flips between sunrise and sunset times.
  • 2x1 and 3x1 sun widgets that displays the sunrise and sunset times, and the difference in daylight between today and tomorrow (or yesterday).

Moon widgets:

  • 1x1 moon widget that displays moonrise and moonset.
  • 1x1 moon widget that displays next major phase.
  • 1x1 moon widget that displays phase and illumination (or phase only, or illumination only).
  • 1x1 moon widget that displays the number of days since the new moon.
  • 2x1 moon widget that displays moonrise and moonset, phase, and illumination.
  • 3x1 moon widget that displays upcoming major moon phases.

Solstice widgets:

  • 1x1 solstice widget that tracks the upcoming solstice, equinox, or cross-quarter day.

Position widgets:

  • 1x1 sun position widget that tracks the sun's altitude and azimuth.
  • 1x1 sun position widget that tracks the sun's declination and right ascension.
  • 3x1 sun position widget that displays the lightmap graph, and tracks the sun's altitude and azimuth (current, sunrise/sunset, and at noon).
  • 3x2 sun position widget that displays current sunlight and moonlight projected over a world map.
  • 3x2 sun position widget that displays the sun's altitude as a line graph.
  • 3x2 sun position widget that displays sunlight over the year.


Additional screenshots can be found on the project wiki and in the gh-pages branch.

screenshot1  screenshot2  screenshot3

Privacy and Permissions

Suntimes does not collect, store, or transmit personal user data. It contains no advertising, no analytics, no trackers, and no unnecessary permissions. https://github.com/forrestguice/SuntimesWidget/wiki/Privacy

The app benefits from the following permissions...

Permission Since Version
ACCESS_COARSE_LOCATION To get current location. v0.1.0
ACCESS_FINE_LOCATION To get current location (GPS). v0.1.0
ACCESS_NOTIFICATION_POLICY To enable do-not-disturb at bedtime. v0.16.0
BOOT_COMPLETED To restore active alarms when the device boots. v0.11.0
FOREGROUND_SERVICE To display alarms and notifications. v0.16.0
POWER_OFF_ALARM To wake the device from the power off state. v0.14.0
READ_EXTERNAL_STORAGE To play alarm sounds located on the SD card. v0.11.5, v0.13.8 (api≤18)
REQUEST_IGNORE_BATTERY_OPTIMIZATIONS To help ensure reliable delivery of alarms. v0.14.11
SET_ALARM To interact with the system AlarmClock app. v0.1.0
USE_FULL_SCREEN_INTENT To display alarms over the lock screen. v0.16.0
WRITE_EXTERNAL_STORAGE To export data (places, themes, etc.) to file. v0.2.2 (api≤18)

Version v0.13.8 removed READ_EXTERNAL_STORAGE for api≥19 (replaced with persistent URI permissions).

Version 0.9.* contained the following additional permissions (removed in v0.10.0)...

Permission Version
READ_CALENDAR To interact with the Calendar app (access events). v0.9.0
WRITE_CALENDAR To interact with the Calendar app (add/remove events). v0.9.0
READ_SYNC_STATS To interact with the Calendar app (access custom calendars). v0.9.0
WRITE_SYNC_SETTINGS To interact with the Calendar app (add/remove custom calendars). v0.9.0

Donations

Do you find value in this software? Pay as you feel.

paypal Donate using Liberapay

I want to express my thanks to those who have sent me something. This is greatly appreciated.

Bug Reports

Use the issue tracker to submit a bug report or a feature request.

When reporting a bug please be detailed as possible. What did you expect the app to do, what did you actually observe? Include the app version number in your report. Other useful information includes the Android OS version (and sometimes your specific device model).

Legal Stuff

Copyright © 2014-2024 Forrest Guice

The source code is available under GPLv3 (https://github.com/forrestguice/SuntimesWidget).

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

Icons and images from:

Libraries used:

Project Contributions

German translation by Henrik "HerHde" Hüttemann, Wolkenschieber, xnumad, and CSTRSK.
Polish and Esperanto translations by Verdulo.
French translation by Jej, Aloha, ldmpub, and grenagit.
Hungarian translation by Erci.
Catalan and Spanish translations by Raulvo and gnusuari0.
Basque translation by beriain.
Norwegian translation by FTno.
Italian translation by Matteo Caoduro and GiovaGa.
Traditional Chinese translation by ft42, and James Liu.
Brazilian Portuguese translation by NetoSilva, Nelson A. de Oliveira, and Enrico S. B. Fraletti.
Russian translation by Ruslan Chintsov, and Adelechka.
Dutch translation by Joppla.
Czech translation by utaxiu.
Simplified Chinese translation by James Liu, and sr093906.
Arabic translation by Alelg.

Contributions to the project are welcome.