Skip to content

Conversation

@lukstbit
Copy link
Member

Purpose / Description

Fixes a state restore bug for find and replace fragment where previously selected notes would get ignored when coming back from the background. This is not great because if the user doesn't notice he's going to run the find and replace operation over his entire collection. See bug:

Screen_recording_20251230_192801.webm

I used our IdsFile implementation to not query the browser's ViewModel. I'm not enthusiastic about this but it works, the browser could probably be changed to fix this but I didn't look into it.

With the code in this PR:

Screen_recording_20251230_191350.webm

Fixes

How Has This Been Tested?

Checked the bug scenario, ran tests.

Checklist

  • You have a descriptive commit message with a short title (first line, max 50 chars).
  • You have commented your code, particularly in hard-to-understand areas
  • You have performed a self-review of your own code
  • UI changes: include screenshots of all affected screens (in particular showing any new or changed strings)
  • UI Changes: You have tested your change using the Google Accessibility Scanner

To get the current selected notes the fragment is querying the browser's
ViewModel for the selected notes.

This works most of the times but fails(we lose the selection and will
target everything instead of only the selected notes) when going to
the background and coming back(and fragment gets recreated). At this point
the fragment tries to access again the selected notes but these are not
available as they are being manually restored from a file.

This bug can be seen by using the "Don't keep activities" dev option.

The fix consists in using an IdsFile so the fragment always has a
reference to the selected notes from the moment of its creation.
@lukstbit lukstbit force-pushed the fix_findReplaceBackgroundRestore branch from bdffe19 to a7cd900 Compare December 30, 2025 17:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant