No description
  • Kotlin 99.7%
  • Shell 0.2%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Oliver Großkloß 53955da409
All checks were successful
ci/woodpecker/push/build Pipeline was successful
ci/woodpecker/tag/build Pipeline was successful
feat(power): Battery Saver FPS cap + safe hot-path cleanups (v1.31.23)
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).
2026-07-06 20:51:10 +02:00
.woodpecker
app feat(power): Battery Saver FPS cap + safe hot-path cleanups (v1.31.23) 2026-07-06 20:51:10 +02:00
docs/screenshots
gradle/wrapper
scripts
.editorconfig
.gitattributes
.gitignore v1.31.19: audit-driven safe fixes (audit docs kept local only) 2026-06-17 22:24:38 +02:00
build.gradle.kts
Dockerfile.build
gradle.properties
gradlew
LICENSE
README.md
settings.gradle.kts

WeatherWall

Build Status

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

WeatherWall Logo

Screenshots

Dawn clouds Clear day Snowy day Rainy dusk Night sky

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