diff --git a/apps/mobile_app/lib/core/firebase_init.dart b/apps/mobile_app/lib/core/firebase_init.dart index 131e5132..7cf70f7f 100644 --- a/apps/mobile_app/lib/core/firebase_init.dart +++ b/apps/mobile_app/lib/core/firebase_init.dart @@ -3,6 +3,7 @@ import 'package:firebase_core/firebase_core.dart'; import 'package:firebase_performance/firebase_performance.dart'; import 'package:firebase_remote_config/firebase_remote_config.dart'; import 'package:flutter/foundation.dart'; +import 'package:sf_shared/sf_shared.dart'; import 'package:sf_tracking/sf_tracking.dart'; import '../config/env/environment_enum.dart'; @@ -56,6 +57,10 @@ Future setupFirebase(EnvironmentEnum env) async { RemoteConfigKeys.updateUrlIos: 'https://apps.apple.com/app/id6759875039', RemoteConfigKeys.updateUrlAndroid: 'https://play.google.com/store/apps/details?id=com.savefamily.app', + BrandLinksKeys.privacyPolicyUrl: + 'https://savefamilygps.com/pages/politica-de-privacidad-reloj-gps-infantil-localizador-savefamily', + BrandLinksKeys.corporateWebsiteUrl: 'https://www.savefamilygps.com/', + BrandLinksKeys.supportEmail: 'info@savefamilygps.com', }); try { await remoteConfig.fetchAndActivate(); diff --git a/modules/legacy/modules/account/lib/src/features/account_settings/presentation/account_settings_screen.dart b/modules/legacy/modules/account/lib/src/features/account_settings/presentation/account_settings_screen.dart index 8f26ccca..2ec34094 100644 --- a/modules/legacy/modules/account/lib/src/features/account_settings/presentation/account_settings_screen.dart +++ b/modules/legacy/modules/account/lib/src/features/account_settings/presentation/account_settings_screen.dart @@ -15,8 +15,6 @@ import 'widgets/reg_code_dialog.dart'; class AccountSettingsScreen extends ConsumerWidget { final NavigationContract navigationContract; - static const _privacyUrl = - 'https://savefamilygps.com/pages/politica-de-privacidad-reloj-gps-infantil-localizador-savefamily'; const AccountSettingsScreen({super.key, required this.navigationContract}); @@ -90,7 +88,7 @@ class AccountSettingsScreen extends ConsumerWidget { _item( context, onPressed: () async { - final Uri url = Uri.parse(_privacyUrl); + final Uri url = Uri.parse(BrandLinks.privacyPolicy); if (!await launchUrl(url)) { throw Exception('Could not launch $url'); } diff --git a/modules/legacy/modules/customer_service/lib/src/presentation/customer_service_screen.dart b/modules/legacy/modules/customer_service/lib/src/presentation/customer_service_screen.dart index 087caf92..1cd51838 100644 --- a/modules/legacy/modules/customer_service/lib/src/presentation/customer_service_screen.dart +++ b/modules/legacy/modules/customer_service/lib/src/presentation/customer_service_screen.dart @@ -6,6 +6,7 @@ import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:legacy_ui/legacy_ui.dart'; import 'package:navigation/navigation.dart'; import 'package:sf_localizations/sf_localizations.dart'; +import 'package:sf_shared/sf_shared.dart'; import 'package:utils/utils.dart'; import 'package:url_launcher/url_launcher.dart'; @@ -28,7 +29,7 @@ class CustomerServiceScreen extends ConsumerWidget { children: [ SectionButton( onPressed: () async { - final Uri url = Uri.parse('https://www.savefamilygps.com/'); + final Uri url = Uri.parse(BrandLinks.corporateWebsite); if (!await launchUrl(url)) { throw Exception('Could not launch $url'); } diff --git a/modules/legacy/modules/customer_service/lib/src/presentation/state/contact_view_model.dart b/modules/legacy/modules/customer_service/lib/src/presentation/state/contact_view_model.dart index 74286411..ddd783ac 100644 --- a/modules/legacy/modules/customer_service/lib/src/presentation/state/contact_view_model.dart +++ b/modules/legacy/modules/customer_service/lib/src/presentation/state/contact_view_model.dart @@ -4,6 +4,7 @@ import 'package:customer_service/src/presentation/state/contact_view_state.dart' import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:sf_localizations/sf_localizations.dart'; +import 'package:sf_shared/sf_shared.dart'; import 'package:sf_tracking/sf_tracking.dart'; import 'package:url_launcher/url_launcher.dart'; @@ -94,7 +95,7 @@ class ContactViewModel extends Notifier { } void sendEmail() async { - final receiver = 'info@savefamilygps.com'; + final receiver = BrandLinks.supportEmail; final name = state.name; final country = state.country; diff --git a/modules/legacy/modules/customer_service/pubspec.yaml b/modules/legacy/modules/customer_service/pubspec.yaml index 3eb446cd..acc5af3d 100644 --- a/modules/legacy/modules/customer_service/pubspec.yaml +++ b/modules/legacy/modules/customer_service/pubspec.yaml @@ -38,6 +38,8 @@ dependencies: path: ../../../../packages/navigation sf_localizations: path: ../../../../packages/sf_localizations + sf_shared: + path: ../../../../packages/sf_shared sf_infrastructure: path: ../../../../packages/sf_infrastructure utils: diff --git a/packages/sf_shared/lib/sf_shared.dart b/packages/sf_shared/lib/sf_shared.dart index a7f5be22..4a8917b5 100644 --- a/packages/sf_shared/lib/sf_shared.dart +++ b/packages/sf_shared/lib/sf_shared.dart @@ -72,3 +72,4 @@ export 'src/providers/devices_remote_datasource_repository_provider.dart'; export 'src/providers/devices_repository_provider.dart'; export 'src/providers/legacy_devices_provider.dart'; export 'src/providers/selected_device_provider.dart'; +export 'src/remote_config/brand_links.dart'; diff --git a/packages/sf_shared/lib/src/remote_config/brand_links.dart b/packages/sf_shared/lib/src/remote_config/brand_links.dart new file mode 100644 index 00000000..a9fdd196 --- /dev/null +++ b/packages/sf_shared/lib/src/remote_config/brand_links.dart @@ -0,0 +1,22 @@ +import 'package:firebase_remote_config/firebase_remote_config.dart'; + +class BrandLinksKeys { + const BrandLinksKeys._(); + + static const privacyPolicyUrl = 'privacy_policy_url'; + static const corporateWebsiteUrl = 'corporate_website_url'; + static const supportEmail = 'support_email'; +} + +class BrandLinks { + const BrandLinks._(); + + static String get privacyPolicy => + FirebaseRemoteConfig.instance.getString(BrandLinksKeys.privacyPolicyUrl); + + static String get corporateWebsite => FirebaseRemoteConfig.instance + .getString(BrandLinksKeys.corporateWebsiteUrl); + + static String get supportEmail => + FirebaseRemoteConfig.instance.getString(BrandLinksKeys.supportEmail); +} diff --git a/packages/sf_shared/pubspec.yaml b/packages/sf_shared/pubspec.yaml index 131c61cc..809559c7 100644 --- a/packages/sf_shared/pubspec.yaml +++ b/packages/sf_shared/pubspec.yaml @@ -34,6 +34,7 @@ dependencies: flutter_riverpod: ^3.0.3 dio: ^5.9.2 firebase_messaging: ^16.1.3 + firebase_remote_config: ^6.3.0 freezed_annotation: ^3.1.0 freezed: ^3.2.3 json_annotation: ^4.9.0