From f5bf41826e54116e9bd91a9fd6ea3efdb0368570 Mon Sep 17 00:00:00 2001 From: Robert Herber Date: Sat, 21 Jan 2023 15:38:07 +0100 Subject: [PATCH 1/3] Autoquit after select, and use key name to prevent collisions --- lib/src/firebase_options_selector.dart | 4 ++-- lib/src/firebase_options_selector_dialog.dart | 10 +++++++++- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/lib/src/firebase_options_selector.dart b/lib/src/firebase_options_selector.dart index cdee0b1..0b9c0b8 100644 --- a/lib/src/firebase_options_selector.dart +++ b/lib/src/firebase_options_selector.dart @@ -1,6 +1,6 @@ import 'package:activout_firebase_options_selector/src/firebase_options_banner.dart'; import 'package:firebase_core/firebase_core.dart' - show Firebase, FirebaseOptions, defaultFirebaseAppName; + show Firebase, FirebaseOptions; import 'package:flutter/widgets.dart'; import 'package:shared_preferences/shared_preferences.dart'; @@ -33,7 +33,7 @@ class FirebaseOptionsSelector { await Firebase.initializeApp( options: availableOptions[selectedKey], - name: defaultFirebaseAppName, + name: selectedKey, ); } diff --git a/lib/src/firebase_options_selector_dialog.dart b/lib/src/firebase_options_selector_dialog.dart index 8b811e7..579854c 100644 --- a/lib/src/firebase_options_selector_dialog.dart +++ b/lib/src/firebase_options_selector_dialog.dart @@ -1,3 +1,5 @@ +import 'dart:io'; + import 'package:activout_firebase_options_selector/src/firebase_options_selector.dart'; import 'package:flutter/material.dart'; @@ -6,6 +8,7 @@ Future showFirebaseOptionsSelectorDialog( BuildContext context, String titleText, {String okText = 'OK'}) async { var selected = await FirebaseOptionsSelector.getCurrentSelection(); + var hasChanged = false; return showDialog( context: context, @@ -23,6 +26,7 @@ Future showFirebaseOptionsSelectorDialog( groupValue: selected, onChanged: (String? newValue) async { if (newValue != null) { + hasChanged = true; await FirebaseOptionsSelector.select(newValue); setState(() => selected = newValue); } @@ -36,7 +40,11 @@ Future showFirebaseOptionsSelectorDialog( TextButton( child: Text(okText), onPressed: () { - Navigator.of(context).pop(); + if (!hasChanged) { + Navigator.of(context).pop(); + } else { + exit(0); + } }, ), ], From c483b1067b4f4ede561b07efe4942d1f3c6262f8 Mon Sep 17 00:00:00 2001 From: Robert Herber Date: Sat, 21 Jan 2023 16:05:40 +0100 Subject: [PATCH 2/3] Use default firebase app name for production - for backward compatibility --- lib/src/firebase_options_selector.dart | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/src/firebase_options_selector.dart b/lib/src/firebase_options_selector.dart index 0b9c0b8..80fe1ab 100644 --- a/lib/src/firebase_options_selector.dart +++ b/lib/src/firebase_options_selector.dart @@ -1,6 +1,6 @@ import 'package:activout_firebase_options_selector/src/firebase_options_banner.dart'; import 'package:firebase_core/firebase_core.dart' - show Firebase, FirebaseOptions; + show Firebase, FirebaseOptions, defaultFirebaseAppName; import 'package:flutter/widgets.dart'; import 'package:shared_preferences/shared_preferences.dart'; @@ -33,7 +33,8 @@ class FirebaseOptionsSelector { await Firebase.initializeApp( options: availableOptions[selectedKey], - name: selectedKey, + name: + selectedKey == _productionKey ? defaultFirebaseAppName : selectedKey, ); } From 8cee072bdf9588cb19628769be04afdcf31a7e24 Mon Sep 17 00:00:00 2001 From: Robert Herber Date: Sat, 21 Jan 2023 18:22:03 +0100 Subject: [PATCH 3/3] Revert default app name change --- lib/src/firebase_options_selector.dart | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lib/src/firebase_options_selector.dart b/lib/src/firebase_options_selector.dart index 80fe1ab..cdee0b1 100644 --- a/lib/src/firebase_options_selector.dart +++ b/lib/src/firebase_options_selector.dart @@ -33,8 +33,7 @@ class FirebaseOptionsSelector { await Firebase.initializeApp( options: availableOptions[selectedKey], - name: - selectedKey == _productionKey ? defaultFirebaseAppName : selectedKey, + name: defaultFirebaseAppName, ); }