Releases: DevsWithDodo/dodo_app
Releases · DevsWithDodo/dodo_app
3.2.1
3.2.0
New features:
- Payment methods added: User can set ways they want to receive money. This can be seen by the other members of the group. Payment methods can be set in the user settings.
- Recommended payments: If the add payment page is opened, on the top recommended payments for the user are listed. These are the same payments as in the necessary payments dialog.
- Main dialog builder: Way to show dialogs on the main group page on init or on rebuild
- Two types of dialogs: modal or bottom
- canShow function to decide wether a dialog can be shown in the situation
- The first dialog which returns true is shown
- Dialogs can be shown either on the initialization or on a build call. Currently it is called in the onRefresh of the main page and on the return from the purchase/payment page.
- Currently 5 of these dialogs exist:
- Trial ended dialog (modal)
- Explore themes (bottom)
- Pin verification (bottom)
- Add payment methods (bottom)
- Like the app (modal)
- Added
common.dart- Moved the
adHeightfunction from the config - Added showToast function which shows a platform toast if available and a widget toast otherwise
- Moved the
- Added function to show dialog when trial ended
- Added bottom dialog that asks for user's pin so they don't forget it.
Redesigns:
- Purchase and payment info bottom sheet
- Using text instead of icons so it is clearer who is the buyer and receiver
- Custom amounts can be seen
- Switching between group currency and purchase currency
- Added clearer info toasts for
MemberChipscustom amount chooser. - Member info bottom sheet
- Changed icons to texts for consistency
- Added payment methods
- Added button to show user's purchases/payments
- Purchase and payment entry
- Added 'You bought/paid'/'You received' text instead of icon which was not clear to understand.
- Also cleaned up code and set height of the entry could be removed.
- Added "Change nickname" setting to the group settings so it is easier to find
Refactors:
FutureSuccessDialogtoFutureOutputDialog- Added additional functionality: the dialog can handle multiple output states, not just
trueorfalse. These are handled via extensions of the classFutureOutput. It hosts a truthfulness value. - Per default a truthy output always shows a check animation, a falsy always an error screen.
- The functionality can be customized via props:
Map<FutureOutput, VoidCallback> outputCallbacks: what happens for each output state.Map<FutureOutput, String> outputTexts: what the error text should be (only applicable to falsy outputs)- 'Map<FutureOutput, Widget> outputWidgets' customizes the whole widget shown for a specific output state.
showFutureOutputDialogfunction added to reduce boilerplate code
- Added additional functionality: the dialog can handle multiple output states, not just
- Reduced the places where cache clears are used. Changed them for EventBus calls. Added EventBus for member list aswell.
- Removed unnecessary state of
MemberChipsas it was always synchronized with the props it got. - Added
ScreenWidthProviderwhich provides theScreenWidthclass with width, height and isMobile boolean- With it all responsive screens could be cleaned up
- Also removed bad code design using
Tablecomponent instead ofRowwithExpandables for responsiveness
Fixes:
- Member list not updating when adding guest to the group.
3.1.1
3.1.0
New feature:
- "Who should I pay" button changed to "Necessary payments". The dialog shows a list of all payments needed for all members to break even. The logged in user's payments are highlighted.
Refactoring:
- Changed EventBus from provided value to a singleton, not using event_bus_plus library but own implementation with better solution for disposing.
- Removed ad_management.dart.example, removed ad_management.dart from gitignore, moved ad_ids to config.dart
- Removed all app state variables (currentUserId, currentUsername etc.) from config.dart. Using AppStateProvider instead. This handles all changes of the user aswell: login, logout, register, fetch data on app start. This had the following effects:
- Removed save_preferences.dart as it is not needed anymore.
- Moved themeName from its own AppStateProvider to the new one. Removed app_state_notifier.dart
- Removed login_methods.dart
- Made the Http methods to a static class, so instead of httpGet now one writes Http.get
- Added InviteUrlProvider. Now the inviteUrl doesn't have to be reached through props throughout login/register pages.
3.0.9
3.0.8
Redesigns:
- Redesigned join group, create group, add purchase, add payment pages. With better usability on large screen devices.
- Added tablet mode to statistics page.
- Chang styling of
Switchon group settings page.
Fixes:
- Updated Flutter version. This fixes the issue of
ModalBottomSheets animation being broken. - Fixed wierd scrolling behaviour on main page, user settings page, history page.
Refactoring:
- Removed print statements all over the project.
- Minor changes in relation to null safety.
3.0.7
New features:
- Shopping list doesn't reload when adding, updating or deleting items. Items are changed locally.
- Showcasing all hidden functionality (category, currency, calculator, custom amounts) on the purchase page. Using the showcaseview package.
Refactoring:
- Migrated the project to use null safety.
GradientButton- Added
GradientButton.iconfactory for buttons with icon and label. - Added
IconThemeDataandDefaultTextStyleso that text and icons match the selected color of the button. - Added static function
textColorOnGradienttoAppTheme - Updated all usages of
GradientButtonto fit the changes
- Added
- URI builder fully supports query parameters.
3.0.6
New or reworked features:
- For the choosing of a custom amount for a purchase receiver, in the
CustomAmountDialog:- The chosen amont can be edited via a
TextFieldtoo. - The
TapOrHoldButtonis smaller.
- The chosen amont can be edited via a
- On the
AddPurchasePageshow the custom amount of every selected purchase receiver between the switch and deleteIconButtons. - Removed feature discovery througout the app.
- History filtering:
- Restored option to filter by date.
- Added option to filter by category.
- Restored the bug report option, new location is inside the settings.
- Added option to filter by category to the statistics.
- Relocated the "I'm shopping" button on the shopping list page to the top right of the widget and changed it to an
IconButton. - "Who should I pay" button changed from
OutlinedButtontoTextButton. - Added "Statistics and data export" card to the
MainPage. Removed the correspondingFloatingActionButtonfrom theGroupSettingsPage. - Added "bills" category
Fixes:
- Fixed the bug where on Android and iOS when in tablet mode some widgets were cut off at the bottom of the display.
Refactoring:
- Better syntax for the
TextFieldvalidator - Refinements to the URL builder.
- New function for getting categories by type.
- Renamed fields in
ErrorMessagewidget. - Renamed
callbackfunctions througout the code to better show the functionality. - Other small improvements for cleaner code.