## Description
https://github.com/ente-io/ente/assets/254676/7ec2f82a-d0d1-4dbe-8836-87d1ffd793f6
## Tests
- [x] Hide Shared Item on Home Page If user has copied it.
- [x] Keep the fav state on the UI
- [x] Client side hash based dedupe works for copied items. Items are
linked to existing item instead of uploading duplicate entries
## Description
Using both `sqlite_async` and `sqlite3` for querying at the same time
was throwing this error:
`error: SqliteException(5): while executing, database is locked,
database is locked (code 5)`
So, have used `sqlite_async` everywhere.
## Tests
- [x] Tested all changes
## Description
Using [sqlite_async](https://pub.dev/packages/sqlite_async) has
increased query speed by about 5x and has removed GC logs like:
`Background concurrent copying GC freed 424845(20MB) AllocSpace objects,
183(4932KB) LOS objects, 37% free, 39MB/63MB, paused 144us,44us total
128.048ms`, which has improved performance of the app.
Tried using [sqlite3](https://pub.dev/packages/sqlite3), which reduced
query speed by 10x and removed the GC log, but introduced some jank
since it blocks the UI.
Converting the fetched rows to `EnteFile` now runs on an isolate to
avoid blocking the UI.
## Tests
Did manual testing to see difference in jank.
## Description
- Fixes corrupt files (missing GPS data) that were uploaded due to [this
issue](https://github.com/ente-io/ente/pull/1261)
- Refactor
## Tests
Tested and working
- Uploaded two file from a build that has missing permission for
`ACCESS_MEDIA_LOCATION` and GPS data is missing.
- Created a new build with changes in this PR.
- Deleted the file from device.
- Remote file has GPS data when checked from file info.
---------
Co-authored-by: Neeraj Gupta <254676+ua741@users.noreply.github.com>