nextcloud / nextcloud/talk-android
New scheme for room (replace ArbitraryStorage table and datastore)
Nobody has claimed this yet.
- Dominant language
- Kotlin
- Stars
- 739
- Forks
- 321
- Avg merge
- 14h 59m
- Merged PRs (30d)
- 151
Description
Currently the app uses datastore and room, while room only has 2 tables (User and ArbitraryStorage).
It's currently not clear when to use datastore(via AppPreferencesImpl) or ArbitraryStorage.
There should be only room used to store any data.
ArbitraryStorage should be replaced as it contains mixed usecases which is not good (user settings and conversation settings).
A new scheme must be created which for the beginning contains tables for:
- app wide settings
- user wide settings
- conversation settings
while always having in mind that in the long term we also want to have full offline support.
Chat
- Develop offline-first data layer for chat
- #3630
- Devise and implement DB Schema to enable reading from chat offline
- #3928
- Create Background job to monitor network connections
- Implement Pull-Based Synchronization to update DB on internet connection.
Conversations
- todo
User Settings
- todo
App Settings
- todo
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reading the existing AppPreferencesImpl and ArbitraryStorage usage, then review the completed chat work in issues #3630 and #3928. The intended result is a Room-based scheme covering app-wide, user-wide, and conversation settings, with the remaining Conversations, User Settings, and App Settings work completed and the old mixed storage approach replaced.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- android, kotlin
- Domain
- database, mobile
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100