feat: improve handling of "Anki already open, or media currently syncing" - #21501
Open
david-allison wants to merge 3 commits into
Open
david-allison wants to merge 3 commits into
david-allison wants to merge 3 commits into
Conversation
Contributor
|
Important Maintainers: This PR contains Strings changes
|
david-allison
force-pushed
the
21051
branch
3 times, most recently
from
August 15, 2026 21:00
6d567f3 to
9bc8dc4
Compare
mikehardy
approved these changes
Sep 24, 2026
mikehardy
left a comment
Member
There was a problem hiding this comment.
LGTM
Locked-collection UX looks coherent — retype → guidance → Settings→Advanced across startup, runtime, and login. Good improvement for the "Anki already open / media syncing" path.
github-merge-queue
Bot
removed this pull request from the merge queue due to failed status checks
Sep 24, 2026
Member
Author
|
@mikehardy pending strings, let's leave this for now |
github-merge-queue
Bot
removed this pull request from the merge queue due to failed status checks
Sep 28, 2026
github-merge-queue
Bot
removed this pull request from the merge queue due to failed status checks
Sep 28, 2026
github-merge-queue
Bot
removed this pull request from the merge queue due to failed status checks
Sep 28, 2026
Member
Author
|
david-allison
force-pushed
the
21051
branch
from
September 29, 2026 19:57
9bc8dc4 to
6db1ac2
Compare
github-merge-queue
Bot
removed this pull request from the merge queue due to failed status checks
Sep 30, 2026
The backend string: 'Anki already open, or media currently syncing' doesn't explain this on Android - the other app likely launched on boot, (and upstream is much less likely to have parallel apps). In AnkiDroid, it is not possible for 'media syncing' to be the cause of this error. CollectionManager now rethrows `BackendDbLockedException` as `CollectionLockedException`, with better user-facing guidance. Also: * a locked collection no longer files a crash report * the login screen shows the guidance in a dialog rather than truncating it in a snackbar Fixes 21051 GPT-6 resolved the rebase conflict and updated the locked-collection message references to CommonString. GPT-6 also updated locked-collection exception assertions and registered the error dialog test activity for cleanup. Assisted-by: Claude Fable 5 Assisted-by: GPT-6
The `CollectionLockedException` guidance is truncated by the login screen's snackbar, so show it in a dialog. Part of 21051 Assisted-by: Claude Fable 5
Allows a user to change 'AnkiDroid directory' Part of 21051 GPT-6 updated the Settings button labels to CommonString after rebasing. GPT-6 also registered the Settings dialog test activity for cleanup. Assisted-by: Claude Fable 5 Assisted-by: GPT-6
Contributor
|
Snapshot diff report vs
All 1 changed screenshotsSharedDecksScreenshotTest
|
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.
Note
Assisted-by: Claude Fable 5
Purpose / Description
Fixes
Approach
CollectionLockedException, replacingBackendDbLockedExceptionHow Has This Been Tested?
Unit tested

Learning (optional, can help others)
Checklist