diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj index c0772e01fb6..6dd225cf4e6 100644 --- a/ios/Runner.xcodeproj/project.pbxproj +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -372,7 +372,7 @@ buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; - CURRENT_PROJECT_VERSION = 87; + CURRENT_PROJECT_VERSION = 88; DEVELOPMENT_TEAM = NPC44Y2C98; ENABLE_BITCODE = NO; INFOPLIST_FILE = Runner/Info.plist; @@ -380,7 +380,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 5.0.87; + MARKETING_VERSION = 5.0.88; PRODUCT_BUNDLE_IDENTIFIER = com.invoiceninja.app; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; @@ -502,7 +502,7 @@ buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; - CURRENT_PROJECT_VERSION = 87; + CURRENT_PROJECT_VERSION = 88; DEVELOPMENT_TEAM = NPC44Y2C98; ENABLE_BITCODE = NO; INFOPLIST_FILE = Runner/Info.plist; @@ -510,7 +510,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 5.0.87; + MARKETING_VERSION = 5.0.88; PRODUCT_BUNDLE_IDENTIFIER = com.invoiceninja.app; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; @@ -526,7 +526,7 @@ buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; - CURRENT_PROJECT_VERSION = 87; + CURRENT_PROJECT_VERSION = 88; DEVELOPMENT_TEAM = NPC44Y2C98; ENABLE_BITCODE = NO; INFOPLIST_FILE = Runner/Info.plist; @@ -534,7 +534,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 5.0.87; + MARKETING_VERSION = 5.0.88; PRODUCT_BUNDLE_IDENTIFIER = com.invoiceninja.app; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; diff --git a/lib/constants.dart b/lib/constants.dart index 34f25bffc80..492b66999bc 100644 --- a/lib/constants.dart +++ b/lib/constants.dart @@ -4,7 +4,7 @@ class Constants { } // TODO remove version once #46609 is fixed -const String kClientVersion = '5.0.87'; +const String kClientVersion = '5.0.88'; const String kMinServerVersion = '5.0.4'; const String kAppName = 'Invoice Ninja'; diff --git a/lib/data/models/models.dart b/lib/data/models/models.dart index d2d3d76448c..fdbc611a3c9 100644 --- a/lib/data/models/models.dart +++ b/lib/data/models/models.dart @@ -145,11 +145,9 @@ class EntityAction extends EnumClass { String toApiParam() { final value = toString(); - if (value.endsWith('email')) { + if (this == EntityAction.sendEmail || this == EntityAction.bulkSendEmail) { return 'email'; - } - - if (this == EntityAction.cancelInvoice) { + } else if (this == EntityAction.cancelInvoice) { return 'cancel'; } else if (this == EntityAction.convertToExpense) { return 'expense'; diff --git a/lib/ui/app/edit_scaffold.dart b/lib/ui/app/edit_scaffold.dart index af12dfb5259..b37bb2587f4 100644 --- a/lib/ui/app/edit_scaffold.dart +++ b/lib/ui/app/edit_scaffold.dart @@ -124,7 +124,7 @@ class EditScaffold extends StatelessWidget { child: Scaffold( body: state.companies.isEmpty ? LoadingIndicator() - : showUpgradeBanner + : showUpgradeBanner && !isApple() ? Column( children: [ InkWell( @@ -132,7 +132,7 @@ class EditScaffold extends StatelessWidget { upgradeMessage, color: Colors.orange, ), - onTap: state.userCompany.isOwner && !isApple() + onTap: state.userCompany.isOwner ? () async { launch(state.userCompany.ninjaPortalUrl); } diff --git a/lib/ui/app/menu_drawer.dart b/lib/ui/app/menu_drawer.dart index 39e29e7daf8..3b241e75548 100644 --- a/lib/ui/app/menu_drawer.dart +++ b/lib/ui/app/menu_drawer.dart @@ -527,13 +527,14 @@ class MenuDrawer extends StatelessWidget { icon: getEntityIcon(EntityType.recurringExpense), title: localization.recurringExpenses, ), - DrawerTile( - company: company, - icon: getEntityIcon(EntityType.reports), - title: localization.reports, - onTap: () => viewEntitiesByType( - entityType: EntityType.reports), - ), + if (!isApple() || state.isProPlan) + DrawerTile( + company: company, + icon: getEntityIcon(EntityType.reports), + title: localization.reports, + onTap: () => viewEntitiesByType( + entityType: EntityType.reports), + ), DrawerTile( company: company, icon: getEntityIcon(EntityType.settings), diff --git a/lib/ui/app/review_app.dart b/lib/ui/app/review_app.dart index 905538cf5bd..3c274a98e5d 100644 --- a/lib/ui/app/review_app.dart +++ b/lib/ui/app/review_app.dart @@ -79,7 +79,7 @@ class _ReviewAppState extends State { child: ConstrainedBox( constraints: const BoxConstraints(minWidth: 100), child: Padding( - padding: const EdgeInsets.symmetric(vertical: 8), + padding: const EdgeInsets.symmetric(vertical: 16), child: Text( _likesTheApp == null ? localization.yesItsGreat @@ -102,7 +102,7 @@ class _ReviewAppState extends State { child: ConstrainedBox( constraints: const BoxConstraints(minWidth: 100), child: Padding( - padding: const EdgeInsets.symmetric(vertical: 8), + padding: const EdgeInsets.symmetric(vertical: 16), child: Text( _likesTheApp == null ? localization.notSoMuch diff --git a/macos/Runner.xcodeproj/project.pbxproj b/macos/Runner.xcodeproj/project.pbxproj index 9ed4fa9bb69..58ef129f86c 100644 --- a/macos/Runner.xcodeproj/project.pbxproj +++ b/macos/Runner.xcodeproj/project.pbxproj @@ -420,13 +420,13 @@ CODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements; CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 87; + CURRENT_PROJECT_VERSION = 88; INFOPLIST_FILE = Runner/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/../Frameworks", ); - MARKETING_VERSION = 5.0.87; + MARKETING_VERSION = 5.0.88; PROVISIONING_PROFILE_SPECIFIER = ""; SWIFT_VERSION = 5.0; }; @@ -548,13 +548,13 @@ CODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements; CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 87; + CURRENT_PROJECT_VERSION = 88; INFOPLIST_FILE = Runner/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/../Frameworks", ); - MARKETING_VERSION = 5.0.87; + MARKETING_VERSION = 5.0.88; PROVISIONING_PROFILE_SPECIFIER = ""; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 5.0; @@ -570,13 +570,13 @@ CODE_SIGN_ENTITLEMENTS = Runner/Release.entitlements; CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 87; + CURRENT_PROJECT_VERSION = 88; INFOPLIST_FILE = Runner/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/../Frameworks", ); - MARKETING_VERSION = 5.0.87; + MARKETING_VERSION = 5.0.88; PROVISIONING_PROFILE_SPECIFIER = ""; SWIFT_VERSION = 5.0; }; diff --git a/pubspec.foss.yaml b/pubspec.foss.yaml index ad2202ff668..035bd513323 100644 --- a/pubspec.foss.yaml +++ b/pubspec.foss.yaml @@ -1,6 +1,6 @@ name: invoiceninja_flutter description: Client for Invoice Ninja -version: 5.0.87+87 +version: 5.0.88+88 homepage: https://invoiceninja.com documentation: https://invoiceninja.github.io publish_to: none diff --git a/pubspec.next.yaml b/pubspec.next.yaml index ce8fcf5ba9e..49221c76935 100644 --- a/pubspec.next.yaml +++ b/pubspec.next.yaml @@ -1,6 +1,6 @@ name: invoiceninja_flutter description: Client for Invoice Ninja -version: 5.0.87+87 +version: 5.0.88+88 homepage: https://invoiceninja.com documentation: https://invoiceninja.github.io publish_to: none diff --git a/pubspec.yaml b/pubspec.yaml index 580407377fd..0da8ddf67f5 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,6 +1,6 @@ name: invoiceninja_flutter description: Client for Invoice Ninja -version: 5.0.87+87 +version: 5.0.88+88 homepage: https://invoiceninja.com documentation: https://invoiceninja.github.io publish_to: none diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index 0d10e71afe8..fd15f44e35b 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -1,5 +1,5 @@ name: invoiceninja -version: '5.0.87' +version: '5.0.88' summary: Create invoices, accept payments, track expenses & time-tasks description: "### Note: if the app fails to run using `snap run invoiceninja` it may help to run `/snap/invoiceninja/current/bin/invoiceninja` instead