Catch up merge from flerda into 2.1#5
Merged
flerda merged 5 commits intoankidroid:v2.1-devfrom Jan 30, 2013
Merged
Conversation
progress messages, fixes on import media bugs - updated according to feedback2
Import fixes.
improvements based on feedback
Catch up merge from 2.0.1 into 2.1
flerda
added a commit
that referenced
this pull request
Jan 30, 2013
Catch up merge from flerda into 2.1
4 tasks
Closed
aladdin-afk
pushed a commit
to aladdin-afk/Anki-Android
that referenced
this pull request
Dec 14, 2025
� This is the 1st commit message: added test files for currentdeckid() mark test as flaky Issue 19729 fix(deckpicker): Added contentDescription to sync and add card buttons deprecation(libanki): prefer `defaultsForAdding()` over `current()` Deprecates Notetypes.current() in favor of col.defaultsForAdding() Fixes: 19650 Co-authored-by: David Allison <62114487+david-allison@users.noreply.github.com> chore: log 'Activity with no Application' error It's likely that there's another cause other than the backup manager Diagnostics for issue 19050 style: fix dangling top-level KDocs This breaks KtLint 1.8.0 > A dangling toplevel KDoc is not allowed (cannot be auto-corrected) * modify `libs.versions.toml` to use `ktlint = '1.8.0'` * ./gradlew ktLintFormat * revert all changes * manually fix warnings, searching for 'dangling' * manually check fixes ensuring only top-level comments are processed Issue 19614 - updating ktLint docs(github): Explain workflows Quality Checks can be linked to from other pages as an onboarding guide https://github.com/ankidroid/Anki-Android/tree/main/.github/workflows/README.md#quality-checks docs(deps): improve AndroidX lifecycle-process * link changelogs * rename to 'androidxLifecycleProcess' * make location consistent with other libraries Added in 7f7cd37 Disable "Scroll toolbar" if toolbar is not shown In the note editor's overflow menu, disable the "Scroll toolbar" option if the toolbar (for HTML formatting) is not shown. Add comprehensive tests for Card.currentDeckId() - Test normal deck scenario (oDid=0 returns did) - Test filtered deck scenario (oDid takes priority) - Test precedence when both IDs are positive - Test real-world filtered deck usage - Test normal deck default behavior - Test edge case where both IDs are same Addresses @NeedsTest annotation on currentDeckId() method Update Card.kt Update CardTest.kt chore: fix warnings in ExifUtil and UniqueArrayList * Convert var to val in ExifUtil * Fix KDoc references in UniqueArrayList Issue: 13282 Co-authored-by: David Allison <62114487+david-allison@users.noreply.github.com> Add comprehensive tests for Card.currentDeckId() - Test normal deck scenario (oDid=0 returns did) - Test filtered deck scenario (oDid takes priority) - Test precedence when both IDs are positive - Test real-world filtered deck usage - Test normal deck default behavior - Test edge case where both IDs are same Addresses @NeedsTest annotation on currentDeckId() method Update Card.kt Update CardTest.kt Update Card.kt Update Card.kt Update CardTest.kt Update CardTest.kt Update CardTest.kt Update Card.kt Update CardTest.kt Update CardTest.kt Update CardTest.kt Update tests to verify functionality calling currentDeckId() Update CardTest.kt Update CardTest.kt Update CardTest.kt Update CardTest.kt Update CardTest.kt Revert "added test files for currentdeckid()" This reverts commit 1b3060e. � This is the commit message #2: Update Card.kt � This is the commit message #3: Update CardTest.kt � This is the commit message #4: Update Card.kt � This is the commit message ankidroid#5: Update CardTest.kt � This is the commit message ankidroid#6: Revert "Update Card.kt & Cardtest.kt" This reverts commit 5bc3121. Test files in cardtest.kt & card.kt
github-merge-queue Bot
pushed a commit
that referenced
this pull request
Dec 20, 2025
� This is the 1st commit message: added test files for currentdeckid() mark test as flaky Issue 19729 fix(deckpicker): Added contentDescription to sync and add card buttons deprecation(libanki): prefer `defaultsForAdding()` over `current()` Deprecates Notetypes.current() in favor of col.defaultsForAdding() Fixes: 19650 Co-authored-by: David Allison <62114487+david-allison@users.noreply.github.com> chore: log 'Activity with no Application' error It's likely that there's another cause other than the backup manager Diagnostics for issue 19050 style: fix dangling top-level KDocs This breaks KtLint 1.8.0 > A dangling toplevel KDoc is not allowed (cannot be auto-corrected) * modify `libs.versions.toml` to use `ktlint = '1.8.0'` * ./gradlew ktLintFormat * revert all changes * manually fix warnings, searching for 'dangling' * manually check fixes ensuring only top-level comments are processed Issue 19614 - updating ktLint docs(github): Explain workflows Quality Checks can be linked to from other pages as an onboarding guide https://github.com/ankidroid/Anki-Android/tree/main/.github/workflows/README.md#quality-checks docs(deps): improve AndroidX lifecycle-process * link changelogs * rename to 'androidxLifecycleProcess' * make location consistent with other libraries Added in 7f7cd37 Disable "Scroll toolbar" if toolbar is not shown In the note editor's overflow menu, disable the "Scroll toolbar" option if the toolbar (for HTML formatting) is not shown. Add comprehensive tests for Card.currentDeckId() - Test normal deck scenario (oDid=0 returns did) - Test filtered deck scenario (oDid takes priority) - Test precedence when both IDs are positive - Test real-world filtered deck usage - Test normal deck default behavior - Test edge case where both IDs are same Addresses @NeedsTest annotation on currentDeckId() method Update Card.kt Update CardTest.kt chore: fix warnings in ExifUtil and UniqueArrayList * Convert var to val in ExifUtil * Fix KDoc references in UniqueArrayList Issue: 13282 Co-authored-by: David Allison <62114487+david-allison@users.noreply.github.com> Add comprehensive tests for Card.currentDeckId() - Test normal deck scenario (oDid=0 returns did) - Test filtered deck scenario (oDid takes priority) - Test precedence when both IDs are positive - Test real-world filtered deck usage - Test normal deck default behavior - Test edge case where both IDs are same Addresses @NeedsTest annotation on currentDeckId() method Update Card.kt Update CardTest.kt Update Card.kt Update Card.kt Update CardTest.kt Update CardTest.kt Update CardTest.kt Update Card.kt Update CardTest.kt Update CardTest.kt Update CardTest.kt Update tests to verify functionality calling currentDeckId() Update CardTest.kt Update CardTest.kt Update CardTest.kt Update CardTest.kt Update CardTest.kt Revert "added test files for currentdeckid()" This reverts commit 1b3060e. � This is the commit message #2: Update Card.kt � This is the commit message #3: Update CardTest.kt � This is the commit message #4: Update Card.kt � This is the commit message #5: Update CardTest.kt � This is the commit message #6: Revert "Update Card.kt & Cardtest.kt" This reverts commit 5bc3121. Test files in cardtest.kt & card.kt
Galal-20
pushed a commit
to Galal-20/Anki-Android
that referenced
this pull request
Apr 18, 2026
# This is the 1st commit message: refactor: delete unused method # This is the commit message ankidroid#2: feat(preferences): improve timeout/backup number dialogs - Cap input at 5 digits, add non-leading zero filter - Rename OK to Save button, add Network timeout dialog title - Add lower limit warning, align M3 dialog specs - Fix namespace, revert unnecessary changes # This is the commit message ankidroid#3: Updated strings from Crowdin # This is the commit message ankidroid#4: build(deps): bump picomatch from 2.3.1 to 2.3.2 in /tools/localization Bumps [picomatch](https://github.com/micromatch/picomatch) from 2.3.1 to 2.3.2. - [Release notes](https://github.com/micromatch/picomatch/releases) - [Changelog](https://github.com/micromatch/picomatch/blob/master/CHANGELOG.md) - [Commits](micromatch/picomatch@2.3.1...2.3.2) --- updated-dependencies: - dependency-name: picomatch dependency-version: 2.3.2 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> # This is the commit message ankidroid#5: ui: enhance Add Note Type dialog styling and validation Changes: - improve dialog appearance by using a Material 3 outlined input box - displays a visual error when a name that already exists is entered by the user - implements a sentence case for TR.notetypesAddNoteType() backend string # This is the commit message ankidroid#6: Updated strings from Crowdin # This is the commit message ankidroid#7: Enhancement: Improve 'Rename note type' dialog # This is the commit message ankidroid#8: fix(sync): Cancel notifications on worker cancellation # This is the commit message ankidroid#9: feat: new multimedia ui for audio recorder # This is the commit message ankidroid#10: Updated strings from Crowdin # This is the commit message ankidroid#11: Improve deck-naming dialogs # This is the commit message ankidroid#12: Updated strings from Crowdin # This is the commit message ankidroid#13: Improve some app dialogs for ankidroid#20508 Replaced "OK" with "Select" in Tags, replaced "OK" with "Add" and change the box's border text from "Tag name" to "Name". Replaced (OK) with (Restore) in Restore to Default. Change the title )Restore to Default( to sentence case. (Question Format) and (Answer Format) changed to lower case in Browser appearance Changes in dialog shown when press "loop" icon in the "Browser appearance" screen . Replaced (OK) with (Restore). Added a title: (Restore to default). The text Changed to "Are you sure you want to restore the browser appearance to default?". # This is the commit message ankidroid#14: Updated strings from Crowdin # This is the commit message ankidroid#15: docs: add SDK version history Evidence for removing upgrade code from the app startup. Also useful user-facing documentation Assisted-by: Claude Opus 4.6 Generated git commands and content All links have been checked manually Some referenced the wrong line number # This is the commit message ankidroid#16: build(deps): bump handlebars from 4.7.8 to 4.7.9 in /tools/localization Bumps [handlebars](https://github.com/handlebars-lang/handlebars.js) from 4.7.8 to 4.7.9. - [Release notes](https://github.com/handlebars-lang/handlebars.js/releases) - [Changelog](https://github.com/handlebars-lang/handlebars.js/blob/v4.7.9/release-notes.md) - [Commits](handlebars-lang/handlebars.js@v4.7.8...v4.7.9) --- updated-dependencies: - dependency-name: handlebars dependency-version: 4.7.9 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> # This is the commit message ankidroid#17: Fix color picker dialog crash on lower Android versions The color indicator used by the color picker dialog was using a circle drawable that was declared only for android versions > 31 so below this it would crash. The fix consists in adding an identical circle drawable available for all Android versions. This produces the same behavior for newer Android versions but doesn't work on lower versions where the clipping is not done and we end up with a square color indicator. To fix this, the placement of the color indicator was updated for these lower versions so it doesn't clip the outer view and to look reasonable well. # This is the commit message ankidroid#18: refactor: make layouts follow naming conventions See LayoutPrefixDetector I went through `TEMPORARILY_IGNORED` and made judgment calls `view_` layouts were used as a catchall I feel 'preference_' and 'page_' should be prefixes, so I kept them 'popup_' optional * card_browser_appearance.xml => activity_card_browser_appearance.xml * card_template_editor.xml => activity_card_template_editor.xml * info.xml => activity_info.xml * introduction_activity.xml => activity_introduction.xml * navigation_drawer_layout.xml => activity_navigation_drawer.xml * navigation_drawer_layout_fullscreen.xml => activity_navigation_drawer_fullscreen.xml * note_type_field_editor.xml => activity_note_type_field_editor.xml * reviewer.xml => activity_reviewer.xml * reviewer_fullscreen.xml => activity_reviewer_fullscreen.xml * reviewer_fullscreen_noanswers.xml => activity_reviewer_fullscreen_noanswers.xml * single_fragment_activity.xml => activity_single_fragment.xml * studyoptions.xml => activity_study_options.xml * add_edit_reminder_dialog.xml => dialog_add_edit_reminder.xml * alert_dialog_checkbox.xml => dialog_alert_dialog_checkbox.xml * alert_dialog_title_with_help.xml => dialog_alert_dialog_title_with_help .xml * browser_columns_selection.xml => dialog_browser_columns_selection.xml * change_note_type_dialog.xml => dialog_change_note_type.xml * control_preference.xml => dialog_control_preference.xml * locale_selection_dialog.xml => dialog_locale_selection.xml * note_editor_toolbar_add_custom_item.xml => dialog_note_editor_toolbar_add_custom_item.xml * note_editor_toolbar_edit_custom_item.xml => dialog_note_editor_toolbar_edit_custom_item.xml * rename_flag_layout.xml => dialog_rename_flag.xml * about_layout.xml => fragment_about.xml * bottomsheet_multimedia.xml => fragment_bottomsheet_multimedia.xml * card_browser_fragment.xml => fragment_card_browser.xml * card_browser_searchview_fragment.xml => fragment_card_browser_searchview.xml * card_template_editor_item.xml => fragment_card_template_editor_template .xml * check_pronunciation_fragment.xml => fragment_check_pronunciation.xml * drawing_fragment.xml => fragment_drawing.xml * internet_permission_fragment.xml => fragment_internet_permission.xml * introduction_layout.xml => fragment_introduction.xml * my_account.xml => fragment_my_account.xml * my_account_logged_in.xml => fragment_my_account_logged_in.xml * note_editor_fragment.xml => fragment_note_editor.xml * notifications_permission.xml => fragment_notifications_permission.xml * page_fragment.xml => fragment_page.xml * permissions_bottom_sheet.xml => fragment_permissions_bottom_sheet.xml * preferences.xml => fragment_preferences.xml * previewer.xml => fragment_previewer.xml * reviewer2.xml => fragment_reviewer.xml * set_due_date_range.xml => fragment_set_due_date_range.xml * set_due_date_single.xml => fragment_set_due_date_single.xml * deck_picker.xml => include_deck_picker.xml * floating_add_button.xml => include_floating_add_button.xml * reviewer_flashcard_fullscreen.xml => include_reviewer_flashcard_fullscreen.xml * controls_tab_layout.xml => preference_controls_tab.xml * extended_category.xml => preference_extended_category.xml * browser_column_cell.xml => view_browser_column_cell.xml * browser_column_heading.xml => view_browser_column_heading.xml * colorpicker_flag_bubble.xml => view_colorpicker_flag_bubble.xml * instant_editor_field_layout.xml => view_instant_editor_field.xml * navdrawer_header.xml => view_navdrawer_header.xml * note_editor_toolbar.xml => view_note_editor_toolbar.xml * popup_brush_options.xml => view_popup_brush_options.xml * popup_eraser_options.xml => view_popup_eraser_options.xml * progress_bar.xml => activity_progress_bar.xml * resizing_divider_internal.xml => view_resizing_divider_internal.xml * spinner_dropdown_item_with_radio.xml => item_spinner_dropdown_with_radio.xml * sync_progress_layout.xml => view_sync_progress_layout.xml * tab_layout_icon_on_end.xml => view_tab_layout_icon_on_end.xml * studyoptions_fragment.xml => fragment_study_options.xml * preferences_reviewer_menu.xml => fragment_preferences_reviewer_menu.xml Issue 20516 # This is the commit message ankidroid#19: style: enforce 'preference_' prefix for layouts Issue 20516 # This is the commit message ankidroid#20: style: enforce 'page_' prefix for Anki HTML pages Issue 20516 # This is the commit message ankidroid#21: style: enforce 'popup_' prefix for Anki HTML pages Allows us to remove `LayoutPrefixDetector.TEMPORARILY_IGNORED` Fixes 20516 # This is the commit message ankidroid#22: feat(logs): improve measureTime logging * Log a Duration * Timber.w on failure `TimeSource.Monotonic.measureTime` is more accurate and returns a duration, but does not allow returning the `T` So re-implement using the implementation of the system `measureTime`: `TimeSource.Monotonic.markNow()` Update the method to log on failure, rethrowing Prep for 20168 # This is the commit message ankidroid#23: fix(preferences): add 'Review reminders' header `withResId` was missing, causing an intermittent failure in PrefsSearchBarTest Fixes 19918 # This is the commit message ankidroid#24: refactor: remove unused methods/classes # This is the commit message ankidroid#25: Updated strings from Crowdin # This is the commit message ankidroid#26: refactor(deck-picker): remove v2.6 startup code Unreachable code * v2.6 has minSDK targetSDK 23, we're on minSDK 24 https://github.com/ankidroid/Anki-Android/blob/v2.6/AnkiDroid/build.gradle#L11 Also removes OneWaySyncDialog # This is the commit message ankidroid#27: refactor(deck-picker): remove v2.10 startup code This removes a case where an upgrade would force a 'check database' Issue 5932: a user could corrupt a card by moving it to a filtered deck. This is a card-level corruption bug (relatively minor) from 6 years ago which is now be displayed to the user as an issue, rather than crash. # This is the commit message ankidroid#28: Updated strings from Crowdin # This is the commit message ankidroid#29: Fix reschedule info visibility in new filtered deck screen I forgot to enable this views when the state is available. # This is the commit message ankidroid#30: Add input checks to limit field for filtered decks options screen Checks for input: empty and not a number. More than 5 digits entered is also protected against with an input filter(to replicate desktop). Building/rebuilding of the deck will be disabled when any of these errors are encountered. # This is the commit message ankidroid#31: Fix show excluded cards button visibility in filtered decks screen This button was being shown when the screen was loading and deck data was not available. # This is the commit message ankidroid#32: Improve title for filtered decks options screen Follows desktop behavior: - when creating a new deck use the name generated at start - when editing a deck use its initial name Desktop uses TR.actionsOptionsFor(deckName), this is too big as a title so just the deck name is being shown. # This is the commit message ankidroid#33: Fix second filter state save in filtered deck screen Replaces the cards state AutoCompleteTextView(thanks Material theme) with a Spinner. Fixes a bug where the second filter state was not saved because the code considered it null when the deck being loaded didn't already had the second filter enabled. # This is the commit message ankidroid#34: Bumped version to 2.24.0alpha12 # This is the commit message ankidroid#35: test(card-browser): check toolbar title updates on row selection # This is the commit message ankidroid#36: fix: storage leak for AudioRecorder test: unit tests to verify file deletion # This is the commit message ankidroid#37: feat: Introduce ProfileManager for multi-user orchestration - Introduces ProfileManager to orchestrate multi-user environments, managing secure ProfileContextWrapper lifecycles and configuring WebView isolation to prevent data leaks. This implementation ensures backward compatibility via automatic legacy user migration while enforcing memory safety and strict storage path validation # This is the commit message ankidroid#38: test: unit test for ProfileId class # This is the commit message ankidroid#39: test: unit tests for profile manager # This is the commit message ankidroid#40: fix(study-options): load local images in deck description # This is the commit message ankidroid#41: Updated strings from Crowdin # This is the commit message ankidroid#42: Add 'Create backup' menu option to DeckPicker To replicate desktop. Adds a SHIFT + CTRL + B shortcut for it which isn't quite what desktop uses. # This is the commit message ankidroid#43: Updated strings from Crowdin # This is the commit message ankidroid#44: refactor: Explicit Backing Fields for LoginViewModel # This is the commit message ankidroid#45: refactor: use field backing property for InstantEditorViewModel # This is the commit message ankidroid#46: Improve dialog UI consistency and readability Set due date: - Add text to tab icons - Replace "Help" text with a question mark icon in the upper right corner Change note type: - Update tab text and icon colors - Improve cloze note type colors # This is the commit message ankidroid#47: fix: resolve string lint error by adding comments. # This is the commit message ankidroid#48: - Standardize tab layouts by ensuring text and icons occupy two lines for consistency with 'Set Due Date' dialog. - Improve Cloze note type color visibility for better readability in the note type spinner. - Ensure Spinner dropdown width is stable by setting a minimum width and proper layout weights, preventing it from collapsing when the dialog height changes. # This is the commit message ankidroid#49: - Handle Requested changes # This is the commit message ankidroid#50: - Handle some requested changes # This is the commit message ankidroid#51: - fix: Handle requested changes # This is the commit message ankidroid#52: fix: Handle requested changes. # This is the commit message ankidroid#53: Fix conflict
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.
No description provided.