Page MenuHomePhabricator

Convert Tabs to use database, not shared preference.
Open, MediumPublic

Description

Our current implementation of Tabs uses a SharedPreference for storing the list of tabs (and the backstack for each tab), which is architecturally unsound and unsustainable.

This should be refactored to use a database table, similar to other features in the app that make use of arbitrary lists of items. After this is done, we can consider increasing the maximum number of tabs from the current arbitrary limit of 100. This will also resolve numerous downstream issues and other weird behavior when the number of tabs approaches or exceeds 100.

Event Timeline

Dbrant triaged this task as Medium priority.Dec 18 2023, 3:43 PM

Is Room database the best approach for storing Tab data (Tab as an entity) ? Are there alternatives or best approach ?

Is Room database the best approach for storing Tab data (Tab as an entity) ? Are there alternatives or best approach ?

Sure, since the rest of the project uses Room entities, this would make sense.

This seems like a big task for me as a newcomer. Perhaps I could start with a smaller issue to get acquainted with the codebase