updateEmail uses getEnteColorScheme() which adds an inherited widget as dependency to the widget. Adding an inherited widget as dependency before init state is completed throws an exception
## 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
Users can now tap on the onboarding screen 7 times to bring up a page
where they can configure the endpoint the app should be connecting to.
![photos-selfhost](https://github.com/ente-io/ente/assets/1161789/42fda09a-07e4-4c4e-a658-ec4a2d3f1848)
## Tests
- [x] Verified that production flows are working as expected
- [x] Verified that configuring the endpoint to a local instance lets
you
- [x] Connect to that instance
- [x] Create an account
- [x] Upload a photo
- [x] Logout and log back in
## 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
On bumping up photo_manager version, it introduced a breaking change
where we need to explicitly ask for ACCESS_MEDIA_LOCATION permission.
## Tests
Tested on android 13 and 14 devices.
## Description
When a customer whose Stripe subscription is past due (within the 30 day
window after expiry time and has not been cancelled) clicks on the
subscription modal, take them to the payment portal to complete the
subscription.
## Tests
- [x] Tested web
- [x] Tested mobile
## Description
### Stripe
- Settings have been modified to "Cancel" the subscription if all
attempts to charge an invoice fails. The previous configuration was to
set the subscription to "Past Due".
### Museum
- Updated our Stripe workflow to use `PaymentBehaviorAllowIncomplete` in
case of SEPA payments
- Fixed the issue caused by us spawning unnecessary subscriptions when a
customer tried to renew their expired subscription
- Removed the email that was being sent out when a Stripe subscription
expired. We will have to run our own cron to send a notification and
perform necessary clean up. When payments fail, we will still send a
notification to intimate the customer that their account is on hold.
### Mobile
- Fixed the dialogs and error messages on the payment page
## Tests
The following cases were tested for SEPA, Credit Cards, and Credit Cards
with 3DS.
- [x] Purchase
- [x] Success
- [x] Failure
- [x] Renewal
- [x] Success
- [x] Failure
- [x] Upgrades
- [x] Success
- [x] Failure
- [x] Cancellation
- [x] Resumption post recovery
## Note
These changes are likely to break in the event of some corner cases we
haven't thought of. But this will land us in a state that is better than
where we are right now in terms of collecting payments for expired
subscriptions and those via SEPA.
On desktop, now there Help menu will have an "Ente Help" option instead of "FAQ"
(Unrelated: I noticed that user facing strings in the desktop app are not
localized).
The only place remaining after this is the sidebar on mobile
(`support_section_widget.dart`), but I wasn't sure of what string to use (and
how to add it to the localized strings for mobile) so I've left it unchanged.
## Description
- Fix broken integration test used for benchmarking gallery scroll
performance.
- Automate email and password entry.
- Write script to run perf test.
## Description
- Increase the interaction timeout to 15s
- Make sure that models aren't downloaded over mobile data, and that it
resumes initialization when network conditions are favorable
## Tests
- [x] Tested manually
- Change 'Add viewer' buttons logic to work with the new UI.
- Long press on an email to verify.
- Filter suggestions list with the text entered in 'Enter email' text field.
The intent had always been to have the individual project gitignores be self
contained. In my previous PR (https://github.com/ente-io/ente/pull/516) I'd for
some reason not followed this: correcting my mistake now. .vscode is gitignored
both at the top level and at the individual project levels (as it was
originally).
## Description
Stack has `clipBehaviour = Clip.hardEdge` by default. This is necessary
if content inside the stack is overflowing it's boundary and it has to
be clipped. Clipping is expensive so it's worth removing it when it
makes sense.
In this case of `GalleryFileWidget`, content doesn't overflow the
Stack's boundary so the clip operation can be removed by setting
`clipBehaviour = Clip.none`.
## Description
- Upscale default placeholder
- Keep image ready to be rendered in home widget before adding the home
widget.
- Change the photo in home widget every time it's clicked.
- Open favourites when home widget is clicked.
- Fix multiple issues
## Tests
Did a good amount of testing.
---------
Co-authored-by: ashilkn <ashilkn99@gmail.com>
Co-authored-by: Ashil <77285023+ashilkn@users.noreply.github.com>