File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ import 'package:flutter_dotenv/flutter_dotenv.dart' ;
2+
3+ const String _maskChar = '\u 2022' ;
4+ final bool _isE2E = dotenv.env['E2E_MODE' ] == 'true' ;
5+
6+ /// Replaces [value] with a mask of equal length when running in E2E mode so
7+ /// real app/push IDs don't leak into screenshots or Appium element captures.
8+ /// Returns [value] unchanged otherwise.
9+ String maskValue (String value) {
10+ if (_isE2E) {
11+ return _maskChar * value.length;
12+ }
13+ return value;
14+ }
Original file line number Diff line number Diff line change 11import 'package:flutter/material.dart' ;
2- import 'package:flutter_dotenv/flutter_dotenv.dart' ;
32import 'package:provider/provider.dart' ;
43import 'package:url_launcher/url_launcher.dart' ;
54
65import '../../theme.dart' ;
6+ import '../../utils/mask_value.dart' ;
77import '../../viewmodels/app_viewmodel.dart' ;
88import '../section_card.dart' ;
99import '../toggle_row.dart' ;
1010
11- final bool _isE2E = dotenv.env['E2E_MODE' ] == 'true' ;
12-
1311class AppSection extends StatelessWidget {
1412 final VoidCallback ? onInfoTap;
1513
@@ -40,7 +38,7 @@ class AppSection extends StatelessWidget {
4038 identifier: 'app_id_value' ,
4139 container: true ,
4240 child: SelectableText (
43- _isE2E ? '••••••••-••••-••••-••••-••••••••••••' : vm.appId,
41+ maskValue ( vm.appId) ,
4442 style: Theme .of (context).textTheme.bodySmall? .copyWith (
4543 fontFamily: 'monospace' ,
4644 ),
Original file line number Diff line number Diff line change 11import 'package:flutter/material.dart' ;
2- import 'package:flutter_dotenv/flutter_dotenv.dart' ;
32import 'package:provider/provider.dart' ;
43
54import '../../theme.dart' ;
5+ import '../../utils/mask_value.dart' ;
66import '../../viewmodels/app_viewmodel.dart' ;
77import '../action_button.dart' ;
88import '../section_card.dart' ;
99import '../toggle_row.dart' ;
1010
11- final bool _isE2E = dotenv.env['E2E_MODE' ] == 'true' ;
12-
1311class PushSection extends StatelessWidget {
1412 final VoidCallback ? onInfoTap;
1513
@@ -43,7 +41,7 @@ class PushSection extends StatelessWidget {
4341 identifier: 'push_id_value' ,
4442 container: true ,
4543 child: SelectableText (
46- _isE2E ? '••••••••-••••-••••-••••-••••••••••••' : (vm.pushSubscriptionId ?? 'N/A' ),
44+ maskValue (vm.pushSubscriptionId ?? 'N/A' ),
4745 style: Theme .of (context).textTheme.bodySmall? .copyWith (
4846 fontFamily: 'monospace' ,
4947 ),
Original file line number Diff line number Diff line change 1+ import 'package:flutter_dotenv/flutter_dotenv.dart' ;
2+
3+ const String _maskChar = '\u 2022' ;
4+ final bool _isE2E = dotenv.env['E2E_MODE' ] == 'true' ;
5+
6+ /// Replaces [value] with a mask of equal length when running in E2E mode so
7+ /// real app/push IDs don't leak into screenshots or Appium element captures.
8+ /// Returns [value] unchanged otherwise.
9+ String maskValue (String value) {
10+ if (_isE2E) {
11+ return _maskChar * value.length;
12+ }
13+ return value;
14+ }
Original file line number Diff line number Diff line change 11import 'package:flutter/material.dart' ;
2- import 'package:flutter_dotenv/flutter_dotenv.dart' ;
32import 'package:provider/provider.dart' ;
43import 'package:url_launcher/url_launcher.dart' ;
54
65import '../../theme.dart' ;
6+ import '../../utils/mask_value.dart' ;
77import '../../viewmodels/app_viewmodel.dart' ;
88import '../section_card.dart' ;
99import '../toggle_row.dart' ;
1010
11- final bool _isE2E = dotenv.env['E2E_MODE' ] == 'true' ;
12-
1311class AppSection extends StatelessWidget {
1412 final VoidCallback ? onInfoTap;
1513
@@ -40,7 +38,7 @@ class AppSection extends StatelessWidget {
4038 identifier: 'app_id_value' ,
4139 container: true ,
4240 child: SelectableText (
43- _isE2E ? '••••••••-••••-••••-••••-••••••••••••' : vm.appId,
41+ maskValue ( vm.appId) ,
4442 style: Theme .of (context).textTheme.bodySmall? .copyWith (
4543 fontFamily: 'monospace' ,
4644 ),
Original file line number Diff line number Diff line change 11import 'package:flutter/material.dart' ;
2- import 'package:flutter_dotenv/flutter_dotenv.dart' ;
32import 'package:provider/provider.dart' ;
43
54import '../../theme.dart' ;
5+ import '../../utils/mask_value.dart' ;
66import '../../viewmodels/app_viewmodel.dart' ;
77import '../action_button.dart' ;
88import '../section_card.dart' ;
99import '../toggle_row.dart' ;
1010
11- final bool _isE2E = dotenv.env['E2E_MODE' ] == 'true' ;
12-
1311class PushSection extends StatelessWidget {
1412 final VoidCallback ? onInfoTap;
1513
@@ -43,7 +41,7 @@ class PushSection extends StatelessWidget {
4341 identifier: 'push_id_value' ,
4442 container: true ,
4543 child: SelectableText (
46- _isE2E ? '••••••••-••••-••••-••••-••••••••••••' : (vm.pushSubscriptionId ?? 'N/A' ),
44+ maskValue (vm.pushSubscriptionId ?? 'N/A' ),
4745 style: Theme .of (context).textTheme.bodySmall? .copyWith (
4846 fontFamily: 'monospace' ,
4947 ),
You can’t perform that action at this time.
0 commit comments