Files
e-Sun-Android/README.md
2026-05-04 20:30:54 -05:00

2.0 KiB

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 Gradle with daemon disabled (--no-daemon and org.gradle.daemon=false).

Options

./BuildTool.sh --setup-only
./BuildTool.sh --debug
./BuildTool.sh --release
./BuildTool.sh --all

Behavior

  • --setup-only: prepares wrapper/dependencies without building release artifacts.
  • --debug: increments version code/name, builds debug APK, renames output to include app name and version code.
  • --release: increments version code/name, builds release AAB, renames output similarly.
  • --all: runs debug + release flow in one run.
  • After successful build tasks, script commits all changes with message from commit-message.txt (fallback: No Details) and then clears that file.

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:
    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.