Initial commit: Foto Dup Finder 1.0.1
An Android duplicate-photo finder. Pure-Kotlin core (SHA-256 + dHash hashing, exact and perceptual union-find grouping, three sensitivity presets) with MediaStore access, a persistent SQLite hash index and a tiered ScanEngine behind a Jetpack Compose UI. No INTERNET permission, no ads, no analytics, no account. Ships versionCode 2 / versionName 1.0.1, carrying the scan-stall hardening (BoundedCall breaker) and verified against a 5,363-photo device library. 80 JVM unit tests, lint clean. Release paperwork is in docs/ (Play checklist, store listing, edge-case testing), the upload-ready Play graphics and screenshots in store-assets/, and the generators for those assets in tools/.
This commit is contained in:
Executable
+41
@@ -0,0 +1,41 @@
|
||||
#!/usr/bin/env bash
|
||||
#
|
||||
# Generates the Google Play store graphics from the app's own icon vectors.
|
||||
#
|
||||
# ./tools/make-store-assets.sh [output-dir] # default: ./store-assets
|
||||
#
|
||||
# Produces, matching Play's asset specs (support.google.com/.../answer/9866151):
|
||||
# icon-512.png 512 x 512 32-bit PNG *with* alpha (ours is full-bleed,
|
||||
# so every pixel ends up opaque anyway)
|
||||
# feature-graphic-1024x500.png 1024 x 500 24-bit PNG, no alpha
|
||||
#
|
||||
# Output lands in ./store-assets/ *inside* the repo, never in $HOME: the editable sources are
|
||||
# the SVGs in tools/store-assets/ and these PNGs are the files that get uploaded to the Play
|
||||
# Console, so they belong with the release they were made for. Pass a directory to override.
|
||||
set -euo pipefail
|
||||
|
||||
here="$(cd "$(dirname "$0")" && pwd)"
|
||||
repo="$(dirname "$here")"
|
||||
out="${1:-$repo/store-assets}"
|
||||
mkdir -p "$out"
|
||||
|
||||
render() { # <svg> <width> <height> <filename> <keep-alpha|flatten>
|
||||
local svg="$1" width="$2" height="$3" name="$4" mode="$5"
|
||||
inkscape "$svg" \
|
||||
--export-type=png --export-width="$width" --export-height="$height" \
|
||||
--export-filename="$out/$name" >/dev/null 2>&1
|
||||
if [ "$mode" = keep-alpha ]; then
|
||||
# Play asks for a 32-bit PNG here. The SVG's background rect covers the whole
|
||||
# canvas, so the alpha channel is fully opaque — no accidental transparency.
|
||||
magick "$out/$name" -alpha on PNG32:"$out/$name"
|
||||
else
|
||||
magick "$out/$name" -background '#1B5E20' -alpha remove -alpha off PNG24:"$out/$name"
|
||||
fi
|
||||
printf ' %s ' "$out/$name"
|
||||
identify -format '%wx%h %[channels] %b\n' "$out/$name"
|
||||
}
|
||||
|
||||
echo "Writing store assets to $out"
|
||||
render "$here/store-assets/icon.svg" 512 512 icon-512.png keep-alpha
|
||||
render "$here/store-assets/feature-graphic.svg" 1024 500 feature-graphic-1024x500.png flatten
|
||||
echo "Done. Screenshots: ./tools/make-store-screenshots.sh # reads store-assets/raw-screenshots/"
|
||||
Reference in New Issue
Block a user