diff --git a/lib/ui/app/menu_drawer.dart b/lib/ui/app/menu_drawer.dart index 3f5113390..764b8774b 100644 --- a/lib/ui/app/menu_drawer.dart +++ b/lib/ui/app/menu_drawer.dart @@ -13,6 +13,7 @@ import 'package:invoiceninja_flutter/redux/auth/auth_actions.dart'; import 'package:invoiceninja_flutter/redux/reports/reports_actions.dart'; import 'package:invoiceninja_flutter/redux/settings/settings_actions.dart'; import 'package:invoiceninja_flutter/ui/app/sms_verification.dart'; +import 'package:invoiceninja_flutter/ui/app/upgrade_dialog.dart'; import 'package:invoiceninja_flutter/utils/app_review.dart'; import 'package:material_design_icons_flutter/material_design_icons_flutter.dart'; import 'package:pointer_interceptor/pointer_interceptor.dart'; @@ -1311,17 +1312,24 @@ void _showAbout(BuildContext context) async { .replaceFirst(':value', state.appVersion)); }, onLongPress: () { - showMessageDialog( + if (kReleaseMode) { + showMessageDialog( + context: context, + message: FLUTTER_VERSION['channel'].toUpperCase() + + ' • ' + + FLUTTER_VERSION['frameworkVersion'], + secondaryActions: [ + TextButton( + child: Text(localization.logout.toUpperCase()), + onPressed: () => store.dispatch(UserLogout()), + ), + ]); + } else { + showDialog( context: context, - message: FLUTTER_VERSION['channel'].toUpperCase() + - ' • ' + - FLUTTER_VERSION['frameworkVersion'], - secondaryActions: [ - TextButton( - child: Text(localization.logout.toUpperCase()), - onPressed: () => store.dispatch(UserLogout()), - ), - ]); + builder: (context) => UpgradeDialog(), + ); + } }, ), SizedBox(height: 8), diff --git a/lib/ui/app/upgrade_dialog.dart b/lib/ui/app/upgrade_dialog.dart index a9eba4d74..277524f06 100644 --- a/lib/ui/app/upgrade_dialog.dart +++ b/lib/ui/app/upgrade_dialog.dart @@ -15,6 +15,7 @@ import 'package:in_app_purchase_storekit/in_app_purchase_storekit.dart'; import 'package:in_app_purchase_storekit/store_kit_wrappers.dart'; import 'package:invoiceninja_flutter/constants.dart'; import 'package:invoiceninja_flutter/data/web_client.dart'; +import 'package:invoiceninja_flutter/redux/app/app_actions.dart'; import 'package:invoiceninja_flutter/redux/app/app_state.dart'; import 'package:invoiceninja_flutter/utils/dialogs.dart'; import 'package:invoiceninja_flutter/utils/localization.dart'; @@ -284,23 +285,24 @@ class _UpgradeDialogState extends State { _purchasePending = false; }); - print('## PLAN UNLOCKED'); - print('## ${purchaseDetails.purchaseID}'); - print('## ${purchaseDetails.productID}'); - final store = StoreProvider.of(context); final state = store.state; final url = (state.isStaging ? kAppStagingUrl : kAppProductionUrl) + - '/admin/subscription'; + '/api/admin/subscription'; + + final data = { + 'inapp_transaction_id': purchaseDetails.purchaseID, + 'key': state.account.key, + 'plan': purchaseDetails.productID, + 'plan_paid': + (int.parse(purchaseDetails.transactionDate) / 1000).floor(), + }; await WebClient().post(url, state.credentials.token, - data: jsonEncode({ - 'inapp_transaction_id': purchaseDetails.purchaseID, - 'account_id': state.account.id, - 'plan': purchaseDetails.productID, - 'plan_paid': - (int.parse(purchaseDetails.transactionDate) / 1000).floor(), - })); + data: jsonEncode(data)); + + + store.dispatch(RefreshData()); } void handleError(IAPError error) {