mirror of
https://github.com/twonlyapp/twonly-app.git
synced 2026-01-15 12:48:41 +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",
|
||||
"transactionPlanUpgrade": "Planupgrade",
|
||||
"transactionRefund": "Rückerstattung",
|
||||
"transactionAutoRenewal": "Automatische Verlängerung",
|
||||
"refund": "Rückerstattung",
|
||||
"transactionThanksForTesting": "Danke fürs Testen",
|
||||
"transactionUnknown": "Unbekannte Transaktion",
|
||||
|
|
|
|||
|
|
@ -369,6 +369,7 @@
|
|||
"transactionUnknown": "Unknown transaction",
|
||||
"transactionVoucherCreated": "Voucher created",
|
||||
"transactionVoucherRedeemed": "Voucher redeemed",
|
||||
"transactionAutoRenewal": "Automatic renewal",
|
||||
"checkoutOptions": "Options",
|
||||
"refund": "Refund",
|
||||
"checkoutPayYearly": "Pay yearly",
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
|
|
|
|||
|
|
@ -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.';
|
||||
|
|
|
|||
|
|
@ -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';
|
||||
|
||||
|
|
|
|||
|
|
@ -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<Response_TransactionTypes> values = <Response_TransactionTypes> [
|
||||
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);
|
||||
|
|
|
|||
|
|
@ -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==');
|
||||
|
||||
|
|
|
|||
|
|
@ -106,6 +106,7 @@ class ApiProvider {
|
|||
log.info("Closing the websocket connection!");
|
||||
if (_channel != null) {
|
||||
await _channel!.sink.close();
|
||||
onClosed();
|
||||
callback();
|
||||
return;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -76,6 +76,8 @@ class _TransactionCardState extends State<TransactionCard> {
|
|||
return context.lang.transactionVoucherCreated;
|
||||
case Response_TransactionTypes.VoucherRedeemed:
|
||||
return context.lang.transactionVoucherRedeemed;
|
||||
case Response_TransactionTypes.AutoRenewal:
|
||||
return context.lang.transactionAutoRenewal;
|
||||
}
|
||||
return type.toString();
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue