Skip to content

Catch up merge from flerda into 2.1#5

Merged
flerda merged 5 commits intoankidroid:v2.1-devfrom
flerda:v2.1-dev
Jan 30, 2013
Merged

Catch up merge from flerda into 2.1#5
flerda merged 5 commits intoankidroid:v2.1-devfrom
flerda:v2.1-dev

Conversation

@flerda
Copy link
Copy Markdown
Member

@flerda flerda commented Jan 30, 2013

No description provided.

iniju and others added 5 commits January 30, 2013 22:49
progress messages, fixes on import media bugs - updated according to
feedback2
Catch up merge from 2.0.1 into 2.1
@ghost ghost assigned flerda Jan 30, 2013
flerda added a commit that referenced this pull request Jan 30, 2013
Catch up merge from flerda into 2.1
@flerda flerda merged commit 454fb8e into ankidroid:v2.1-dev Jan 30, 2013
@ghost ghost mentioned this pull request Nov 11, 2025
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
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.

2 participants