RIP-Comm / sossoldi

"Sossoldi" is a wealth management / personal finance / Net Worth tracking app, made with Flutter.
MIT License
252 stars 70 forks source link

WIP notifications system #150

Closed K-w-e closed 3 months ago

K-w-e commented 5 months ago

Hi, I have submitted a pull request, but it is not yet 100% complete, and I am seeking your guidance. I've tested notifications on the emulator, and it works correctly. However, when building the app in release mode, I get the error "Module was compiled with an incompatible version of Kotlin. The binary version of its metadata is 1.7.0, expected version is 1.5.1.".

If you have any insights or suggestions on how to address this Kotlin version compatibility issue, it would be very appreciated.

Additionally, for context, I'm using the WorkerManager library to schedule notifications (it may be useful for scheduling recurring transactions as well).

theperu commented 5 months ago

Hi! I marked this PR as a draft since it's not ready yet, unfortunately I don't know enough about notifications to help you out. Maybe @lucaantonelli as more knowledge about it

mikev-cw commented 5 months ago

Hi! I marked this PR as a draft since it's not ready yet, unfortunately I don't know enough about notifications to help you out. Maybe @lucaantonelli as more knowledge about it

Yeah, we definitely need him! 😆

K-w-e commented 5 months ago

PR updated with the latest changes, and it seems to be functioning correctly now. I've tested it on android, but unfortunately, I can't perform additional testing on iOS devices.

Let me know if you have any suggestions!

theperu commented 5 months ago

Great! Could you also explain a little bit how the notifications should work?

K-w-e commented 5 months ago

Sure! Since we are not using an external tool like firebase to register each device and send him a notification through a backend service, i opted for local_flutter_notification to build notifications directly within the app. By utilizing Workmanager you can schedule it each 1/7/30 days (or whenever you want), and this is working also when the app is closed/in background.

For proper organization and customization, each "notification type" in the app should have its own channel to keep their settings separate. image

Feel free to add or ask anything else

K-w-e commented 5 months ago

Let me add one more thing. Through the Workmanager library, you can schedule all possible tasks, including recurring transactions. I don't know if you have already considered any other solutions.

mikev-cw commented 5 months ago

Let me add one more thing.

Through the Workmanager library, you can schedule all possible tasks, including recurring transactions. I don't know if you have already considered any other solutions.

Super! Yes, recurring transactions would works exactly like this. I was working on that, let me deeply check your work on next days

mikev-cw commented 4 months ago

As seen on our Discord, seems that this doesn't work on iOS, due to system limitation. For now we will leave this feature for Android users only, see #160 We just need to hide or disable this feature on iOS, then we can merge this

K-w-e commented 3 months ago

@mikev-cw Would you like it to be disabled, similar to the "Import/Export" button, or simply remove the "Notifications" button from the menu on iOS?

mikev-cw commented 3 months ago

@mikev-cw Would you like it to be disabled, similar to the "Import/Export" button, or simply remove the "Notifications" button from the menu on iOS?

Just do what you think is the right thing! My personal opinion is that we should hide the option, since is not available in that specific platform, but you decide. :)

K-w-e commented 3 months ago

@mikev-cw Would you like it to be disabled, similar to the "Import/Export" button, or simply remove the "Notifications" button from the menu on iOS?

Just do what you think is the right thing! My personal opinion is that we should hide the option, since is not available in that specific platform, but you decide. :)

Ok basically in the last commit i'm hiding the options without actions on click