@@ -686,7 +686,7 @@ class RustPushBackend implements BackendService {
686686 var state = await api.getRegstate (state: pushService.state! .client);
687687 var deviceState = await api.getDeviceInfo (config: pushService.state! .osConfig);
688688 var stateStr = "" ;
689- if (! detail && ss.settings.deviceIsHosted.value) {
689+ if (! detail && ss.settings.deviceIsHosted.value && ss.settings.hostedToken.value != null ) {
690690 stateStr = "Subscription not active!" ;
691691 } else if (state is api.RegisterState_Registered ) {
692692 stateStr = "Connected (renew in ${formatDuration (state .nextS )})" ;
@@ -2590,6 +2590,11 @@ class RustPushService extends GetxService {
25902590 Future <PurchaseWrapper ?> getPurchaseDetails () async {
25912591 try {
25922592 var purchases = await pushService.client.runWithClient ((client) => client.queryPurchases (ProductType .subs));
2593+ var token = purchases.purchasesList.firstOrNull? .purchaseToken;
2594+ if (token != null && ss.settings.deviceIsHosted.value) {
2595+ ss.settings.hostedToken.value = token;
2596+ ss.saveSettings ();
2597+ }
25932598 return purchases.purchasesList.firstOrNull;
25942599 } catch (e, s) {
25952600 Logger .error ("Failed to get purchase details" , error: e, trace: s);
@@ -4587,7 +4592,7 @@ class RustPushService extends GetxService {
45874592 if (state == null ) {
45884593 return ;
45894594 }
4590- if (! ss.settings.deviceIsHosted.value) return ;
4595+ if (! ss.settings.deviceIsHosted.value || ss.settings.hostedToken.value == null ) return ;
45914596 var detail = await checkPurchaseState ();
45924597 if (! detail) {
45934598 if (! notifiedSubFailed) {
0 commit comments