Repository navigation
Merge upstream main - #25
Merged
Merged
Conversation
Following Brayan's PR, I grepped for my name and removed 50 references AnkiDroid is standardizing licenses to SPDX. I removed my copyright lines from the files as-per docs/contributing/copyright-headers.md Issue 20954 This change was not performed using LLMs and I have verified that it is correct
Part of 20497. add_note_inner https://github.com/ankitects/anki/blob/754ce3a25f608010c0249e074e5d7fe95bda035f/rslib/src/notes/mod.rs#L377-L392 Assisted-by: GPT-6
Fixes 21983 Assisted-by: GPT-6
ACRA's BuildConfig collector was broken, but would have included it Assisted-by: GPT-6
Previously this failed as a ClassCastException and "BUILD_CONFIG": "N/A" ACRA could not cope with R8 placing unrelated code in BuildConfig (primitive int arrays from the audio parser) Assisted-by: GPT-6
Prefer `WebView.zoomBy()` over `loadWithOverviewMode` as overview mode reset the scroll position. Part of 5182 Assisted-by: GPT-6
Burying a card did not perform a reset, as `showingAnswer` did not change. Assisted-by: Claude Opus 5 Assisted-by: GPT-6 - zoomBy reset
When flipping a card, we could scroll to `id="answer"` before resetting the zoom finished. After the reset, the viewport was in an incorrect position. Part of 5182 Assisted-by: GPT-6
* parcel round trips * activity recreation * simulated process death Part of 21953 Assisted-by: GPT-6
Initialize input in onCreateView, before creating the editor's view. Ensure all callbacks and cleanup handle a missing view. Part of 21953 Assisted-by: GPT-6
This means we no longer serialize the whole note to instance state. The fragment is responsible for the file lifetime. Fixes part of 21953 Assisted-by: GPT-6 � Conflicts: � AnkiDroid/src/test/java/com/ichi2/anki/noteeditor/NoteEditorMultimediaControllerTest.kt
* orphaned multimedia arg files - after 7 days Related to 21953 Assisted-by: GPT-6
- creating a reminder, dismissing it, and recreation (which doesn't prompt) - when the permission is already enabled - reminder cancellation Fixes 21753 Assisted-by: GPT-6
Nicer syntax to support saving/restoring properties Assisted-by: GPT-6
Makes the code testable Assisted-by: Claude Fable 5.1
If a dropped column is scrolled off-screen before the animation completes, `ItemTouchHelper` called `clearView`. Which threw an IllegalStateException. Defer the refresh while the RecyclerView is computing a layout or scrolling. Reproduced by regression test only, against a machine-generated report. Fixes 20557 Assisted-by: Claude Fable 5.1
Fixes elevation of a dropped column. Assisted-by: Claude Fable 5.1
Part of 15760 Assisted-by: GPT-6 - implementation and validation
Part of 15760 Assisted-by: GPT-6 - implementation and validation Assisted-by: Claude Fable 5.1 - test
Read the saved selection when the ViewModel is created, and save it in place of the rows until a search applies it. Otherwise, saving state in initialization clobbered the previous value. Part of 19572 Assisted-by: Claude Fable 5.1 - all
Previously, a sync had the same priority as getting the deck counts. Add: * `withColExclusive` publish a `CollectionLease` * `tryWithCol` does not execute if in the 'Exclusive' state via cancellation. No-op as nothing uses `tryWithCol` yet Part of 17551 Assisted-by: Claude Opus 5 - original code Assisted-by: GPT-6 - lifecycle & regression tests
`tryWithCol` could interleave with a lease, causing the operation to wait * A lease now waits for work to complete before executing in Exclusive mode Part of 17551 Assisted-by: GPT-6
Part of 17551 Assisted-by: GPT-6
Prep for compileSdk 37: `SHOW_IMPLICIT` is deprecated in API 37. The flag is a no-op from Android 16, so drop it on API 36+ Part of 21672 Assisted-by: Claude Fable 5
SDK 37 is the first release under 'major.minor' SDK versioning: the platform ships as `android-37.0`, so `compileSdkMinor` must be set for the target to resolve Fixes 21672 Assisted-by: Claude Fable 5
Matches upstream: pylib/anki/collection.py ankitects/anki@9f3f6ba Partially fixes 20510 Assisted-by: Claude Fable 5
Assisted-by: Claude Fable 5
Restoring to default can update the fields in the note type. The Note Editor now rebuilds the fields, preserving text where possible (using the same code as when the spinner is changed) Fixes 20510 Assisted-by: Claude Fable 5
Fixes 22030 Assisted-by: GPT-6
ADB can drop offline immediately after the emulator reports boot complete, causing the ART metrics helper to exit before tests start. A retry (up to 5s) may help. Fixes 22033 Assisted-by: GPT-6
Keep each backend sort order with its display label and map selections through the explicit order. Prep for filtering out unusable orders. Part of 21926 Assisted-by: GPT-6
Hide the following if FSRS is disabled: * RETRIEVABILITY_ASCENDING, * RETRIEVABILITY_DESCENDING Fall back to random for invalid saved selections Part of 21926 See https://redirect.github.com/ankitects/anki/pull/5407 Assisted-by: GPT-6
* use `InsetDrawable` (8dp) - using a `ldrtl` override for RTL handling Fixes 21030 Assisted-by: Claude Fable 5 - all
Use the unthemed layout for widgets on Android 12 and later. This prevents dynamic-color being used. Previously, this was dynamic-color by default, and transitioned to unthemed after the first update. Fixes 22015 Assisted-by: GPT-6
On a vertical scroll, easy days values were set. This is fixed via a hacky JS wrapper as touch-action:pan-y had no effect Due to the size & maintenance burden of a 'proper' fix [as this code should be temporary], I selected a small, readable piece of JS which disables all touch events, and re-implements 'click'. The 'drag-to-set' functionality of the range slider is lost, but since Easy Days is only three distinct values, and this should be a temporary fix, this feels acceptable Fixes 20929 Assisted-by: Claude Opus 4.7 - implementation
# Conflicts: # AnkiDroid/build.gradle
Review comment on 22004 Assisted-by: GPT-6
Lint rules cannot correlate android:title="@string/..." usages with string definitions in `:common:android`. They need to be in the same module Part of 21500 Assisted-by: Claude Fable 5
`tools:ignore` works when the file is in `:common:android`. Part of 21500 Assisted-by: Claude Fable 5
lint-release.xml enables this default-disabled issue, but JVM modules do not apply lint-release.xml. Once :AnkiDroid lints with checkDependencies = true, an issue enabled in the app must not be hidden in a dependency module (CannotEnableHidden). Part of 21500 Assisted-by: Claude Fable 5
Upstream's AcraBuildConfigTest requires every BuildConfig field sent with crash reports to be listed. ANKIQUEST_RELEASE is the quest release number: no credentials, no personal data.
`recordCoroutineCaller` adds the caller to stack traces of suspend functions. For understanding stack traces which fail inside `withCol` Assisted-by: GPT-6
Part of Issue 21979.
Fast-forward main to ankidroid/Anki-Android main every morning and open a pull request from main into ankiquest when ankiquest is behind. main stays a mirror; the job fails rather than push over local commits. Needs UPSTREAM_SYNC_TOKEN: GITHUB_TOKEN cannot push commits that change upstream's workflows, and pull requests it opens start no CI.
|
Snapshot diff report vs
All 8 changed screenshotsAnkiDroidWidgetSmallScreenshotTest
AnkiquestHomeScreenshotTest
NoteTypeFieldEditorScreenshotTest
PreferencesScreenshotTest
|
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.
Upstream
mainup to d13b7ce, plus currentankiquest(#24, #26).AnkiDroid/build.gradleconflict: upstream bumpedversionCodeto 22500202 (2.25.0beta2) where the quest override sits. Took their number, kept the override.Upstream's new
AcraBuildConfigTestrequires everyBuildConfigfield sent with crash reports to be reviewed: addedANKIQUEST_RELEASE(release number only).Upstream's new
PreferenceTitleLengthTest: AnkiQuest titles already comply (checked).ReviewerFragmentScrollTestzoom tests andReviewRemindersTest.editReminderChangingDeckAndSettingsalso fail intermittently on upstream's own emulator CI (runs 35960527156, 35967220557, 35967109540); upstream is mid-fix (3e09dc2, "Part of 5182"). Not caused by this fork: it doesn't change reviewer code.Adds
sync_upstream.yml: daily, fast-forwardsmainto upstream and opens a PR frommainintoankiquestwhen behind. Needs anUPSTREAM_SYNC_TOKENsecret (Contents, Pull requests, Workflows: read/write);GITHUB_TOKENcan't push upstream workflow changes and its PRs start no CI.Merge commits made with
--no-verify: local Gradle can't reach its workers over loopback, so the ktlint hook can't run. CI's Lint Kotlin covers it.