/red-moon

Android screen filter app for night time phone use.

Primary LanguageKotlinGNU General Public License v3.0GPL-3.0

Red Moon Translation status License Commits (since latest release)

Blue light may suppress the production of melatonin, the sleep hormone. Red Moon filters out blue light and dims your screen below the normal minimum, so you can use your phone comfortably at night.

  • Schedule Red Moon to run from sunset to sunrise, or at custom times.
  • Use the default color profiles, or set custom color, intensity, and dim levels.
  • Automatically pause in apps secured against overlays, or those you choose.
  • Quickly start, stop, and switch profiles via notification, tile (Android 7.0+), or widget.

Get it on F-Droid Download from Google Play Direct download

Do your part — participate in the community

Communities keep software projects alive. Without them, projects usually fade into obscurity when the primary developer loses interest or becomes busy in other parts of their life. That's where you come in! You can:

  • Read through the issues and give a 👍 to the ones you care about most.
  • Open new issues with feedback, feature requests, or bug reports.
  • Help translate using Weblate.
  • Come chat at Matrix, IRC, or Gitter
Translation status

Looking for co-maintainers

Red Moon is still maintained, and I have no plans to change that. I would actually like to do more development and get Red Moon feature-complete. However, it is hard for me to get motivated to do that when I'm the only developer (especially when there are other projects I'm involved in that do have others working on them).

If you're interested in becoming a co-maintainer, I'm willing to spend time walking you through the code base.

Screenshots

Screenshots are slightly out of date.

Development Build Status

Building

To build the app on GNU+Linux, clone the repository, then, from the root directory, run

./gradlew build

To install the app on a connected device or running emulator, run

./gradlew installDebug

Pull requests

  • We're happy to answer questions if you reach out via an issue, the chat room(s), or email.
  • If your change makes the UI more complicated, we suggest checking if we're interested before you implement it.
  • Please keep code and translations in separate PRs.

Style

Prioritize legibility over dogmatism. That said, consistency is nice, so here's a short list of what I've been doing.

  • 100 characters per line; 80 if you can.
  • Indent 4 spaces, or 8 spaces if the previous line ends with =.
  • CONSTANTS and ENUMS use all caps, variableNames use camelCase.
  • Form suggests function: Group and align similar actions, and don't align dissimmilar ones, even if you could.
  • Good comments explain why something is done; if you find yourself describing what the code does, consider:
    • Refactoring into smaller functions with descriptive names
    • Converting comments to logs. Code that requires comments probably also requires good logs to debug.
  • Always use curly braces with if (except short val/var one-liners: val x = if (a) b else c)

License

GNU GPLv3 Image

Red Moon is licensed under the GNU General Public License version 3 or (at your option) any later version by the contributors. It is a derivative of Shades by Chris Nguyen, used under the MIT License.

All used artwork is released into the public domain. Some of the icons use cliparts from openclipart.org, which are all released in the public domain, namely:


* Google Play and the Google Play logo are trademarks of Google Inc.