Repository navigation
Conversation
Android clears an app's cache when storage runs low, which could delete a recording while it was still being made. Recordings now go to noBackupFilesDir, which isn't cleared or backed up. Assisted-by: Claude Opus 5.5
The system no longer clears recordings left behind when the app is killed, so recordings older than 7 days are deleted at startup, like the multimedia argument files. Assisted-by: Claude Opus 5.5
Fixes 22420 Assisted-by: GPT-6-Astra default
Workaround before we fix 14796 Assisted-by: GPT-6-Astra xhigh
FileProvider under Robolectric/AndroidX was Unix-only. This makes it work for Windows Use openInputStreamSafe for both reads to satisfy UnsafeOpenInputStream lint. Prep for 14222 Assisted-by: GPT-6-Astra xhigh Assisted-by: GPT-6.1-Sol high
So the Gallery selection can reuse it Part of 22499 Assisted-by: GPT-6-Astra xhigh
Open the Gallery before the image editor, so cancellation goes directly back to the Note Editor. `NoteEditorGalleryPicker` maintains state and results, passing on the URI to the editor. Fixes 22499 Assisted-by: GPT-6-Astra xhigh
The non-nosuggest field could have been focused first, before autofocus occurred asynchronously Part of 22060 Partially fixes 22483 Assisted-by: GPT-6-Astra default
In the same style as the legacy reviewer Part of 22060 Assisted-by: GPT-6-Astra default � Conflicts: � AnkiDroid/src/test/java/com/ichi2/anki/ui/windows/reviewer/ReviewerFragmentTest.kt
We picked a name, inserted into the collection, then used the name in the HTML. This could be wrong, as the backend could normalize/rename a media file Assisted-by: GPT-6-Astra default
|
Snapshot diff report vs
All 70 changed screenshotsAddEditReminderDialogScreenshotTest
ChangeNoteTypeDialogScreenshotTest
CollectionTooLargeScreenshotTest
DeckPickerScreenshotTest
DeckPickerTabletScreenshotTest
LocaleSelectionDialogScreenshotTest
MultimediaScreenshotTest
NavigationDrawerScreenshotTest
NoteEditorScreenshotTest
PreferencesScreenshotTest
PreviewerScreenshotTest
ReviewRemindersScreenshotTest
SortOrderBottomSheetFragmentScreenshotTest
StudyScreenScreenshotTest
TagsDialogScreenshotTest
TemplatePreviewerScreenshotTest
|
The Deck Picker kept its full-size background bitmap for as long as the activity lived, even while reviewing or in the background. Load it when the screen starts and drop it when it stops, still reporting a broken image only once. Fixes 22514 Co-authored-by: Mike Hardy <github@mikehardy.net> Assisted-by: Claude Opus 5.5
Rename request key constants while preserving their string values. Part of 22409 Assisted-by: GPT-6-Astra default
Fixes 22409 Assisted-by: GPT-6-Astra default
Dependency PRs compared their screenshots against an old baseline, because one was only stored when the "Dependency updates" PR ran. Store one on every push to dependency-updates, so each bump only shows its own changes. Compare now only takes a baseline from a push, as that PR's own run screenshots its merge into main. Fixes 21071 Assisted-by: Claude Opus 5.5
Publish runs didn't say which release they made, so finding the latest alpha, beta or production release meant opening the logs. Add the release name, a link to it and whether it was public to the summary. Fixes 22519 Assisted-by: Claude Opus 5.5
The test mocked the whole app to hide the profile manager. ACRA calls the app from a background thread at startup, so a call landing while MockK swapped the mock failed with "can't find stub". Set the profile manager directly instead. Fixes 22527 Assisted-by: Claude Opus 5.5
HTTP(S) links were caught in the GHSL-2026-085 check for external app opening. A user should not need to relax genuine security measures to open links. Fixes 22490 66efa71 Assisted-by: GPT-6-Astra default Assisted-by: GPT-6-Astra xhigh
Pass HTTP(S) links to a native App Link handler, if one is available. This will work if no browser is installed. Assisted-by: GPT-6-Astra xhigh
Show an error message, rather than falling back to the WebView to handle the navigation. Assisted-by: GPT-6-Astra xhigh
Assisted-by: GPT-6-Astra xhigh
Catch `Exception`, matching the new study screen. Assisted-by: GPT-6-Astra xhigh
Assisted-by: GPT-6-Astra xhigh Assisted-by: GPT-6-Astra default
Prep for a new Note Editor: * Jetpack Compose * Wrapping a custom 'fields' component from the AnkiDroid backend (based on Anki's Svelte fields) Part of 1377 Part of 21353 Assisted-by: GPT-6-Astra default Assisted-by: GPT-6-Astra xhigh
* `:note-editor` * `:common:android` - chevron Assisted-by: GPT-6-Astra xhigh
Assisted-by: GPT-6-Astra xhigh Assisted-by: GPT-6-Astra default
`AnkiDroidPreview` now provides all app themes via `AnkiDroidThemeProvider` Assisted-by: GPT-6-Astra xhigh
Part of 22410 Assisted-by: GPT-6-Astra default
Rename the intent extra key constants that didn't follow the EXTRA_ convention. The key strings stay the same. Issue 22405 Assisted-by: Claude Opus 5.5
Constants used as intent extra keys now need the EXTRA_ prefix, so new keys follow the same naming as the rest. Fixes 22405 Assisted-by: Claude Opus 5.5
A failed tag push was ignored, and the GitHub release was created without checking the tag, so a release could end up on an old tag or on a new one gh made from main. Stop if the tag push fails, and let gh refuse to create a release for a tag that isn't on GitHub. Fixes 22555 Assisted-by: Claude Opus 5.5
BUILD_TIME falls back to the time Gradle configures the build, so every Gradle run that asked for different tasks or flags got a new BuildConfig and rebuilt the release APKs, R8 included. The emulator tests rebuilt what Warm Gradle Cache had just built, with the emulator already running. Use one build time for every Gradle run in the job, as release.sh does for a release. Issue 22535 Assisted-by: Claude Opus 5.5
The smoke test was the last line of the emulator test script. When its build failed after every emulator test had passed, the job only said "The process '/usr/bin/sh' failed with exit code 1" and the test report listed no failures. Build it in a step without the emulator, then boot the emulator in a separate step to run it, so a failure names the step that broke. Issue 22535 Assisted-by: Claude Opus 5.5
Tablet-only bugs kept slipping through because every emulator job runs on a small phone. Scheduled and manual runs now add one Pixel Tablet job. Per-change runs are unchanged, and the phone job keeps its name because it is a required check. Like the 16 KB emulator, the tablet skips the AVD cache and always gets the warm-up. Artifact names now include the device so the two jobs don't clash. Fixes 22541 Assisted-by: Claude Opus 5.5
The test buried a card by hand, but the study options counts never include manually buried cards. It only passed because the deck tree unburied the card partway through the refresh, so on a run where something else asked for the deck tree first, the count was 0. Count a buried sibling instead, which is what the screen shows. Fixes 22558 Assisted-by: Claude Opus 5.5
A label removal after a merge failed on a one-off 500 from the GitHub API, because github-script runs with retries off by default. Retry server errors up to three times in each step, but not when posting a comment, so a retry can't post the same comment twice. Fixes 22557 Assisted-by: Claude Opus 5.5
Closes the FAB menu when clicking the background inside the menu container (e.g., when tapping to the left of narrower buttons such as the "Add" button).
Adds a unit test to verify that the expanded FAB menu closes when clicking the background inside the menu container (e.g., when tapping to the left of narrower buttons such as the "Add" button).
Make voices an ordered (distinct) list, so the default engine voices are returned first if they are available. The set was technically already ordered, but we make this ordering explicit and ensure it's valid. Fixes 22569 Assisted-by: GPT-6-Astra xhigh
Assisted-by: GPT-6-Astra xhigh
Assisted-by: GPT-6-Astra xhigh
Allows defining common logic across all of AnkiDroid Assisted-by: GPT-6-Astra xhigh
Add the following for all screenshot-enabled modules: * compileScreenshotTests * recordScreenshots * compareScreenshots * verifyScreenshots `Debug` for Libraries; `PlayDebug` for the app. Moves `-Pscreenshot` into the convention plugin, required for `record`; `compare` and `verify` Assisted-by: GPT-6-Astra xhigh
Previously, the following left stale images * Change a screen and compare * Restore the screen and rerun: passes but the previously generated images could remain Now, obsolete differences are cleared: `cleanScreenshotDiffs` removes these files and intermediate copies. A new `<module>/build/reports/screenshot-diffs/` is added; as prep for CI to use. It contains only `_compare` images; see `collectScreenshotDiffs` Assisted-by: GPT-6-Astra xhigh
Use the new `compileScreenshotTests` and look for data in the new `/screenshot-diffs` directory. This is future support to allow `:note-editor` to submit screenshot diffs. Assisted-by: GPT-6-Astra xhigh
On first launch the Deck Picker finishes in onCreate to show the app intro, before the navigation drawer is set up. A rotation the system had already queued still reached onConfigurationChanged and crashed on the uninitialized drawerToggle. Skip the toggle until it exists.
The test made 1000 random profile IDs and expected no duplicates, but with 32 random bits that fails about once in 8600 runs. It now checks the ID format and randomness only, and a new test covers the retry that keeps a new profile ID from matching an existing one. Fixes 21909 Assisted-by: Claude Opus 5.5
Loading, renaming and deleting note types now report progress from ManageNoteTypesViewModel, so the dialog can't be dismissed mid-operation, no longer flashes, and touches are blocked while it runs. Assisted-by: Claude Opus 5.5
Touches were blocked as soon as an operation started, but back was not, so pressing it before the progress dialog appeared closed the screen mid-operation. Back is now ignored until the operation ends. Assisted-by: Claude Opus 5.5
When the FAB menu was opened, 'Add' expanded too much, and then contracted. Fix this by using the extended padding in calculations. Fixes 22577 Assisted-by: GPT-6-Astra default
```
DeckPickerInsetsTest.destroying the deck picker removes its global layout listener
java.lang.AssertionError: the listener updates padding while the activity is alive
Expected: <72>
but: was <0>
```
Fixes 22482
Assisted-by: GPT-6-Astra default
In the browser preview, with "Don't play audio automatically" on, audio started on one side kept playing after flipping to the other. Showing the answer, going back to the question and "back side only" now stop playback first. Rotating the screen still keeps the audio playing. Fixes 19481 Assisted-by: Claude Opus 5.5
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.
10 new commits from ankidroid/Anki-Android main.
Merge with a merge commit, never squash or rebase, so ankiquest keeps upstream's history.
If this conflicts, merge ankidroid/Anki-Android main into a branch from ankiquest, resolve there, and merge that branch instead; this pull request then shows as merged.