Repository navigation
UI bug fixes, 4466 - #60
Merged
Merged
Conversation
…is loaded and add unit tests, Ui fixes
…nd MainActivity; implement cache clearing for quest types
…sts; add regression test for cache clearing
… obsolete CI configurations
…download Switching workspace while an auto-download was running (e.g. the 2.5 km radius download whose map tiles take several seconds) invalidated the downloaded tiles mid-download; the new screen's auto-download was skipped as a download was in progress, and the running one then marked the tiles as fresh again - so the new workspace never downloaded its data. Caught by LongFormChangeTest on CI API 30. DownloadedTilesController now counts invalidations; Downloader skips marking its tiles if the count changed while it was downloading, so the auto-download triggered on its success fetches them again. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ifecycle handling and add test for recreation
… tiles only when stale A download still running when the workspace was switched (e.g. MapLibre's map tiles download hanging on an unreachable tile server) kept the new workspace's auto-download from starting, as one was "in progress" - its map stayed empty. Caught by LongFormChangeTest on CI API 30. - Downloader cancels the running download when all downloaded tiles are invalidated while it runs (workspace switched etc.) and reports it as a success, so the auto-download starts a fresh one. A cancel from outside (worker stopped, notification) is still not a success. - DownloadedTilesController.invalidationCount counts only invalidateAll/clear: a single tile invalidated by the uploader doesn't make the rest of a running download outdated. - The map tiles (fixed base map style) don't depend on the workspace: skip downloading them if a completed download of the same style, newer than 7 days, covers the area - a workspace switch now downloads only map data. - Instrumented tests: map tiles downloads are replaced by a no-op OfflineMapTilesDownloader (MapLibre's requests bypass the mocked Ktor clients), so tests no longer depend on the tile servers. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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.
This pull request improves the visibility logic for the "Show Quest Forms" action in the user profile screen by ensuring it only appears when relevant quest forms are available (i.e., after a workspace is loaded). It also adds tests for this behavior and makes a minor UI improvement in the workspace activity.
Quest Forms Action Visibility Logic:
showQuestFormsActionOrNullinUserActivity.ktto conditionally show the "Show Quest Forms" action only when theQuestTypeRegistryis not empty, reflecting the loaded state of a workspace.UserProfileScreencomposable and its usage to accept a nullableonClickShowQuestFormscallback, hiding the entry when there are no quest forms to show. [1] [2] [3]Testing:
ShowQuestFormsActionTest.ktto verify that the "Show Quest Forms" action is shown or hidden appropriately based on the state of theQuestTypeRegistry.UI Improvements:
MaterialTheme.colorScheme.onSurfaceVariantfor better visual consistency. [1] [2]This pull request introduces a new workflow for generating and publishing release test reports, along with related infrastructure improvements and a new regression test. The main focus is to enable manual generation of unit and instrumentation test reports for a release, attaching them to a versioned pre-release in GitHub, and summarizing their results in the release notes. Additionally, some unused or redundant workflows are removed, and a regression test is added to prevent crashes when a workspace's quest definition changes.
Release Test Report Infrastructure:
release-test-report.ymlworkflow to manually generate and publish unit and instrumentation test reports for a release. The reports are attached to a versioned pre-release, and the workflow ensures that re-running for the same version replaces the previous pre-release.release-report-summary.shscript to aggregate JUnit and coverage results from the uploaded report bundles, generate a Markdown summary, and update the pre-release notes and job summary accordingly.publish-reports.shto support attaching bundles to a specific release tag (via theREPORTS_TAGenvironment variable), enabling coordination with the new release workflow. [1] [2]unit-test.ymlandandroid-test.ymlto accept an optionalrelease-taginput, allowing them to upload their artifacts to the correct pre-release when triggered by the release workflow. [1] [2] [3] [4]Workflow Cleanup:
build-debug-apk.yml,generate-quest-list.yml,gradle-wrapper-validation.yml, and the disabledlint.yml. This helps keep the CI configuration clean and focused. [1] [2] [3] [4]Testing and Regression Prevention:
LongFormChangeTest) to ensure that if a workspace's quest definition changes on the server while the user is active, reopening the workspace does not crash and correctly loads the new quest type. [1] [2] [3]Minor Code Improvements:
ApplicationModule.kt, including header sanitization for logs. [1] [2] [3]