Skip to content

UI bug fixes, 4466 - #60

Merged
iamrajeshk merged 7 commits into
aviv-dev-latestfrom
ui-bug-fixes
Oct 22, 2026
Merged

iamrajeshk merged 7 commits into
aviv-dev-latestfrom
ui-bug-fixes

Conversation

@iamrajeshk

@iamrajeshk iamrajeshk commented Oct 12, 2026 •

Copy link
Copy Markdown
Collaborator

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:

  • Added a new function showQuestFormsActionOrNull in UserActivity.kt to conditionally show the "Show Quest Forms" action only when the QuestTypeRegistry is not empty, reflecting the loaded state of a workspace.
  • Updated the UserProfileScreen composable and its usage to accept a nullable onClickShowQuestForms callback, hiding the entry when there are no quest forms to show. [1] [2] [3]

Testing:

  • Added a new unit test file ShowQuestFormsActionTest.kt to verify that the "Show Quest Forms" action is shown or hidden appropriately based on the state of the QuestTypeRegistry.

UI Improvements:

  • Updated the workspace location prompt text color to use MaterialTheme.colorScheme.onSurfaceVariant for 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:

  • Added the release-test-report.yml workflow 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.
  • Introduced the release-report-summary.sh script 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.
  • Updated publish-reports.sh to support attaching bundles to a specific release tag (via the REPORTS_TAG environment variable), enabling coordination with the new release workflow. [1] [2]
  • Modified unit-test.yml and android-test.yml to accept an optional release-tag input, allowing them to upload their artifacts to the correct pre-release when triggered by the release workflow. [1] [2] [3] [4]

Workflow Cleanup:

  • Removed unused or redundant workflows: build-debug-apk.yml, generate-quest-list.yml, gradle-wrapper-validation.yml, and the disabled lint.yml. This helps keep the CI configuration clean and focused. [1] [2] [3] [4]

Testing and Regression Prevention:

  • Added a regression test (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:

  • Fixed import order and improved logging configuration in ApplicationModule.kt, including header sanitization for logs. [1] [2] [3]

…nd MainActivity; implement cache clearing for quest types
@iamrajeshk iamrajeshk changed the title UI bug fixes UI bug fixes, 4466 Oct 19, 2026
iamrajeshk and others added 3 commits October 19, 2026 20:11
…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>
@iamrajeshk
iamrajeshk merged commit 57c5d20 into aviv-dev-latest Oct 22, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant