From 64f69edeac0374587dd7bbf4881c3a4e30fcbc32 Mon Sep 17 00:00:00 2001 From: Hillel Coren Date: Tue, 24 Oct 2023 22:10:37 +0300 Subject: [PATCH 1/2] High idle CPU and GPU utilization #599 --- lib/ui/app/live_text.dart | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/lib/ui/app/live_text.dart b/lib/ui/app/live_text.dart index 040fc4e4e..77acc2816 100644 --- a/lib/ui/app/live_text.dart +++ b/lib/ui/app/live_text.dart @@ -3,6 +3,7 @@ import 'dart:async'; // Flutter imports: import 'package:flutter/widgets.dart'; +import 'package:window_manager/window_manager.dart'; class LiveText extends StatefulWidget { const LiveText( @@ -29,7 +30,16 @@ class _LiveTextState extends State { super.initState(); _timer = Timer.periodic( widget.duration ?? Duration(milliseconds: 100), - (Timer timer) => mounted ? setState(() => false) : false, + (Timer timer) async { + final isFocused = await windowManager.isFocused(); + if (!isFocused) { + return; + } + + if (mounted) { + setState(() => false); + } + }, ); } From 98c1171c51d5d18823549cc7ca84925e32f4ab20 Mon Sep 17 00:00:00 2001 From: Hillel Coren Date: Wed, 25 Oct 2023 09:25:48 +0300 Subject: [PATCH 2/2] Add fix for IAP with Apple --- lib/ui/app/upgrade_dialog.dart | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/lib/ui/app/upgrade_dialog.dart b/lib/ui/app/upgrade_dialog.dart index 4721e0631..a8afafac1 100644 --- a/lib/ui/app/upgrade_dialog.dart +++ b/lib/ui/app/upgrade_dialog.dart @@ -287,8 +287,17 @@ class _UpgradeDialogState extends State { final url = (state.isStaging ? kAppStagingUrl : kAppProductionUrl) + '/api/admin/subscription'; + var purchaseID = purchaseDetails.purchaseID; + if (purchaseDetails is AppStorePurchaseDetails) { + final originalTransaction = + purchaseDetails.skPaymentTransaction.originalTransaction; + if (originalTransaction != null) { + purchaseID = originalTransaction.transactionIdentifier; + } + } + final data = { - 'inapp_transaction_id': purchaseDetails.purchaseID, + 'inapp_transaction_id': purchaseID, 'key': state.account.key, 'plan': purchaseDetails.productID.replaceAll('-', '_'), 'plan_paid': (int.parse(purchaseDetails.transactionDate!) / 1000).floor(),