Repository navigation
Feature/sta 227 - #946
Open
HughG wants to merge 96 commits into
Open
Feature/sta 227#946HughG wants to merge 96 commits into
HughG wants to merge 96 commits into
Conversation
Currently translated at 2.7% (2 of 73 strings) Translation: Soundscape Android/Android Help Pages Translate-URL: https://hosted.weblate.org/projects/soundscape-android/android-help-pages/en_GB/
…Mrardown and a translation, to see how it appears in Weblate.
Updated by "Cleanup translation files" add-on in Weblate. Translation: Soundscape Android/Android Help Pages Translate-URL: https://hosted.weblate.org/projects/soundscape-android/android-help-pages/
Reading the generated baselines files from the device with adb fails because "/data/data/org/scottishtecharmy.soundscape" isn't world-readable, only world-traversable. Making sub-dirs world-read/-traverse doesn't help.
Read the expected baselines from the correct place.
Got one test working. The copying of new/different results out from the emulated device is still not working, though ChatGPT has another idea.
Tried this to copy to emulated SD card, but that doesn't work on recent Android SDKs. ChatGPT's next suggestion was to gather all the results to a TAR file on the Android side and stream it out via adb, but I think I can just get the test to write diffs to the Gradle build folder directly, instead of to the Android filesystem.
Finally got one regression test working. I learned that the tests are running entirely on the device, so have no access to the host filesystem, only to assets built into the test APK. So, I had to use the TAR approach.
build.gradle.kts * Make the pull & extract step run automatically with tests, and clean up the temp TAR file. ComposeSnapshotTestUtils.kt * Dump out all the modifiers as well as bounds (but stripping object IDs). * Compare baseline and snapshot ignoring line endings, which may differ if the host is Windows. menu_help_and_tutorials.txt * Add back the regression file, with object details.
build.gradle.kts * Make the pull & extract step run automatically with tests, and clean up the temp TAR file. ComposeSnapshotTestUtils.kt * Dump out all the modifiers as well as bounds (but stripping object IDs). * Compare baseline and snapshot ignoring line endings, which may differ if the host is Windows. menu_help_and_tutorials.txt * Add back the regression file, with object details.
HelpScreenRegressionTest.kt * Use existing AndroidX utility for escaping strings for filenames. * Temporarily paste in the list of help sections, before converting to test parameters.
ComposeSnapshotTestUtils.kt Help and Tutorials.txt * More ID-stripping to avoid irrelevant diffs. HelpScreenRegressionTest.kt * Parameterised for main pages, but not FAQs yet.
HelpScreenRegressionTest.kt * Parameterised for FAQs as well.
Just the very start, mostly "TODO" comments.
It's producing a slightly different layout and I'm not sure why, so I'm trying to capture and log the structure as the composables are called (with the help of Gemini Agent). First I need to ignore the "$<N>" names of nested lambda classes in the diffs
Hopefully, once I switch the "Help and Tutorials" screen over to MarkdownHelpScreen I'll now be able to figure out what's really changed about the structure, without all the Anrdoid UI class details obscuring it ... unless the difference is in those details :-\
- Ignore depth of nested lambdas. - Ignore main class renaming.
…ests, for faster feedback. (Mostly by Gemini 3 Flash. Doesn't quite build yet.)
(Again, by Gemini 3 Flash. Still doesn't quite build :-\)
Needs you to compile with JDK 19 as in GitHub, or at least not one so new that the testFixtures plugin won't recognise it, such as JDK 25. The tests don't run due to fmod not being loaded in the test context, so that's next to fix.
Suggested by Gemini 3 Flash. Doesn't work because the log order is different when the layout is non-lazy, but worth committing this change to keep for now.
…use nightlyUnitTest to be configured before the testDebugUnitTest tasks are ready.
… with newer Gradle. The tests still don't pass, though. The baselines aren't being found, and in any case the help screens don't appear in the app -- just a black background with some error message.
I should have done this way back in b93363c when I moved them.
This is needed because the merge moved the Markdown help code/tests from using PreferenceManager to PreferenceProvider.
…ound on classpath This is for Markdown help regression test files, which need to also be available as assets for test reasons.
…merge (for multiple paragraphs).
They've changed too much in recent Android SDK versions to be worth comparing.
…and delete the old).
I checked these ones and they all look reasonable - minor structure, wording, and bounds changes. A few need a more careful look.
Two pages had been renamed. "page_Using Media Controls.txt" is actually fine, I think: the difference is because the cross-platform Markdown layout process produces larger gaps between paragraphs, so the "Next" and "Previous" media control descriptions are off the bottom of the emulated screen. If I look at the page manually in the emulator, it's fine when I scroll it up.
# Conflicts: # app/src/main/assets/help/en/help-about-soundscape.pa.md # app/src/main/assets/help/en/help-ahead-of-me.pa.md # app/src/main/assets/help/en/help-around-me.pa.md # app/src/main/assets/help/en/help-audio-beacon.pa.md # app/src/main/assets/help/en/help-automatic-callouts.pa.md # app/src/main/assets/help/en/help-creating-markers.ar.md # app/src/main/assets/help/en/help-creating-markers.bg.md # app/src/main/assets/help/en/help-creating-markers.bn.md # app/src/main/assets/help/en/help-creating-markers.ca.md # app/src/main/assets/help/en/help-creating-markers.cs.md # app/src/main/assets/help/en/help-creating-markers.da.md # app/src/main/assets/help/en/help-creating-markers.de.md # app/src/main/assets/help/en/help-creating-markers.el.md # app/src/main/assets/help/en/help-creating-markers.en-GB.md # app/src/main/assets/help/en/help-creating-markers.es.md # app/src/main/assets/help/en/help-creating-markers.et.md # app/src/main/assets/help/en/help-creating-markers.fa.md # app/src/main/assets/help/en/help-creating-markers.fi.md # app/src/main/assets/help/en/help-creating-markers.fr-CA.md # app/src/main/assets/help/en/help-creating-markers.fr.md # app/src/main/assets/help/en/help-creating-markers.ha.md # app/src/main/assets/help/en/help-creating-markers.hi.md # app/src/main/assets/help/en/help-creating-markers.hr.md # app/src/main/assets/help/en/help-creating-markers.hu.md # app/src/main/assets/help/en/help-creating-markers.id.md # app/src/main/assets/help/en/help-creating-markers.is.md # app/src/main/assets/help/en/help-creating-markers.it.md # app/src/main/assets/help/en/help-creating-markers.ja.md # app/src/main/assets/help/en/help-creating-markers.ko.md # app/src/main/assets/help/en/help-creating-markers.md # app/src/main/assets/help/en/help-creating-markers.mr.md # app/src/main/assets/help/en/help-creating-markers.nb.md # app/src/main/assets/help/en/help-creating-markers.nl.md # app/src/main/assets/help/en/help-creating-markers.pl.md # app/src/main/assets/help/en/help-creating-markers.pt-BR.md # app/src/main/assets/help/en/help-creating-markers.pt.md # app/src/main/assets/help/en/help-creating-markers.ro.md # app/src/main/assets/help/en/help-creating-markers.ru.md # app/src/main/assets/help/en/help-creating-markers.sk.md # app/src/main/assets/help/en/help-creating-markers.sl.md # app/src/main/assets/help/en/help-creating-markers.sr.md # app/src/main/assets/help/en/help-creating-markers.sv.md # app/src/main/assets/help/en/help-creating-markers.sw.md # app/src/main/assets/help/en/help-creating-markers.ta.md # app/src/main/assets/help/en/help-creating-markers.te.md # app/src/main/assets/help/en/help-creating-markers.th.md # app/src/main/assets/help/en/help-creating-markers.tr.md # app/src/main/assets/help/en/help-creating-markers.uk.md # app/src/main/assets/help/en/help-creating-markers.ur.md # app/src/main/assets/help/en/help-creating-markers.vi.md # app/src/main/assets/help/en/help-creating-markers.zh-CN.md # app/src/main/assets/help/en/help-customizing-markers.ar.md # app/src/main/assets/help/en/help-customizing-markers.bg.md # app/src/main/assets/help/en/help-customizing-markers.bn.md # app/src/main/assets/help/en/help-customizing-markers.ca.md # app/src/main/assets/help/en/help-customizing-markers.cs.md # app/src/main/assets/help/en/help-customizing-markers.da.md # app/src/main/assets/help/en/help-customizing-markers.de.md # app/src/main/assets/help/en/help-customizing-markers.el.md # app/src/main/assets/help/en/help-customizing-markers.en-GB.md # app/src/main/assets/help/en/help-customizing-markers.es.md # app/src/main/assets/help/en/help-customizing-markers.et.md # app/src/main/assets/help/en/help-customizing-markers.fa.md # app/src/main/assets/help/en/help-customizing-markers.fi.md # app/src/main/assets/help/en/help-customizing-markers.fr-CA.md # app/src/main/assets/help/en/help-customizing-markers.fr.md # app/src/main/assets/help/en/help-customizing-markers.ha.md # app/src/main/assets/help/en/help-customizing-markers.hi.md # app/src/main/assets/help/en/help-customizing-markers.hr.md # app/src/main/assets/help/en/help-customizing-markers.hu.md # app/src/main/assets/help/en/help-customizing-markers.id.md # app/src/main/assets/help/en/help-customizing-markers.is.md # app/src/main/assets/help/en/help-customizing-markers.it.md # app/src/main/assets/help/en/help-customizing-markers.ja.md # app/src/main/assets/help/en/help-customizing-markers.ko.md # app/src/main/assets/help/en/help-customizing-markers.md # app/src/main/assets/help/en/help-customizing-markers.mr.md # app/src/main/assets/help/en/help-customizing-markers.nb.md # app/src/main/assets/help/en/help-customizing-markers.nl.md # app/src/main/assets/help/en/help-customizing-markers.pl.md # app/src/main/assets/help/en/help-customizing-markers.pt-BR.md # app/src/main/assets/help/en/help-customizing-markers.pt.md # app/src/main/assets/help/en/help-customizing-markers.ro.md # app/src/main/assets/help/en/help-customizing-markers.ru.md # app/src/main/assets/help/en/help-customizing-markers.sk.md # app/src/main/assets/help/en/help-customizing-markers.sl.md # app/src/main/assets/help/en/help-customizing-markers.sr.md # app/src/main/assets/help/en/help-customizing-markers.sv.md # app/src/main/assets/help/en/help-customizing-markers.sw.md # app/src/main/assets/help/en/help-customizing-markers.ta.md # app/src/main/assets/help/en/help-customizing-markers.te.md # app/src/main/assets/help/en/help-customizing-markers.th.md # app/src/main/assets/help/en/help-customizing-markers.tr.md # app/src/main/assets/help/en/help-customizing-markers.uk.md # app/src/main/assets/help/en/help-customizing-markers.ur.md # app/src/main/assets/help/en/help-customizing-markers.vi.md # app/src/main/assets/help/en/help-customizing-markers.zh-CN.md # app/src/main/assets/help/en/help-frequently-asked-questions.pa.md # app/src/main/assets/help/en/help-gps-accuracy.ar.md # app/src/main/assets/help/en/help-gps-accuracy.bg.md # app/src/main/assets/help/en/help-gps-accuracy.bn.md # app/src/main/assets/help/en/help-gps-accuracy.ca.md # app/src/main/assets/help/en/help-gps-accuracy.cs.md # app/src/main/assets/help/en/help-gps-accuracy.da.md # app/src/main/assets/help/en/help-gps-accuracy.de.md # app/src/main/assets/help/en/help-gps-accuracy.el.md # app/src/main/assets/help/en/help-gps-accuracy.en-GB.md # app/src/main/assets/help/en/help-gps-accuracy.es.md # app/src/main/assets/help/en/help-gps-accuracy.et.md # app/src/main/assets/help/en/help-gps-accuracy.fa.md # app/src/main/assets/help/en/help-gps-accuracy.fi.md # app/src/main/assets/help/en/help-gps-accuracy.fr-CA.md # app/src/main/assets/help/en/help-gps-accuracy.fr.md # app/src/main/assets/help/en/help-gps-accuracy.ha.md # app/src/main/assets/help/en/help-gps-accuracy.hi.md # app/src/main/assets/help/en/help-gps-accuracy.hr.md # app/src/main/assets/help/en/help-gps-accuracy.hu.md # app/src/main/assets/help/en/help-gps-accuracy.id.md # app/src/main/assets/help/en/help-gps-accuracy.is.md # app/src/main/assets/help/en/help-gps-accuracy.it.md # app/src/main/assets/help/en/help-gps-accuracy.ja.md # app/src/main/assets/help/en/help-gps-accuracy.ko.md # app/src/main/assets/help/en/help-gps-accuracy.md # app/src/main/assets/help/en/help-gps-accuracy.mr.md # app/src/main/assets/help/en/help-gps-accuracy.nb.md # app/src/main/assets/help/en/help-gps-accuracy.nl.md # app/src/main/assets/help/en/help-gps-accuracy.pa.md # app/src/main/assets/help/en/help-gps-accuracy.pl.md # app/src/main/assets/help/en/help-gps-accuracy.pt-BR.md # app/src/main/assets/help/en/help-gps-accuracy.pt.md # app/src/main/assets/help/en/help-gps-accuracy.ro.md # app/src/main/assets/help/en/help-gps-accuracy.ru.md # app/src/main/assets/help/en/help-gps-accuracy.sk.md # app/src/main/assets/help/en/help-gps-accuracy.sl.md # app/src/main/assets/help/en/help-gps-accuracy.sr.md # app/src/main/assets/help/en/help-gps-accuracy.sv.md # app/src/main/assets/help/en/help-gps-accuracy.sw.md # app/src/main/assets/help/en/help-gps-accuracy.ta.md # app/src/main/assets/help/en/help-gps-accuracy.te.md # app/src/main/assets/help/en/help-gps-accuracy.th.md # app/src/main/assets/help/en/help-gps-accuracy.tr.md # app/src/main/assets/help/en/help-gps-accuracy.uk.md # app/src/main/assets/help/en/help-gps-accuracy.ur.md # app/src/main/assets/help/en/help-gps-accuracy.vi.md # app/src/main/assets/help/en/help-gps-accuracy.zh-CN.md # app/src/main/assets/help/en/help-how-soundscape-works.ar.md # app/src/main/assets/help/en/help-how-soundscape-works.bg.md # app/src/main/assets/help/en/help-how-soundscape-works.bn.md # app/src/main/assets/help/en/help-how-soundscape-works.ca.md # app/src/main/assets/help/en/help-how-soundscape-works.cs.md # app/src/main/assets/help/en/help-how-soundscape-works.da.md # app/src/main/assets/help/en/help-how-soundscape-works.de.md # app/src/main/assets/help/en/help-how-soundscape-works.el.md # app/src/main/assets/help/en/help-how-soundscape-works.en-GB.md # app/src/main/assets/help/en/help-how-soundscape-works.es.md # app/src/main/assets/help/en/help-how-soundscape-works.et.md # app/src/main/assets/help/en/help-how-soundscape-works.fa.md # app/src/main/assets/help/en/help-how-soundscape-works.fi.md # app/src/main/assets/help/en/help-how-soundscape-works.fr-CA.md # app/src/main/assets/help/en/help-how-soundscape-works.fr.md # app/src/main/assets/help/en/help-how-soundscape-works.ha.md # app/src/main/assets/help/en/help-how-soundscape-works.hi.md # app/src/main/assets/help/en/help-how-soundscape-works.hr.md # app/src/main/assets/help/en/help-how-soundscape-works.hu.md # app/src/main/assets/help/en/help-how-soundscape-works.id.md # app/src/main/assets/help/en/help-how-soundscape-works.is.md # app/src/main/assets/help/en/help-how-soundscape-works.it.md # app/src/main/assets/help/en/help-how-soundscape-works.ja.md # app/src/main/assets/help/en/help-how-soundscape-works.ko.md # app/src/main/assets/help/en/help-how-soundscape-works.md # app/src/main/assets/help/en/help-how-soundscape-works.mr.md # app/src/main/assets/help/en/help-how-soundscape-works.nb.md # app/src/main/assets/help/en/help-how-soundscape-works.nl.md # app/src/main/assets/help/en/help-how-soundscape-works.pa.md # app/src/main/assets/help/en/help-how-soundscape-works.pl.md # app/src/main/assets/help/en/help-how-soundscape-works.pt-BR.md # app/src/main/assets/help/en/help-how-soundscape-works.pt.md # app/src/main/assets/help/en/help-how-soundscape-works.ro.md # app/src/main/assets/help/en/help-how-soundscape-works.ru.md # app/src/main/assets/help/en/help-how-soundscape-works.sk.md # app/src/main/assets/help/en/help-how-soundscape-works.sl.md # app/src/main/assets/help/en/help-how-soundscape-works.sr.md # app/src/main/assets/help/en/help-how-soundscape-works.sv.md # app/src/main/assets/help/en/help-how-soundscape-works.sw.md # app/src/main/assets/help/en/help-how-soundscape-works.ta.md # app/src/main/assets/help/en/help-how-soundscape-works.te.md # app/src/main/assets/help/en/help-how-soundscape-works.th.md # app/src/main/assets/help/en/help-how-soundscape-works.tr.md # app/src/main/assets/help/en/help-how-soundscape-works.uk.md # app/src/main/assets/help/en/help-how-soundscape-works.ur.md # app/src/main/assets/help/en/help-how-soundscape-works.vi.md # app/src/main/assets/help/en/help-how-soundscape-works.zh-CN.md # app/src/main/assets/help/en/help-markers.pa.md # app/src/main/assets/help/en/help-my-location.pa.md # app/src/main/assets/help/en/help-nearby-markers.pa.md # app/src/main/assets/help/en/help-routes.pa.md # app/src/main/assets/help/en/help-siri-voice-commands.ar.md # app/src/main/assets/help/en/help-siri-voice-commands.bg.md # app/src/main/assets/help/en/help-siri-voice-commands.bn.md # app/src/main/assets/help/en/help-siri-voice-commands.ca.md # app/src/main/assets/help/en/help-siri-voice-commands.cs.md # app/src/main/assets/help/en/help-siri-voice-commands.da.md # app/src/main/assets/help/en/help-siri-voice-commands.de.md # app/src/main/assets/help/en/help-siri-voice-commands.el.md # app/src/main/assets/help/en/help-siri-voice-commands.en-GB.md # app/src/main/assets/help/en/help-siri-voice-commands.es.md # app/src/main/assets/help/en/help-siri-voice-commands.et.md # app/src/main/assets/help/en/help-siri-voice-commands.fa.md # app/src/main/assets/help/en/help-siri-voice-commands.fi.md # app/src/main/assets/help/en/help-siri-voice-commands.fr-CA.md # app/src/main/assets/help/en/help-siri-voice-commands.fr.md # app/src/main/assets/help/en/help-siri-voice-commands.ha.md # app/src/main/assets/help/en/help-siri-voice-commands.hi.md # app/src/main/assets/help/en/help-siri-voice-commands.hr.md # app/src/main/assets/help/en/help-siri-voice-commands.hu.md # app/src/main/assets/help/en/help-siri-voice-commands.id.md # app/src/main/assets/help/en/help-siri-voice-commands.is.md # app/src/main/assets/help/en/help-siri-voice-commands.it.md # app/src/main/assets/help/en/help-siri-voice-commands.ja.md # app/src/main/assets/help/en/help-siri-voice-commands.ko.md # app/src/main/assets/help/en/help-siri-voice-commands.md # app/src/main/assets/help/en/help-siri-voice-commands.mr.md # app/src/main/assets/help/en/help-siri-voice-commands.nb.md # app/src/main/assets/help/en/help-siri-voice-commands.nl.md # app/src/main/assets/help/en/help-siri-voice-commands.pa.md # app/src/main/assets/help/en/help-siri-voice-commands.pl.md # app/src/main/assets/help/en/help-siri-voice-commands.pt-BR.md # app/src/main/assets/help/en/help-siri-voice-commands.pt.md # app/src/main/assets/help/en/help-siri-voice-commands.ro.md # app/src/main/assets/help/en/help-siri-voice-commands.ru.md # app/src/main/assets/help/en/help-siri-voice-commands.sk.md # app/src/main/assets/help/en/help-siri-voice-commands.sl.md # app/src/main/assets/help/en/help-siri-voice-commands.sr.md # app/src/main/assets/help/en/help-siri-voice-commands.sv.md # app/src/main/assets/help/en/help-siri-voice-commands.sw.md # app/src/main/assets/help/en/help-siri-voice-commands.ta.md # app/src/main/assets/help/en/help-siri-voice-commands.te.md # app/src/main/assets/help/en/help-siri-voice-commands.th.md # app/src/main/assets/help/en/help-siri-voice-commands.tr.md # app/src/main/assets/help/en/help-siri-voice-commands.uk.md # app/src/main/assets/help/en/help-siri-voice-commands.ur.md # app/src/main/assets/help/en/help-siri-voice-commands.vi.md # app/src/main/assets/help/en/help-siri-voice-commands.zh-CN.md # app/src/main/assets/help/en/help-tips.pa.md # app/src/main/assets/help/en/help-using-media-controls.pa.md # app/src/main/assets/help/en/help-using-soundscape-offline.ar.md # app/src/main/assets/help/en/help-using-soundscape-offline.bg.md # app/src/main/assets/help/en/help-using-soundscape-offline.bn.md # app/src/main/assets/help/en/help-using-soundscape-offline.ca.md # app/src/main/assets/help/en/help-using-soundscape-offline.cs.md # app/src/main/assets/help/en/help-using-soundscape-offline.da.md # app/src/main/assets/help/en/help-using-soundscape-offline.de.md # app/src/main/assets/help/en/help-using-soundscape-offline.el.md # app/src/main/assets/help/en/help-using-soundscape-offline.en-GB.md # app/src/main/assets/help/en/help-using-soundscape-offline.es.md # app/src/main/assets/help/en/help-using-soundscape-offline.et.md # app/src/main/assets/help/en/help-using-soundscape-offline.fa.md # app/src/main/assets/help/en/help-using-soundscape-offline.fi.md # app/src/main/assets/help/en/help-using-soundscape-offline.fr-CA.md # app/src/main/assets/help/en/help-using-soundscape-offline.fr.md # app/src/main/assets/help/en/help-using-soundscape-offline.ha.md # app/src/main/assets/help/en/help-using-soundscape-offline.hi.md # app/src/main/assets/help/en/help-using-soundscape-offline.hr.md # app/src/main/assets/help/en/help-using-soundscape-offline.hu.md # app/src/main/assets/help/en/help-using-soundscape-offline.id.md # app/src/main/assets/help/en/help-using-soundscape-offline.is.md # app/src/main/assets/help/en/help-using-soundscape-offline.it.md # app/src/main/assets/help/en/help-using-soundscape-offline.ja.md # app/src/main/assets/help/en/help-using-soundscape-offline.ko.md # app/src/main/assets/help/en/help-using-soundscape-offline.md # app/src/main/assets/help/en/help-using-soundscape-offline.mr.md # app/src/main/assets/help/en/help-using-soundscape-offline.nb.md # app/src/main/assets/help/en/help-using-soundscape-offline.nl.md # app/src/main/assets/help/en/help-using-soundscape-offline.pa.md # app/src/main/assets/help/en/help-using-soundscape-offline.pl.md # app/src/main/assets/help/en/help-using-soundscape-offline.pt-BR.md # app/src/main/assets/help/en/help-using-soundscape-offline.pt.md # app/src/main/assets/help/en/help-using-soundscape-offline.ro.md # app/src/main/assets/help/en/help-using-soundscape-offline.ru.md # app/src/main/assets/help/en/help-using-soundscape-offline.sk.md # app/src/main/assets/help/en/help-using-soundscape-offline.sl.md # app/src/main/assets/help/en/help-using-soundscape-offline.sr.md # app/src/main/assets/help/en/help-using-soundscape-offline.sv.md # app/src/main/assets/help/en/help-using-soundscape-offline.sw.md # app/src/main/assets/help/en/help-using-soundscape-offline.ta.md # app/src/main/assets/help/en/help-using-soundscape-offline.te.md # app/src/main/assets/help/en/help-using-soundscape-offline.th.md # app/src/main/assets/help/en/help-using-soundscape-offline.tr.md # app/src/main/assets/help/en/help-using-soundscape-offline.uk.md # app/src/main/assets/help/en/help-using-soundscape-offline.ur.md # app/src/main/assets/help/en/help-using-soundscape-offline.vi.md # app/src/main/assets/help/en/help-using-soundscape-offline.zh-CN.md # app/src/main/assets/help/en/help-voice-commands.ar.md # app/src/main/assets/help/en/help-voice-commands.bg.md # app/src/main/assets/help/en/help-voice-commands.bn.md # app/src/main/assets/help/en/help-voice-commands.ca.md # app/src/main/assets/help/en/help-voice-commands.cs.md # app/src/main/assets/help/en/help-voice-commands.da.md # app/src/main/assets/help/en/help-voice-commands.de.md # app/src/main/assets/help/en/help-voice-commands.el.md # app/src/main/assets/help/en/help-voice-commands.en-GB.md # app/src/main/assets/help/en/help-voice-commands.es.md # app/src/main/assets/help/en/help-voice-commands.et.md # app/src/main/assets/help/en/help-voice-commands.fa.md # app/src/main/assets/help/en/help-voice-commands.fi.md # app/src/main/assets/help/en/help-voice-commands.fr-CA.md # app/src/main/assets/help/en/help-voice-commands.fr.md # app/src/main/assets/help/en/help-voice-commands.ha.md # app/src/main/assets/help/en/help-voice-commands.hi.md # app/src/main/assets/help/en/help-voice-commands.hr.md # app/src/main/assets/help/en/help-voice-commands.hu.md # app/src/main/assets/help/en/help-voice-commands.id.md # app/src/main/assets/help/en/help-voice-commands.is.md # app/src/main/assets/help/en/help-voice-commands.it.md # app/src/main/assets/help/en/help-voice-commands.ja.md # app/src/main/assets/help/en/help-voice-commands.ko.md # app/src/main/assets/help/en/help-voice-commands.md # app/src/main/assets/help/en/help-voice-commands.mr.md # app/src/main/assets/help/en/help-voice-commands.nb.md # app/src/main/assets/help/en/help-voice-commands.nl.md # app/src/main/assets/help/en/help-voice-commands.pl.md # app/src/main/assets/help/en/help-voice-commands.pt-BR.md # app/src/main/assets/help/en/help-voice-commands.pt.md # app/src/main/assets/help/en/help-voice-commands.ro.md # app/src/main/assets/help/en/help-voice-commands.ru.md # app/src/main/assets/help/en/help-voice-commands.sk.md # app/src/main/assets/help/en/help-voice-commands.sl.md # app/src/main/assets/help/en/help-voice-commands.sr.md # app/src/main/assets/help/en/help-voice-commands.sv.md # app/src/main/assets/help/en/help-voice-commands.sw.md # app/src/main/assets/help/en/help-voice-commands.ta.md # app/src/main/assets/help/en/help-voice-commands.te.md # app/src/main/assets/help/en/help-voice-commands.th.md # app/src/main/assets/help/en/help-voice-commands.tr.md # app/src/main/assets/help/en/help-voice-commands.uk.md # app/src/main/assets/help/en/help-voice-commands.ur.md # app/src/main/assets/help/en/help-voice-commands.vi.md # app/src/main/assets/help/en/help-voice-commands.zh-CN.md # app/src/main/assets/help/en/help-voices.pa.md # app/src/main/assets/help/en/help-why-is-soundscape-working-offline-.ar.md # app/src/main/assets/help/en/help-why-is-soundscape-working-offline-.bg.md # app/src/main/assets/help/en/help-why-is-soundscape-working-offline-.bn.md # app/src/main/assets/help/en/help-why-is-soundscape-working-offline-.ca.md # app/src/main/assets/help/en/help-why-is-soundscape-working-offline-.cs.md # app/src/main/assets/help/en/help-why-is-soundscape-working-offline-.da.md # app/src/main/assets/help/en/help-why-is-soundscape-working-offline-.de.md # app/src/main/assets/help/en/help-why-is-soundscape-working-offline-.el.md # app/src/main/assets/help/en/help-why-is-soundscape-working-offline-.en-GB.md # app/src/main/assets/help/en/help-why-is-soundscape-working-offline-.es.md # app/src/main/assets/help/en/help-why-is-soundscape-working-offline-.et.md # app/src/main/assets/help/en/help-why-is-soundscape-working-offline-.fa.md # app/src/main/assets/help/en/help-why-is-soundscape-working-offline-.fi.md # app/src/main/assets/help/en/help-why-is-soundscape-working-offline-.fr-CA.md # app/src/main/assets/help/en/help-why-is-soundscape-working-offline-.fr.md # app/src/main/assets/help/en/help-why-is-soundscape-working-offline-.ha.md # app/src/main/assets/help/en/help-why-is-soundscape-working-offline-.hi.md # app/src/main/assets/help/en/help-why-is-soundscape-working-offline-.hr.md # app/src/main/assets/help/en/help-why-is-soundscape-working-offline-.hu.md # app/src/main/assets/help/en/help-why-is-soundscape-working-offline-.id.md # app/src/main/assets/help/en/help-why-is-soundscape-working-offline-.is.md # app/src/main/assets/help/en/help-why-is-soundscape-working-offline-.it.md # app/src/main/assets/help/en/help-why-is-soundscape-working-offline-.ja.md # app/src/main/assets/help/en/help-why-is-soundscape-working-offline-.ko.md # app/src/main/assets/help/en/help-why-is-soundscape-working-offline-.md # app/src/main/assets/help/en/help-why-is-soundscape-working-offline-.mr.md # app/src/main/assets/help/en/help-why-is-soundscape-working-offline-.nb.md # app/src/main/assets/help/en/help-why-is-soundscape-working-offline-.nl.md # app/src/main/assets/help/en/help-why-is-soundscape-working-offline-.pl.md # app/src/main/assets/help/en/help-why-is-soundscape-working-offline-.pt-BR.md # app/src/main/assets/help/en/help-why-is-soundscape-working-offline-.pt.md # app/src/main/assets/help/en/help-why-is-soundscape-working-offline-.ro.md # app/src/main/assets/help/en/help-why-is-soundscape-working-offline-.ru.md # app/src/main/assets/help/en/help-why-is-soundscape-working-offline-.sk.md # app/src/main/assets/help/en/help-why-is-soundscape-working-offline-.sl.md # app/src/main/assets/help/en/help-why-is-soundscape-working-offline-.sr.md # app/src/main/assets/help/en/help-why-is-soundscape-working-offline-.sv.md # app/src/main/assets/help/en/help-why-is-soundscape-working-offline-.sw.md # app/src/main/assets/help/en/help-why-is-soundscape-working-offline-.ta.md # app/src/main/assets/help/en/help-why-is-soundscape-working-offline-.te.md # app/src/main/assets/help/en/help-why-is-soundscape-working-offline-.th.md # app/src/main/assets/help/en/help-why-is-soundscape-working-offline-.tr.md # app/src/main/assets/help/en/help-why-is-soundscape-working-offline-.uk.md # app/src/main/assets/help/en/help-why-is-soundscape-working-offline-.ur.md # app/src/main/assets/help/en/help-why-is-soundscape-working-offline-.vi.md # app/src/main/assets/help/en/help-why-is-soundscape-working-offline-.zh-CN.md # app/src/main/assets/help/en/user.pa.md # gradle/libs.versions.toml # shared/src/commonMain/kotlin/org/scottishtecharmy/soundscape/navigation/SharedNavGraph.kt
IntelliJ's auto-merge left me with a bunch of 0-byte files instead of the correct content, for the new/renamed files.
After the merge there was a duplicate definition of robolectric. I added TODO comments for the new Help features on main which I haven't implemented in my branch.
Updated this page, which I created manually, to reflect the correct order in the current app.
I'm pretty sure the pages are right, now, and not planning to change anything significant, so we don't need these on main.
I had left in the code which generated the log output for the regression tests.
The main branch doesn't have one subfolder per language, it just has all files in one flat folder, with the language code in the filename.
HughG
force-pushed
the
feature/STA-227
branch
from
October 16, 2026 11:38
567bbad to
713958c
Compare
Collaborator
Author
|
Hi again, @davecraig. I've merged in the KMP changes and got the Markdown help pages basically working, tested for English (not sure how to test other locales), with a couple of TODOs. Come to think of it, I suspect other locales will not work until you translate the entry page, The website docs still appear to build correctly, but whatever script you have for regenerating the Markdown from the resource strings will need to updated to write them to '/app/src/main/assets/help`. So, this branch should be ready to merge, but I can't guarantee it won't break main. |
This branch was successfully deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Hi Dave, sorry this has been delayed so long! I'm taking a break from the daily grind of job-hunting, so maybe I can get this finished at last.
Implemented generation of in-app help screens from Markdown files.
I think the next steps are as follows, either in this ticket, or in a follow-on if this is okay to merge.
Then someone could think about actually editing the files! Weblate seems to be smart enough if you add/remove new sections: it adds a matching English section to each translated Markdown file.