update README

pull/193/head
Stephen Michel 2017-09-22 22:31:49 -04:00
parent 33128af4fc
commit ae3afb2f03
4 changed files with 68 additions and 59 deletions

124
README.md
View File

@ -1,100 +1,102 @@
<img align="right" height="256" src="https://lut.im/3IqLwsAZWH/piFLRMOgNLWmiqB8.png">
<img alt="Red Moon Icon" align="right" height="256" src="https://lut.im/3IqLwsAZWH/piFLRMOgNLWmiqB8.png">
# Red Moon [![Translation status](https://hosted.weblate.org/widgets/red-moon/-/svg-badge.svg)](https://hosted.weblate.org/engage/red-moon/?utm_source=widget)
Blue light can suppress the production of melatonin, the sleep hormone. Red Moon
<!-- [![Release](https://img.shields.io/github/release/qubyte/rubidium.svg)](https://github.com/raatmarien/red-moon/releases) -->
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. It is simple and flexible:
use your phone comfortably at night.
* Schedule Red Moon to run from sunset to sunrise, or at custom times.
* Highly customizable color profiles with defaults that cover most use cases.
* Quickly start, stop, and switch filters via notification, tile (Android 7.0+), or widget.
[<img src="https://gitlab.com/fdroid/artwork/raw/master/badge/get-it-on.png"
alt="Get it on F-Droid"
height="80">](https://f-droid.org/repository/browse/?fdid=com.jmstudios.redmoon)
[<img src="https://play.google.com/intl/en_us/badges/images/generic/en_badge_web_generic.png"
alt="Download from Google Play"
alt="Download from Google Play"
height="80">](https://play.google.com/store/apps/details?id=com.jmstudios.redmoon)
[<img src="art/direct-download.png"
alt="Direct download"
alt="Direct download"
height="80">](https://github.com/raatmarien/red-moon/releases)
* Set the timer to automatically turn on at night, or at custom times.
* Use the default filters, or fine-tune your own with separate color, intensity and dim levels.
* The notification, tile (Android 7.0+), and widget let you start, stop, and switch filters without opening the app.
## Join the community
## Get involved
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:
<a href="https://hosted.weblate.org/engage/red-moon/?utm_source=widget">
<img align="right" src="https://hosted.weblate.org/widgets/red-moon/-/multi-auto.svg" alt="Translation status" />
- Read through the [issues] and give a <g-emoji alias="+1" class="emoji" fallback-src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f44d.png" ios-version="6.0">👍</g-emoji> to the ones you care about most.
- Share opinions and ideas on issues tagged [`feedback wanted`] or [`needs design`].
- Try to find steps to trigger bugs tagged [`can't reproduce`].
- Android developers: some issues [`need technical info`].
- Open [new issues] with feedback, feature requests, or bug reports.
- Help translate using [Weblate].
- Join the chat at [![Matrix](art/badge_matrix.svg)](https://matrix.to/#/#redmoon:matrix.org),
[![IRC](art/badge_irc.svg)](https://kiwiirc.com/client/irc.freenode.net/#redmoon),
or [![Gitter](art/badge_gitter.svg)](https://gitter.im/LibreShift/red-moon)
## Screenshots & translation stats
<a href="https://hosted.weblate.org/engage/red-moon/en/?utm_source=widget">
<img src="https://hosted.weblate.org/widgets/red-moon/en/strings/multi-auto.svg" alt="Translation status" align="right" height="650" />
</a>
*All help is equally welcome!*
The easiest way is to **report bugs** and **give feedback** in an
[issue] or the #redmoon chat room on [irc] (freenode) or [matrix].
[Weblate] is the simplest way for most people to **translate**. It's entirely in
your browser, and your changes will be automatically merged. If you'd prefer
to make a pull request, please keep code and translations in separate PRs.
> **Most strings will only be used in one place.**
> This way, if you want to tweak the phrasing in one particular place, you don't
> need to worry about accidentally changing another place in the app.
PRs for issues tagged with [`bug`] or [`patches welcome`] are welcome at any time.
Otherwise, please [open a new issue] or comment on the existing one first. We don't
want to waste your time on something we might not merge! We have some loose coding
style guidelines [below](#coding-style).
## Screenshots
<img src="https://lut.im/uMUMujZSZU/rfHRfhIrDnDznetz.png" width="180" height="320" /> <img src="https://lut.im/nZBsmMs4KI/RutzvgfCCPSR2vDd.png" width="180" height="320" />
<img src="https://lut.im/MxfTcNiz5b/xhJDuKvyxEOJlc39.png" width="180" height="320" />
<img src="https://lut.im/t3Ll6xBLle/XrhZCJmIcggRHeHf.png" width="180" height="320" />
<img src="https://lut.im/O5bUIZVPDR/ddcBY3akDK6Sq1zU.png" width="180" height="320" />
<img src="https://lut.im/O5bUIZVPDR/ddcBY3akDK6Sq1zU.png" width="180" height="320" /> <img src="https://lut.im/uMUMujZSZU/rfHRfhIrDnDznetz.png" width="180" height="320" />
<img src="https://lut.im/0YrVNYZbj2/lr0SDpIqy7jlpg13.png" width="180" height="320" />
<img src="https://lut.im/LPf77AuSRG/MsJbEeHXHxyQ7XSf.png" width="180" height="320" />
<img src="https://lut.im/7eRSVHlsoS/2OJNIqCG3NQTExZI.png" width="180" height="320" />
## Building
Screenshots are slightly out of date.
To build the app on GNU+Linux, clone the repository and run
## Development
### Building
To build the app on GNU+Linux, clone the repository, then, from the root directory, run
`./gradlew build`
in the root directory.
To install the app on a connected device or running emulator, run
`./gradlew installFdroidDebug` or `./gradlew installPlaystoreDebug`
### Coding Style
### Pull requests
**Prioritize legibility over dogmatism.** That said, consistency is nice, so here's a short list of what I've been doing.
- 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 normally; 8 spaces if a variable assignment needs to wrap.
- Constants use `ALL_CAPS`, persistent vars use `mCamelCase`, everything else uses `camelCase`.
- Form suggests function: Group and align similar actions, and *don't* do that for dissimmilar ones, even if you could.
- 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 brackets with `if`, with one exception: one-liners with an `else` branch (`x = if (p) q else r`)
- note: I (@smichel17) used to prefer omitting parenthesis from one-liners; some code still uses that style.
- Don't omit the curly braces from `if` statements except short variable assignment (`val x = if (a) b else c`)
Again, **prioritize legibility over dogmatism.**
## License
### License
[<img src="https://www.gnu.org/graphics/gplv3-127x51.png"
align="right"
alt="GNU GPLv3 Image">](http://www.gnu.org/licenses/gpl-3.0.en.html)
"Red Moon" is a derivative of
"[Shades](https://github.com/cngu/shades)" by
[Chris Nguyen](https://github.com/cngu) used under the
[MIT License](https://github.com/cngu/shades/blob/e240edc1df3e6dd319cd475a739570ff8367d7f8/LICENSE). "Red
Moon" is licensed under the
*Red Moon* is a derivative of *[Shades](https://github.com/cngu/shades)* by
[Chris Nguyen](https://github.com/cngu), used under the
[MIT License](https://github.com/cngu/shades/blob/e240edc1df3e6dd319cd475a739570ff8367d7f8/LICENSE).
*Red Moon* is licensed under the
[GNU General Public License version 3](https://www.gnu.org/licenses/gpl-3.0.html),
or (at your option) any later version by [the contributors](https://github.com/raatmarien/red-moon/graphs/contributors).
or (at your option) any later version by
[the contributors](https://github.com/raatmarien/red-moon/graphs/contributors).
All used artwork is released into the public domain. Some of the icons
use cliparts from [openclipart.org](https://openclipart.org/), which
@ -110,10 +112,14 @@ are all released in the public domain, namely:
\* Google Play and the Google Play logo are trademarks of Google Inc.
[`patches welcome`]: https://github.com/raatmarien/red-moon/issues?q=is%3Aissue+is%3Aopen+label%3A%22patches+welcome%22
[irc]: https://kiwiirc.com/client/irc.freenode.net/#redmoon
[gitter]: https://gitter.im/LibreShift/red-moon
[matrix]: https://matrix.to/#/#redmoon:matrix.org
[issue]: https://github.com/raatmarien/red-moon/issues
[open a new issue]: https://github.com/raatmarien/red-moon/issues/new
[`bug`]: https://github.com/raatmarien/red-moon/issues?q=is%3Aissue+is%3Aopen+label%3Abug
[issues]: https://github.com/raatmarien/red-moon/issues
[new issues]: https://github.com/raatmarien/red-moon/issues/new
[Weblate]: https://hosted.weblate.org/projects/red-moon/strings/
[labels]: https://github.com/LibreShift/red-moon/labels
[`feedback wanted`]: https://github.com/LibreShift/red-moon/labels/feedback%20wanted
[`needs design`]: https://github.com/LibreShift/red-moon/labels/needs%20design
[`can't reproduce`]: https://github.com/LibreShift/red-moon/labels/can%27t%20reproduce
[`need technical info`]: https://github.com/LibreShift/red-moon/labels/needs%20technical%20info

1
art/badge_gitter.svg Normal file
View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="102" height="20"><linearGradient id="b" x2="0" y2="100%"><stop offset="0" stop-color="#bbb" stop-opacity=".1"/><stop offset="1" stop-opacity=".1"/></linearGradient><clipPath id="a"><rect width="102" height="20" rx="3" fill="#fff"/></clipPath><g clip-path="url(#a)"><path fill="#555" d="M0 0h45v20H0z"/><path fill="#4c1" d="M45 0h57v20H45z"/><path fill="url(#b)" d="M0 0h102v20H0z"/></g><g fill="#fff" text-anchor="middle" font-family="DejaVu Sans,Verdana,Geneva,sans-serif" font-size="11"><image x="5" y="3" width="9" height="14" xlink:href="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI3IiBoZWlnaHQ9IjE0Ij4KICA8ZyBmaWxsPScjZmZmJz4KICAgIDxyZWN0IHg9IjAiIHk9IjMiIHdpZHRoPSIxIiBoZWlnaHQ9IjUiLz4KICAgIDxyZWN0IHg9IjIiIHk9IjQiIHdpZHRoPSIxIiBoZWlnaHQ9IjciLz4KICAgIDxyZWN0IHg9IjQiIHk9IjQiIHdpZHRoPSIxIiBoZWlnaHQ9IjciLz4KICAgIDxyZWN0IHg9IjYiIHk9IjQiIHdpZHRoPSIxIiBoZWlnaHQ9IjQiLz4KICA8L2c+Cjwvc3ZnPgo="/><text x="28.5" y="15" fill="#010101" fill-opacity=".3">gitter</text><text x="28.5" y="14">gitter</text><text x="72.5" y="15" fill="#010101" fill-opacity=".3">LibreShift/red-moon</text><text x="72.5" y="14">LibreShift/red-moon</text></g></svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

1
art/badge_irc.svg Normal file
View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="178" height="20"><linearGradient id="b" x2="0" y2="100%"><stop offset="0" stop-color="#bbb" stop-opacity=".1"/><stop offset="1" stop-opacity=".1"/></linearGradient><clipPath id="a"><rect width="178" height="20" rx="3" fill="#fff"/></clipPath><g clip-path="url(#a)"><path fill="#555" d="M0 0h109v20H0z"/><path fill="#4c1" d="M109 0h69v20H109z"/><path fill="url(#b)" d="M0 0h178v20H0z"/></g><g fill="#fff" text-anchor="middle" font-family="DejaVu Sans,Verdana,Geneva,sans-serif" font-size="11"><text x="54.5" y="15" fill="#010101" fill-opacity=".3">chat.freenode.net</text><text x="54.5" y="14">chat.freenode.net</text><text x="142.5" y="15" fill="#010101" fill-opacity=".3">#redmoon</text><text x="142.5" y="14">#redmoon</text></g></svg>

After

Width:  |  Height:  |  Size: 826 B

1
art/badge_matrix.svg Normal file
View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="162" height="20"><linearGradient id="b" x2="0" y2="100%"><stop offset="0" stop-color="#bbb" stop-opacity=".1"/><stop offset="1" stop-opacity=".1"/></linearGradient><clipPath id="a"><rect width="162" height="20" rx="3" fill="#fff"/></clipPath><g clip-path="url(#a)"><path fill="#555" d="M0 0h93v20H0z"/><path fill="#4c1" d="M93 0h69v20H93z"/><path fill="url(#b)" d="M0 0h162v20H0z"/></g><g fill="#fff" text-anchor="middle" font-family="DejaVu Sans,Verdana,Geneva,sans-serif" font-size="11"><text x="46.5" y="15" fill="#010101" fill-opacity=".3">[m] matrix.org</text><text x="46.5" y="14">[m] matrix.org</text><text x="126.5" y="15" fill="#010101" fill-opacity=".3">#redmoon</text><text x="126.5" y="14">#redmoon</text></g></svg>

After

Width:  |  Height:  |  Size: 817 B