Skip to content

Commit 9906020

Browse files
committed
chore: add platform check when intializing Bugsee
1 parent f6a6938 commit 9906020

3 files changed

Lines changed: 34 additions & 9 deletions

File tree

src/app/lib/business/bugsee/bugsee_config_state.dart

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,16 @@
11
import 'package:equatable/equatable.dart';
22

3+
enum ConfigErrorEnum {
4+
invalidReleaseMode(error: 'Bugsee is disabled in debug mode'),
5+
invalidToken(error: 'Invalid token, cannot start Bugsee reporting'),
6+
invalidPlatform(error: 'Bugsee cannot be configured on this platform');
7+
8+
final String error;
9+
const ConfigErrorEnum({
10+
required this.error,
11+
});
12+
}
13+
314
final class BugseeConfigState extends Equatable {
415
/// Indicate if the app require a restart to reactivate the bugsee configurations
516
///
@@ -45,6 +56,9 @@ final class BugseeConfigState extends Equatable {
4556
/// By default it's enabled.
4657
final bool attachLogFile;
4758

59+
/// Indicate the configuration error type (debug, invalid token or invalid platform)
60+
final ConfigErrorEnum? configErrorEnum;
61+
4862
const BugseeConfigState({
4963
this.isRestartRequired = false,
5064
this.isBugseeEnabled = false,
@@ -54,6 +68,7 @@ final class BugseeConfigState extends Equatable {
5468
this.isLogCollectionEnabled = false,
5569
this.isLogFilterEnabled = false,
5670
this.attachLogFile = false,
71+
this.configErrorEnum,
5772
});
5873

5974
BugseeConfigState copyWith({
@@ -65,6 +80,7 @@ final class BugseeConfigState extends Equatable {
6580
bool? isLogCollectionEnabled,
6681
bool? isLogFilterEnabled,
6782
bool? attachLogFile,
83+
ConfigErrorEnum? configErrorEnum,
6884
}) =>
6985
BugseeConfigState(
7086
isRestartRequired: isRestartRequired ?? this.isRestartRequired,
@@ -77,6 +93,7 @@ final class BugseeConfigState extends Equatable {
7793
isLogCollectionEnabled ?? this.isLogCollectionEnabled,
7894
isVideoCaptureEnabled:
7995
isVideoCaptureEnabled ?? this.isVideoCaptureEnabled,
96+
configErrorEnum: configErrorEnum ?? this.configErrorEnum,
8097
);
8198

8299
@override

src/app/lib/business/bugsee/bugsee_manager.dart

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,15 @@ final class _BugseeManager implements BugseeManager {
128128
this.loggerManager = loggerManager;
129129
this.bugseeRepository = bugseeRepository;
130130

131+
if (!Platform.isIOS && !Platform.isAndroid) {
132+
_currentState = _currentState.copyWith(
133+
isConfigurationValid: false,
134+
configErrorEnum: ConfigErrorEnum.invalidPlatform,
135+
);
136+
logger.i("BUGSEE: ${_currentState.configErrorEnum?.error}");
137+
return;
138+
}
139+
131140
configurationData = await bugseeRepository.getBugseeConfiguration();
132141
configurationData = configurationData.copyWith(
133142
isLogCollectionEnabled: configurationData.isLogCollectionEnabled ??
@@ -155,18 +164,20 @@ final class _BugseeManager implements BugseeManager {
155164
if (kDebugMode) {
156165
_currentState = _currentState.copyWith(
157166
isConfigurationValid: false,
167+
configErrorEnum: ConfigErrorEnum.invalidReleaseMode,
158168
);
159-
logger.i("BUGSEE: deactivated in debug mode");
169+
logger.i("BUGSEE: ${_currentState.configErrorEnum?.error}");
160170
return;
161171
}
162172

163173
if (bugseeToken == null ||
164174
!RegExp(bugseeTokenFormat).hasMatch(bugseeToken)) {
165175
_currentState = _currentState.copyWith(
166176
isConfigurationValid: false,
177+
configErrorEnum: ConfigErrorEnum.invalidToken,
167178
);
168179
logger.i(
169-
"BUGSEE: token is null or invalid, bugsee won't be initialized",
180+
"BUGSEE: ${_currentState.configErrorEnum?.error}",
170181
);
171182
return;
172183
}

src/app/lib/presentation/diagnostic/bugsee_configuration_widget.dart

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import 'package:app/business/bugsee/bugsee_config_state.dart';
44
import 'package:app/business/bugsee/bugsee_manager.dart';
55
import 'package:app/presentation/diagnostic/diagnostic_button.dart';
66
import 'package:app/presentation/diagnostic/diagnostic_switch.dart';
7-
import 'package:flutter/foundation.dart';
87
import 'package:flutter/material.dart';
98
import 'package:get_it/get_it.dart';
109

@@ -33,14 +32,12 @@ class _BugseeConfigurationWidgetState extends State<BugseeConfigurationWidget> {
3332
children: [
3433
Column(
3534
children: [
36-
if (!bugseeManager.bugseeConfigState.isConfigurationValid)
35+
if (!state.isConfigurationValid)
3736
Container(
3837
color: const Color.fromARGB(170, 255, 0, 0),
39-
child: const Text(
40-
kDebugMode
41-
? "Bugsee is disabled in debug mode."
42-
: "Invalid Bugsee token, capturing exceptions could not start",
43-
style: TextStyle(
38+
child: Text(
39+
state.configErrorEnum?.error ?? '',
40+
style: const TextStyle(
4441
color: Colors.white,
4542
fontSize: 20,
4643
fontWeight: FontWeight.bold,

0 commit comments

Comments
 (0)