Files
LibreMediaConverter/app
JMR-devandClaude Opus 5 7db320018a Correct the JDK claim and decide the backup rules
D11's documentation and scaffold items, less the one row that belongs to
another change stream.

README's "Requires JDK 17+ (AGP 9 will not run on older)" was wrong twice
over, and `f496291` already corrected the same claim in CLAUDE.md. The floor
is not AGP's, and 17 is not what compiles anything: Gradle 9.7.1's own
`SupportedJavaVersions` carries MINIMUM_CLIENT_JAVA_VERSION = 8 and
MINIMUM_DAEMON_JAVA_VERSION = 17, and this repo then overrides the daemon
upward to 25 in gradle-daemon-jvm.properties. So the honest statement is
that the launcher floor is 8, the daemon is 25 whatever JAVA_HOME says, and
the app's bytecode is 25 -- which is what `./gradlew --version` shows on
this machine right now, launcher 21 against daemon 25.

The data_extraction_rules TODO is filled in rather than deleted, because
`android:allowBackup="true"` makes it a live question and the answer is not
"nothing to say". The app stores nothing of its own -- no settings, no
history -- so WorkManager's queue is the entire backup payload, and
restoring it is wrong rather than merely useless: every row names a
content:// grant and a cacheDir path that do not survive reaching another
device, and cacheDir is not backed up at all. Since `ec969c4` the ViewModel
queries WorkManager by tag on launch, so those rows would not sit inert
either -- a fresh install would come up reattached to a job the user never
ran on it. WorkManager declares no exclusion of its own, so nothing upstream
prevents it.

allowBackup stays true. The decision belongs in the rules file, where it is
per-file and legible to whoever adds real user data later, rather than in an
app-wide switch that would also turn off device-to-device transfer.

Each file is named instead of excluding the "database" domain in one line.
Lint's FullBackupContent detector skips an <exclude> that carries no path
without checking it, so the one-line spelling could have silently protected
nothing; the enumerated paths are ones the gate actually verifies, and they
are present in the built APK's compiled resource.

backup_rules.xml and android:fullBackupContent are deleted rather than
filled in. That attribute is only read on Android 11 and lower and minSdk is
33, so it could never have applied here -- an equally empty template that,
unlike the other one, had no live question behind it.

Not touched: OutputPublisher's hasSpaceFor KDoc, which the audit lists under
D11. That code belongs to a parked branch and another change stream.

The stale com/example/androidmediaconverter package directory needs no
commit: it is empty, and git has never tracked it because git cannot track
an empty directory. Removed from the working copy directly.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-22 19:52:59 -05:00
..
2026-08-19 17:29:15 -05:00