Only show the no google services toast once

This commit is contained in:
Sorunome 2020-07-21 08:56:26 +00:00 committed by Christian Pauly
parent 896e8ce2b3
commit 300aea2561
3 changed files with 18 additions and 7 deletions

View file

@ -81,7 +81,7 @@ class MatrixState extends State<Matrix> {
client.connect();
if (await initLoginState == LoginState.logged && !kIsWeb) {
await FirebaseController.setupFirebase(
client,
this,
widget.clientName,
);
}

View file

@ -13,6 +13,7 @@ import 'package:bot_toast/bot_toast.dart';
import 'package:path_provider/path_provider.dart';
import 'package:famedlysdk/famedlysdk.dart';
import 'famedlysdk_store.dart';
import '../components/matrix.dart';
abstract class FirebaseController {
static final FirebaseMessaging _firebaseMessaging = FirebaseMessaging();
@ -26,7 +27,9 @@ abstract class FirebaseController {
static const String GATEWAY_URL = 'https://janian.de:7023/';
static const String PUSHER_FORMAT = 'event_id_only';
static Future<void> setupFirebase(Client client, String clientName) async {
static Future<void> setupFirebase(
MatrixState matrix, String clientName) async {
final client = matrix.client;
if (Platform.isIOS) iOS_Permission();
String token;
@ -36,10 +39,18 @@ abstract class FirebaseController {
token = null;
}
if (token?.isEmpty ?? true) {
BotToast.showText(
text: L10n.of(context).noGoogleServicesWarning,
duration: Duration(seconds: 15),
);
final storeItem =
await matrix.store.getItem('chat.fluffy.show_no_google');
final configOptionMissing = storeItem == null || storeItem.isEmpty;
if (configOptionMissing || (!configOptionMissing && storeItem == '1')) {
BotToast.showText(
text: L10n.of(context).noGoogleServicesWarning,
duration: Duration(seconds: 15),
);
if (configOptionMissing) {
await matrix.store.setItem('chat.fluffy.show_no_google', '0');
}
}
return;
}
final pushers = await client.api.requestPushers();

View file

@ -57,7 +57,7 @@ class _LoginState extends State<Login> {
if (!kIsWeb) {
try {
await FirebaseController.setupFirebase(
matrix.client,
matrix,
matrix.widget.clientName,
);
} catch (exception) {