Ivy-Apps / ivy-wallet

Ivy Wallet is an open-source money manager app for Android, no longer maintained. You can fork the code or download the final version from Google Play.
https://play.google.com/store/apps/details?id=com.ivy.wallet
GNU General Public License v3.0
2.81k stars 677 forks source link

[BUG] Exchange rates list is blank #2677

Closed nvllz closed 1 year ago

nvllz commented 1 year ago

Please confirm the following

Describe the bug

Just downloaded the latest Google Play version to check out the current state of the app. The exchange list doesn't set up automatically for me, as it used to before.

To Reproduce

  1. Open the fresh install of the app
  2. Set your initial wallet details
  3. Head to the Exchange Rates screen in settings

Expected behavior

You get the list with exchange rates. It used to work this with my older build, as the app supplied the rates automatically with some (probably yahoo finances) web requests.

Screenshots

No response

Smartphone

Samsung Galaxy s20 Ultra, Android 13

Additional context

Additionally the app seems to send multiple google requests without any user action. I mean.. I'm scrolling through my imported data and Ivy is sending some requests to Google servers in the same time. What's the point in making the app sending requests in this certain moment, when the app is working fine (no crashes etc)?

ILIYANGERMANOV commented 1 year ago

Thanks for reporting! That's a critical bug 😬 We don't send any explicit requests to Google. We just use Firebase Crashlytics to track app's stability. If you find something in the code will help us disable those requests please send us a PR. It'll be highly appreciated!

ILIYANGERMANOV commented 1 year ago

I'm on it!

nvllz commented 1 year ago

Thanks for handling this! I would also make the exchange rates requests to automatically update only once in a time (keeping the last update timestamp and making the download function [which probably runs on each start of the app] to first compare the stored timestamp with the current one and call an update if the rates data is say 24h old) and add a manual refresh button in the Exchange Rates screen.

We just use Firebase Crashlytics to track app's stability.

Sorry to be so direct, but I find these requests to be an unnecessary drain on battery power. What data are you getting from this? Maybe it's a matter of configuring this thing to not log unnecessary data in the background?

To me it looks like the recent issue tickets here on github that were posted via a bot and did more harm than good. It shows that it's not always about quantity.

ILIYANGERMANOV commented 1 year ago

Sorry to be so direct, but I find these requests to be an unnecessary drain on battery power. What data are you getting from this? Maybe it's a matter of configuring this thing to not log unnecessary data in the background?

We get this. I don't think that there's a way to configure it. Also, I haven't monitored how often it does log but I assume Google made the algorithm pretty efficient cuz almost every big Android app uses Firebase Crashlytics. Without Crashlytics we're totally blind and there is no way to help users where the app crashes on app open - like the IvyBilling one that we had.

Screenshot 2023-09-25 at 0 17 53

I would also make the exchange rates requests to automatically update only once in a time (keeping the last update timestamp and making the download function [which probably runs on each start of the app] to first compare the stored timestamp with the current one and call an update if the rates data is say 24h old) and add a manual refresh button in the Exchange Rates screen.

That's valid but we won't do it for the following reasons:

  1. It requires dev time that I don't have.
  2. We're in the search for better free exchange rates providers that provide more recent data.
  3. Main reason: fetch per app start one, seems fine to me. These exchange rates are really really, small KBs (much less than the information needed to display the current issue that we're chatting on)
  4. Software complexity: the dumber the logic, the better
ILIYANGERMANOV commented 1 year ago

Hey @nvllz I can't reproduce the missing exchange rates bug 😬 Can you give me some more info?

  1. What's your best currency?
  2. Can you try to reproduce the bug with the APK from https://github.com/Ivy-Apps/ivy-wallet/actions/runs/6292449972?
nvllz commented 1 year ago

It works well with this build. The Google Play release fails to list the rates for me even after reinstalling the app.

ILIYANGERMANOV commented 1 year ago

It works well with this build. The Google Play release fails to list the rates for me even after reinstalling the app.

Got it, will publish an Ivy Wallet update this week. Thanks for testing and reporting! We were blind to this 😬 We definitely need more UI and automated tests.

ILIYANGERMANOV commented 1 year ago

Fixed on latest main.