No description
- Kotlin 99.7%
- Shell 0.2%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
Battery: when the OS Battery Saver is active, cap the wallpaper's active frame rate to 30fps (WeatherWallpaper) via a cached PowerManager flag updated through ACTION_POWER_SAVE_MODE_CHANGED; receiver registered in onCreate and unregistered in onDestroy. Only ever lowers the rate; idle mode still applies its own cap. Perf (visual-neutral, hot path): SimulationController caches the date-based season blend so getEffectiveSeasonBlend no longer allocates two Calendars every frame (recomputes only on local-day rollover or a season setting change); SkyLayer hoists the loop-invariant star radius scale out of the per-star loop; VegetationUtil folds the terrain-noise maxAmp expression and drops a *1.0f no-op. Validated: unit tests + lintDebug SUCCESSFUL; PIT test strength 72% (unchanged). |
||
| .woodpecker | ||
| app | ||
| docs/screenshots | ||
| gradle/wrapper | ||
| scripts | ||
| .editorconfig | ||
| .gitattributes | ||
| .gitignore | ||
| build.gradle.kts | ||
| Dockerfile.build | ||
| gradle.properties | ||
| gradlew | ||
| LICENSE | ||
| README.md | ||
| settings.gradle.kts | ||
WeatherWall
📥 https://git.olli.info/Oliver/WeatherWall/releases/latest
Android live wallpaper with a low-poly procedural landscape, weather effects, seasonal details, and gyroscope-driven parallax.
No analytics. No internet permission.
Screenshots
Features
- Procedural low-poly terrain with layered hills and mountains
- Dynamic sky with sun, moon, stars, and time-of-day lighting
- Weather effects: rain, snow, hail, lightning, clouds
- Seasonal visuals: flowers, mushrooms, autumn leaves, snow, frost
- Seasonal events: Christmas, New Year, St. Patrick's Day
- Trees, bushes, rivers/lakes, animals, and random wildlife events
- Gyroscope-based parallax
- Deterministic world generation from a stable seed
- Configurable density, clustering, parallax, weather, and terrain settings
- Optimized rendering with bitmap caches and zero per-frame allocation design
Build
Requirements:
- Android 8.0+ / API 26+
- JDK 17
- Gradle 8.13+
OR
- Docker
git clone https://git.olli.info/Oliver/WeatherWall.git
cd WeatherWall
./gradlew assembleDebug
adb install app/build/outputs/apk/debug/app-debug.apk
Development
Run unit tests:
./gradlew test
Run lint:
./gradlew lintDebug
Run mutation tests:
./gradlew :app:pitest
Docker
Build the CI image:
docker build -t weatherwall-builder -f Dockerfile.build .
Run tests in Docker:
docker run --rm -v "$PWD":/workspace -w /workspace weatherwall-builder ./gradlew test --no-daemon
Run mutation tests in Docker:
docker run --rm -v "$PWD":/workspace -w /workspace weatherwall-builder ./gradlew :app:pitest --no-daemon