## 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
- Update flutter
- Update packages
- Fix UI issues because of update (material 3)
- bump up version to v0.8.80
## Tests
- [x] Building on android and iOS.
---------
Co-authored-by: Neeraj Gupta <254676+ua741@users.noreply.github.com>
## 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>
## Description
To keep the changes simple, we are not deleting any existing database
instances. In case we need to store this information in the future, we
will reuse the existing database instead of creating a new one.