55 lines
2.1 KiB
Markdown
55 lines
2.1 KiB
Markdown
# e-SUN Android App
|
|
|
|
Native Kotlin + Jetpack Compose app (API 35) that provides a light-therapy style full-screen white display based on Kelvin presets.
|
|
|
|
## First Increment Scope
|
|
- 3 editable temperature presets (default 3000K / 4500K / 6000K)
|
|
- 3 editable timer presets (default 5 / 10 / 30 min)
|
|
- Kelvin-to-RGB approximation for screen color
|
|
- Full-screen Shine mode with:
|
|
- Keep-screen-on
|
|
- Temporary in-app brightness override
|
|
- Controls shown on touch and auto-hidden after 5s
|
|
- Timer end returns to main screen
|
|
- Brightness persistence (default 50% on first launch)
|
|
- Placeholder ad section (`AD HERE`)
|
|
- Unit test coverage for Kelvin conversion output range
|
|
|
|
## BuildTool.sh
|
|
The project intentionally runs builds through `./BuildTool.sh` so local development and CI use the same build path.
|
|
|
|
### Common commands
|
|
```bash
|
|
./BuildTool.sh --setup-only
|
|
./BuildTool.sh --no-commit --apk-only
|
|
./BuildTool.sh --no-commit --with-aab
|
|
```
|
|
|
|
### Behavior
|
|
- `--setup-only`: prepares the local Android SDK/tooling and exits.
|
|
- `--apk-only`: builds the debug APK.
|
|
- `--with-aab`: also builds the release AAB.
|
|
- `--no-commit`: skips the post-build git commit step.
|
|
- Local builds increment `versionCode` and `versionName`.
|
|
- CI can provide `CI_VERSION_CODE` to force the build version code and `CI_ARTIFACT_TIMESTAMP` to control the release AAB filename.
|
|
- Artifacts are copied into `dist/`.
|
|
- Gitea Actions uses this same script instead of duplicating build logic in YAML.
|
|
|
|
## Upload Key (Release Signing)
|
|
For this first increment, release uses default debug signing unless custom signing is added.
|
|
Recommended future setup:
|
|
1. Generate upload key:
|
|
```bash
|
|
keytool -genkeypair -v -keystore upload-keystore.jks -alias upload -keyalg RSA -keysize 2048 -validity 10000
|
|
```
|
|
2. Store credentials in local, untracked file (e.g. `keystore.properties`).
|
|
3. Reference it from `app/build.gradle.kts` signingConfigs.
|
|
4. Extend `BuildTool.sh` to validate presence before release builds.
|
|
|
|
## Logging
|
|
App logs key interactions and state updates through tags:
|
|
- `ESunMainViewModel`
|
|
- `ESunShine`
|
|
|
|
This keeps debugging actionable without excessive noise.
|