Files
Kurt Himebauch 430af5e22d feat: desktop and scrolling wall live wallpapers (#2012)
* feat: desktop and scrolling wall live wallpapers selectable from Android settings

* fix: render the wall wallpaper off the main thread and give it its own thumbnail

* fix: serialize wall wallpaper visibility and wait out in-flight draws on surface destroy

* fix: restart the wall loop on surface recreation and keep queued visibility changes

* fix: keep the wall loop alive across a failed canvas lock and finish redraws before returning

* fix: post the wall redraw asynchronously on surface change

* fix: redraw the desktop wallpaper logo from the real mark and show game covers on the wall

* chore: mount the git dir in build containers and seed new worktrees from the main checkout

* fix: decode wall covers as RGB_565 and seed worktree assets only into empty dirs

* feat: drop the desktop wallpaper and add frame rate and speed settings to the wall

* feat: wall settings over the live wallpaper with a match-screen rate, and drop the center vignette

* perf: pace the wall on vsync and draw it on a hardware canvas

* fix: stage worktree seed copies and publish them only after they succeed

* fix: point the wall settings link at the activity class so the picker shows the gear

* fix: dedupe wall covers by app and space repeats like the in-app wall, keep the frame loop alive across surface gaps

* fix: show the picker preview behind wall settings and drop the display-rate lookup

* fix: stop wall frame callbacks when the surface goes and only replace an empty seed destination

* fix: skip a seed when the destination reappears before the staged copy is moved in
2026-11-04 11:38:54 -05:00

34 lines
1.6 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
repo_root=$(CDPATH= cd -- "$(dirname -- "${BASH_SOURCE[0]}")/.." && pwd)
cd "${repo_root}"
"${repo_root}/tools/seed_worktree.sh"
sdk_dir=${ANDROID_HOME:-${ANDROID_SDK_ROOT:-"${HOME}/Library/Android/sdk"}}
export ANDROID_HOME=${sdk_dir} ANDROID_SDK_ROOT=${sdk_dir}
export JAVA_HOME=${JAVA_HOME:-/opt/homebrew/opt/openjdk@17/libexec/openjdk.jdk/Contents/Home}
out=${1:-"${TMPDIR:-/tmp}/droiddeck-quick-signed.apk"}
signing_env=${DROIDDECK_SIGNING_ENV:-}
if [[ -z "${signing_env}" ]]; then
for candidate in "${repo_root}/.signing.env" \
"$(dirname "$(git -C "${repo_root}" rev-parse --path-format=absolute --git-common-dir 2>/dev/null || echo .)")/.signing.env"; do
[[ -f "${candidate}" ]] && { signing_env=${candidate}; break; }
done
fi
[[ -f "${signing_env}" ]] || { echo "No signing env found; set DROIDDECK_SIGNING_ENV or add .signing.env." >&2; exit 1; }
build_tools=
while IFS= read -r dir; do
[[ -x "${dir}/aapt" && -x "${dir}/zipalign" && -x "${dir}/apksigner" ]] && { build_tools=${dir}; break; }
done < <(ls -d "${sdk_dir}"/build-tools/* 2>/dev/null | sort -rV)
[[ -n "${build_tools}" ]] || { echo "No build-tools with aapt, zipalign and apksigner under ${sdk_dir}." >&2; exit 1; }
./gradlew -q -PallowStaleRuntime=true :app:assembleRelease
(
cd "$(dirname "${signing_env}")"
set -a; . "${signing_env}"; set +a
BUILD_TOOLS=${build_tools} "${repo_root}/tools/release/sign-apk.sh" \
"${repo_root}/app/build/outputs/apk/release/app-release.apk" standard "${out}" | tail -1
)
"${repo_root}/tools/deploy_local.sh" "${out}" | tail -2