defer fcm token load

This commit is contained in:
Yegor Vialov 2020-05-25 11:58:14 +00:00
parent 141a68faf7
commit 4493975676
3 changed files with 92 additions and 88 deletions

View File

@ -35,7 +35,7 @@ public class MainActivity extends FlutterActivity {
Context context = getActivity();
SharedPreferences.Editor editor = context.getSharedPreferences("FlutterSharedPreferences", Context.MODE_PRIVATE).edit();
String token = task.getResult().getToken();
editor.putString("flutter.fcm-token", token);
editor.putString("flutter.push-token", token);
editor.commit();
}
}

View File

@ -20,7 +20,6 @@ class AppSettings {
String tempToken;
String oauthUrl;
String webhookId;
String fcmToken;
double haVersion;
bool scrollBadges;
AppTheme appTheme;
@ -40,7 +39,6 @@ class AppSettings {
if (full) {
Logger.d('Loading settings...');
SharedPreferences prefs = await SharedPreferences.getInstance();
fcmToken = prefs.getString('fcm-token');
_domain = prefs.getString('hassio-domain');
_port = prefs.getString('hassio-port');
webhookId = prefs.getString('app-webhook-id');
@ -69,6 +67,11 @@ class AppSettings {
}
}
Future<dynamic> loadSingle(String key) async {
SharedPreferences prefs = await SharedPreferences.getInstance();
return prefs.get('$key');
}
Future save(Map<String, dynamic> settings) async {
if (settings != null && settings.isNotEmpty) {
SharedPreferences prefs = await SharedPreferences.getInstance();

View File

@ -24,7 +24,8 @@ class MobileAppIntegrationManager {
static Future checkAppRegistration() {
Completer completer = Completer();
_appRegistrationData["device_name"] = AppSettings().mobileAppDeviceName ?? getDefaultDeviceName();
(_appRegistrationData["app_data"] as Map)["push_token"] = "${AppSettings().fcmToken}";
AppSettings().loadSingle('push-token').then((fcmToken) {
(_appRegistrationData["app_data"] as Map)["push_token"] = "$fcmToken";
if (AppSettings().webhookId == null) {
Logger.d("Mobile app was not registered yet. Registering...");
var registrationData = Map.from(_appRegistrationData);
@ -72,7 +73,6 @@ class MobileAppIntegrationManager {
}
_showError();
});
return completer.future;
} else {
Logger.d("App was previously registered. Checking...");
var updateData = {
@ -110,8 +110,9 @@ class MobileAppIntegrationManager {
}
completer.complete();
});
return completer.future;
}
});
return completer.future;
}
static void _showError() {