update README
parent
33128af4fc
commit
ae3afb2f03
124
README.md
124
README.md
|
@ -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 [](https://hosted.weblate.org/engage/red-moon/?utm_source=widget)
|
||||
|
||||
Blue light can suppress the production of melatonin, the sleep hormone. Red Moon
|
||||
<!-- [](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 [](https://matrix.to/#/#redmoon:matrix.org),
|
||||
[](https://kiwiirc.com/client/irc.freenode.net/#redmoon),
|
||||
or [](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
|
||||
|
|
|
@ -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 |
|
@ -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 |
|
@ -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 |
Loading…
Reference in New Issue