mirror of
https://github.com/twonlyapp/twonly-app.git
synced 2026-01-15 14:28:40 +00:00
add auto renewal
This commit is contained in:
parent
de916bd1e8
commit
41dd5679e2
10 changed files with 32 additions and 4 deletions
|
|
@ -207,6 +207,7 @@
|
||||||
"transactionCash": "Bargeldtransaktion",
|
"transactionCash": "Bargeldtransaktion",
|
||||||
"transactionPlanUpgrade": "Planupgrade",
|
"transactionPlanUpgrade": "Planupgrade",
|
||||||
"transactionRefund": "Rückerstattung",
|
"transactionRefund": "Rückerstattung",
|
||||||
|
"transactionAutoRenewal": "Automatische Verlängerung",
|
||||||
"refund": "Rückerstattung",
|
"refund": "Rückerstattung",
|
||||||
"transactionThanksForTesting": "Danke fürs Testen",
|
"transactionThanksForTesting": "Danke fürs Testen",
|
||||||
"transactionUnknown": "Unbekannte Transaktion",
|
"transactionUnknown": "Unbekannte Transaktion",
|
||||||
|
|
|
||||||
|
|
@ -369,6 +369,7 @@
|
||||||
"transactionUnknown": "Unknown transaction",
|
"transactionUnknown": "Unknown transaction",
|
||||||
"transactionVoucherCreated": "Voucher created",
|
"transactionVoucherCreated": "Voucher created",
|
||||||
"transactionVoucherRedeemed": "Voucher redeemed",
|
"transactionVoucherRedeemed": "Voucher redeemed",
|
||||||
|
"transactionAutoRenewal": "Automatic renewal",
|
||||||
"checkoutOptions": "Options",
|
"checkoutOptions": "Options",
|
||||||
"refund": "Refund",
|
"refund": "Refund",
|
||||||
"checkoutPayYearly": "Pay yearly",
|
"checkoutPayYearly": "Pay yearly",
|
||||||
|
|
|
||||||
|
|
@ -1277,6 +1277,12 @@ abstract class AppLocalizations {
|
||||||
/// **'Voucher redeemed'**
|
/// **'Voucher redeemed'**
|
||||||
String get transactionVoucherRedeemed;
|
String get transactionVoucherRedeemed;
|
||||||
|
|
||||||
|
/// No description provided for @transactionAutoRenewal.
|
||||||
|
///
|
||||||
|
/// In en, this message translates to:
|
||||||
|
/// **'Automatic renewal'**
|
||||||
|
String get transactionAutoRenewal;
|
||||||
|
|
||||||
/// No description provided for @checkoutOptions.
|
/// No description provided for @checkoutOptions.
|
||||||
///
|
///
|
||||||
/// In en, this message translates to:
|
/// In en, this message translates to:
|
||||||
|
|
|
||||||
|
|
@ -613,6 +613,9 @@ class AppLocalizationsDe extends AppLocalizations {
|
||||||
@override
|
@override
|
||||||
String get transactionVoucherRedeemed => 'Gutschein eingelöst';
|
String get transactionVoucherRedeemed => 'Gutschein eingelöst';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get transactionAutoRenewal => 'Automatische Verlängerung';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get checkoutOptions => 'Optionen';
|
String get checkoutOptions => 'Optionen';
|
||||||
|
|
||||||
|
|
@ -644,7 +647,7 @@ class AppLocalizationsDe extends AppLocalizations {
|
||||||
String get autoRenewalDesc => 'Du kannst dies jederzeit ändern.';
|
String get autoRenewalDesc => 'Du kannst dies jederzeit ändern.';
|
||||||
|
|
||||||
@override
|
@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
|
@override
|
||||||
String get planSuccessUpgraded => 'Dein Plan wurde erfolgreich aktualisiert.';
|
String get planSuccessUpgraded => 'Dein Plan wurde erfolgreich aktualisiert.';
|
||||||
|
|
|
||||||
|
|
@ -613,6 +613,9 @@ class AppLocalizationsEn extends AppLocalizations {
|
||||||
@override
|
@override
|
||||||
String get transactionVoucherRedeemed => 'Voucher redeemed';
|
String get transactionVoucherRedeemed => 'Voucher redeemed';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get transactionAutoRenewal => 'Automatic renewal';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get checkoutOptions => 'Options';
|
String get checkoutOptions => 'Options';
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -21,6 +21,7 @@ class Response_TransactionTypes extends $pb.ProtobufEnum {
|
||||||
static const Response_TransactionTypes PlanUpgrade = Response_TransactionTypes._(4, _omitEnumNames ? '' : 'PlanUpgrade');
|
static const Response_TransactionTypes PlanUpgrade = Response_TransactionTypes._(4, _omitEnumNames ? '' : 'PlanUpgrade');
|
||||||
static const Response_TransactionTypes Unknown = Response_TransactionTypes._(5, _omitEnumNames ? '' : 'Unknown');
|
static const Response_TransactionTypes Unknown = Response_TransactionTypes._(5, _omitEnumNames ? '' : 'Unknown');
|
||||||
static const Response_TransactionTypes ThanksForTesting = Response_TransactionTypes._(6, _omitEnumNames ? '' : 'ThanksForTesting');
|
static const Response_TransactionTypes ThanksForTesting = Response_TransactionTypes._(6, _omitEnumNames ? '' : 'ThanksForTesting');
|
||||||
|
static const Response_TransactionTypes AutoRenewal = Response_TransactionTypes._(7, _omitEnumNames ? '' : 'AutoRenewal');
|
||||||
|
|
||||||
static const $core.List<Response_TransactionTypes> values = <Response_TransactionTypes> [
|
static const $core.List<Response_TransactionTypes> values = <Response_TransactionTypes> [
|
||||||
Refund,
|
Refund,
|
||||||
|
|
@ -30,6 +31,7 @@ class Response_TransactionTypes extends $pb.ProtobufEnum {
|
||||||
PlanUpgrade,
|
PlanUpgrade,
|
||||||
Unknown,
|
Unknown,
|
||||||
ThanksForTesting,
|
ThanksForTesting,
|
||||||
|
AutoRenewal,
|
||||||
];
|
];
|
||||||
|
|
||||||
static final $core.Map<$core.int, Response_TransactionTypes> _byValue = $pb.ProtobufEnum.initByValue(values);
|
static final $core.Map<$core.int, Response_TransactionTypes> _byValue = $pb.ProtobufEnum.initByValue(values);
|
||||||
|
|
|
||||||
|
|
@ -289,6 +289,7 @@ const Response_TransactionTypes$json = {
|
||||||
{'1': 'PlanUpgrade', '2': 4},
|
{'1': 'PlanUpgrade', '2': 4},
|
||||||
{'1': 'Unknown', '2': 5},
|
{'1': 'Unknown', '2': 5},
|
||||||
{'1': 'ThanksForTesting', '2': 6},
|
{'1': 'ThanksForTesting', '2': 6},
|
||||||
|
{'1': 'AutoRenewal', '2': 7},
|
||||||
],
|
],
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -355,8 +356,8 @@ final $typed_data.Uint8List responseDescriptor = $convert.base64Decode(
|
||||||
'YWxsYW5jZUgAUgxwbGFuYmFsbGFuY2USQQoIdm91Y2hlcnMYCyABKAsyIy5zZXJ2ZXJfdG9fY2'
|
'YWxsYW5jZUgAUgxwbGFuYmFsbGFuY2USQQoIdm91Y2hlcnMYCyABKAsyIy5zZXJ2ZXJfdG9fY2'
|
||||||
'xpZW50LlJlc3BvbnNlLlZvdWNoZXJzSABSCHZvdWNoZXJzEl8KEmFkZGFjY291bnRzaW52aXRl'
|
'xpZW50LlJlc3BvbnNlLlZvdWNoZXJzSABSCHZvdWNoZXJzEl8KEmFkZGFjY291bnRzaW52aXRl'
|
||||||
'cxgMIAEoCzItLnNlcnZlcl90b19jbGllbnQuUmVzcG9uc2UuQWRkQWNjb3VudHNJbnZpdGVzSA'
|
'cxgMIAEoCzItLnNlcnZlcl90b19jbGllbnQuUmVzcG9uc2UuQWRkQWNjb3VudHNJbnZpdGVzSA'
|
||||||
'BSEmFkZGFjY291bnRzaW52aXRlc0IECgJPayKFAQoQVHJhbnNhY3Rpb25UeXBlcxIKCgZSZWZ1'
|
'BSEmFkZGFjY291bnRzaW52aXRlc0IECgJPayKWAQoQVHJhbnNhY3Rpb25UeXBlcxIKCgZSZWZ1'
|
||||||
'bmQQABITCg9Wb3VjaGVyUmVkZWVtZWQQARISCg5Wb3VjaGVyQ3JlYXRlZBACEggKBENhc2gQAx'
|
'bmQQABITCg9Wb3VjaGVyUmVkZWVtZWQQARISCg5Wb3VjaGVyQ3JlYXRlZBACEggKBENhc2gQAx'
|
||||||
'IPCgtQbGFuVXBncmFkZRAEEgsKB1Vua25vd24QBRIUChBUaGFua3NGb3JUZXN0aW5nEAZCCgoI'
|
'IPCgtQbGFuVXBncmFkZRAEEgsKB1Vua25vd24QBRIUChBUaGFua3NGb3JUZXN0aW5nEAYSDwoL'
|
||||||
'UmVzcG9uc2U=');
|
'QXV0b1JlbmV3YWwQB0IKCghSZXNwb25zZQ==');
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -106,6 +106,7 @@ class ApiProvider {
|
||||||
log.info("Closing the websocket connection!");
|
log.info("Closing the websocket connection!");
|
||||||
if (_channel != null) {
|
if (_channel != null) {
|
||||||
await _channel!.sink.close();
|
await _channel!.sink.close();
|
||||||
|
onClosed();
|
||||||
callback();
|
callback();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -78,6 +78,14 @@ int calculateRefund(Response_PlanBallance current) {
|
||||||
.ceil() *
|
.ceil() *
|
||||||
100;
|
100;
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
final elapsedDays = DateTime.now()
|
||||||
|
.difference(DateTime.fromMillisecondsSinceEpoch(
|
||||||
|
current.lastPaymentDoneUnixTimestamp.toInt() * 1000))
|
||||||
|
.inDays;
|
||||||
|
if (elapsedDays > 14) {
|
||||||
|
refund = 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return refund;
|
return refund;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -76,6 +76,8 @@ class _TransactionCardState extends State<TransactionCard> {
|
||||||
return context.lang.transactionVoucherCreated;
|
return context.lang.transactionVoucherCreated;
|
||||||
case Response_TransactionTypes.VoucherRedeemed:
|
case Response_TransactionTypes.VoucherRedeemed:
|
||||||
return context.lang.transactionVoucherRedeemed;
|
return context.lang.transactionVoucherRedeemed;
|
||||||
|
case Response_TransactionTypes.AutoRenewal:
|
||||||
|
return context.lang.transactionAutoRenewal;
|
||||||
}
|
}
|
||||||
return type.toString();
|
return type.toString();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue