diff --git a/lib/src/localization/app_de.arb b/lib/src/localization/app_de.arb index 0445f0d..bdd1752 100644 --- a/lib/src/localization/app_de.arb +++ b/lib/src/localization/app_de.arb @@ -207,6 +207,7 @@ "transactionCash": "Bargeldtransaktion", "transactionPlanUpgrade": "Planupgrade", "transactionRefund": "Rückerstattung", + "transactionAutoRenewal": "Automatische Verlängerung", "refund": "Rückerstattung", "transactionThanksForTesting": "Danke fürs Testen", "transactionUnknown": "Unbekannte Transaktion", diff --git a/lib/src/localization/app_en.arb b/lib/src/localization/app_en.arb index b484098..e7c9d56 100644 --- a/lib/src/localization/app_en.arb +++ b/lib/src/localization/app_en.arb @@ -369,6 +369,7 @@ "transactionUnknown": "Unknown transaction", "transactionVoucherCreated": "Voucher created", "transactionVoucherRedeemed": "Voucher redeemed", + "transactionAutoRenewal": "Automatic renewal", "checkoutOptions": "Options", "refund": "Refund", "checkoutPayYearly": "Pay yearly", diff --git a/lib/src/localization/generated/app_localizations.dart b/lib/src/localization/generated/app_localizations.dart index d24e877..7c65e5b 100644 --- a/lib/src/localization/generated/app_localizations.dart +++ b/lib/src/localization/generated/app_localizations.dart @@ -1277,6 +1277,12 @@ abstract class AppLocalizations { /// **'Voucher redeemed'** String get transactionVoucherRedeemed; + /// No description provided for @transactionAutoRenewal. + /// + /// In en, this message translates to: + /// **'Automatic renewal'** + String get transactionAutoRenewal; + /// No description provided for @checkoutOptions. /// /// In en, this message translates to: diff --git a/lib/src/localization/generated/app_localizations_de.dart b/lib/src/localization/generated/app_localizations_de.dart index 48e660f..456b3c5 100644 --- a/lib/src/localization/generated/app_localizations_de.dart +++ b/lib/src/localization/generated/app_localizations_de.dart @@ -613,6 +613,9 @@ class AppLocalizationsDe extends AppLocalizations { @override String get transactionVoucherRedeemed => 'Gutschein eingelöst'; + @override + String get transactionAutoRenewal => 'Automatische Verlängerung'; + @override String get checkoutOptions => 'Optionen'; @@ -644,7 +647,7 @@ class AppLocalizationsDe extends AppLocalizations { String get autoRenewalDesc => 'Du kannst dies jederzeit ändern.'; @override - String get autoRenewalLongDesc => 'Wenn dein Abonnement ausläuft, wirst du automatisch auf den Vorschau-Plan zurückgestuft. Wenn du die automatische Verlängerung aktivierst, vergewissere dich bitte, dass du über genügend Guthaben für die automatische Erneuerung verfügst. Wir werden dich rechtzeitig vor der automatischen Erneuerung benachrichtigen.'; + String get autoRenewalLongDesc => 'Wenn dein Abonnement ausläuft, wirst du automatisch auf den Preview-Plan zurückgestuft. Wenn du die automatische Verlängerung aktivierst, vergewissere dich bitte, dass du über genügend Guthaben für die automatische Erneuerung verfügst. Wir werden dich rechtzeitig vor der automatischen Erneuerung benachrichtigen.'; @override String get planSuccessUpgraded => 'Dein Plan wurde erfolgreich aktualisiert.'; diff --git a/lib/src/localization/generated/app_localizations_en.dart b/lib/src/localization/generated/app_localizations_en.dart index cd386ad..3ffb44e 100644 --- a/lib/src/localization/generated/app_localizations_en.dart +++ b/lib/src/localization/generated/app_localizations_en.dart @@ -613,6 +613,9 @@ class AppLocalizationsEn extends AppLocalizations { @override String get transactionVoucherRedeemed => 'Voucher redeemed'; + @override + String get transactionAutoRenewal => 'Automatic renewal'; + @override String get checkoutOptions => 'Options'; diff --git a/lib/src/model/protobuf/api/server_to_client.pbenum.dart b/lib/src/model/protobuf/api/server_to_client.pbenum.dart index b746571..46f3077 100644 --- a/lib/src/model/protobuf/api/server_to_client.pbenum.dart +++ b/lib/src/model/protobuf/api/server_to_client.pbenum.dart @@ -21,6 +21,7 @@ class Response_TransactionTypes extends $pb.ProtobufEnum { static const Response_TransactionTypes PlanUpgrade = Response_TransactionTypes._(4, _omitEnumNames ? '' : 'PlanUpgrade'); static const Response_TransactionTypes Unknown = Response_TransactionTypes._(5, _omitEnumNames ? '' : 'Unknown'); static const Response_TransactionTypes ThanksForTesting = Response_TransactionTypes._(6, _omitEnumNames ? '' : 'ThanksForTesting'); + static const Response_TransactionTypes AutoRenewal = Response_TransactionTypes._(7, _omitEnumNames ? '' : 'AutoRenewal'); static const $core.List values = [ Refund, @@ -30,6 +31,7 @@ class Response_TransactionTypes extends $pb.ProtobufEnum { PlanUpgrade, Unknown, ThanksForTesting, + AutoRenewal, ]; static final $core.Map<$core.int, Response_TransactionTypes> _byValue = $pb.ProtobufEnum.initByValue(values); diff --git a/lib/src/model/protobuf/api/server_to_client.pbjson.dart b/lib/src/model/protobuf/api/server_to_client.pbjson.dart index 40e593e..adbdc56 100644 --- a/lib/src/model/protobuf/api/server_to_client.pbjson.dart +++ b/lib/src/model/protobuf/api/server_to_client.pbjson.dart @@ -289,6 +289,7 @@ const Response_TransactionTypes$json = { {'1': 'PlanUpgrade', '2': 4}, {'1': 'Unknown', '2': 5}, {'1': 'ThanksForTesting', '2': 6}, + {'1': 'AutoRenewal', '2': 7}, ], }; @@ -355,8 +356,8 @@ final $typed_data.Uint8List responseDescriptor = $convert.base64Decode( 'YWxsYW5jZUgAUgxwbGFuYmFsbGFuY2USQQoIdm91Y2hlcnMYCyABKAsyIy5zZXJ2ZXJfdG9fY2' 'xpZW50LlJlc3BvbnNlLlZvdWNoZXJzSABSCHZvdWNoZXJzEl8KEmFkZGFjY291bnRzaW52aXRl' 'cxgMIAEoCzItLnNlcnZlcl90b19jbGllbnQuUmVzcG9uc2UuQWRkQWNjb3VudHNJbnZpdGVzSA' - 'BSEmFkZGFjY291bnRzaW52aXRlc0IECgJPayKFAQoQVHJhbnNhY3Rpb25UeXBlcxIKCgZSZWZ1' + 'BSEmFkZGFjY291bnRzaW52aXRlc0IECgJPayKWAQoQVHJhbnNhY3Rpb25UeXBlcxIKCgZSZWZ1' 'bmQQABITCg9Wb3VjaGVyUmVkZWVtZWQQARISCg5Wb3VjaGVyQ3JlYXRlZBACEggKBENhc2gQAx' - 'IPCgtQbGFuVXBncmFkZRAEEgsKB1Vua25vd24QBRIUChBUaGFua3NGb3JUZXN0aW5nEAZCCgoI' - 'UmVzcG9uc2U='); + 'IPCgtQbGFuVXBncmFkZRAEEgsKB1Vua25vd24QBRIUChBUaGFua3NGb3JUZXN0aW5nEAYSDwoL' + 'QXV0b1JlbmV3YWwQB0IKCghSZXNwb25zZQ=='); diff --git a/lib/src/providers/api_provider.dart b/lib/src/providers/api_provider.dart index c04d274..9c0549a 100644 --- a/lib/src/providers/api_provider.dart +++ b/lib/src/providers/api_provider.dart @@ -106,6 +106,7 @@ class ApiProvider { log.info("Closing the websocket connection!"); if (_channel != null) { await _channel!.sink.close(); + onClosed(); callback(); return; } diff --git a/lib/src/views/settings/subscription/subscription_view.dart b/lib/src/views/settings/subscription/subscription_view.dart index 355bb3e..2e7a5a2 100644 --- a/lib/src/views/settings/subscription/subscription_view.dart +++ b/lib/src/views/settings/subscription/subscription_view.dart @@ -78,6 +78,14 @@ int calculateRefund(Response_PlanBallance current) { .ceil() * 100; } + } else { + final elapsedDays = DateTime.now() + .difference(DateTime.fromMillisecondsSinceEpoch( + current.lastPaymentDoneUnixTimestamp.toInt() * 1000)) + .inDays; + if (elapsedDays > 14) { + refund = 0; + } } return refund; } diff --git a/lib/src/views/settings/subscription/transaction_view.dart b/lib/src/views/settings/subscription/transaction_view.dart index 8834af6..b79064e 100644 --- a/lib/src/views/settings/subscription/transaction_view.dart +++ b/lib/src/views/settings/subscription/transaction_view.dart @@ -76,6 +76,8 @@ class _TransactionCardState extends State { return context.lang.transactionVoucherCreated; case Response_TransactionTypes.VoucherRedeemed: return context.lang.transactionVoucherRedeemed; + case Response_TransactionTypes.AutoRenewal: + return context.lang.transactionAutoRenewal; } return type.toString(); }