diff --git a/analysis_options.yaml b/analysis_options.yaml index 92ea0b11..6640b461 100644 --- a/analysis_options.yaml +++ b/analysis_options.yaml @@ -65,7 +65,7 @@ linter: empty_statements: true exhaustive_cases: true file_names: true - flutter_style_todos: true + flutter_style_todos: false hash_and_equals: true implementation_imports: true iterable_contains_unrelated_type: true diff --git a/lib/providers/auth.dart b/lib/providers/auth.dart index 0e9d13cd..e1f1f6db 100644 --- a/lib/providers/auth.dart +++ b/lib/providers/auth.dart @@ -39,7 +39,7 @@ class AuthProvider with ChangeNotifier { String? serverUrl; String? serverVersion; PackageInfo? applicationVersion; - Map? metadata = {}; + Map metadata = {}; static const MIN_APP_VERSION_URL = 'min-app-version'; static const SERVER_VERSION_URL = 'version'; @@ -48,13 +48,16 @@ class AuthProvider with ChangeNotifier { late http.Client client; - AuthProvider([http.Client? client]) { + AuthProvider([http.Client? client, bool? checkMetadata]) { this.client = client ?? http.Client(); - try { - AndroidMetadata.metaDataAsMap.then((value) => metadata = value); - } on PlatformException { - throw Exception('An error occurred reading the metadata from AndroidManifest'); + // TODO: this is a workaround since AndroidMetadata doesn't work while running tests + if (checkMetadata ?? true) { + try { + AndroidMetadata.metaDataAsMap.then((value) => metadata = value!); + } on PlatformException { + throw Exception('An error occurred reading the metadata from AndroidManifest'); + } catch (error) {} } } @@ -80,8 +83,8 @@ class AuthProvider with ChangeNotifier { /// Checking if there is a new version of the application. Future applicationUpdateRequired([String? version]) async { - if (metadata!.containsKey('wger.check_min_app_version') || - metadata!['wger.check_min_app_version'] == 'false') { + if (metadata.containsKey('wger.check_min_app_version') || + metadata['wger.check_min_app_version'] == 'false') { return false; } @@ -110,7 +113,7 @@ class AuthProvider with ChangeNotifier { makeUri(serverUrl, REGISTRATION_URL), headers: { HttpHeaders.contentTypeHeader: 'application/json; charset=UTF-8', - HttpHeaders.authorizationHeader: 'Token ${metadata![MANIFEST_KEY_API]}', + HttpHeaders.authorizationHeader: 'Token ${metadata[MANIFEST_KEY_API]}', HttpHeaders.userAgentHeader: getAppNameHeader(), }, body: json.encode(data), diff --git a/lib/screens/auth_screen.dart b/lib/screens/auth_screen.dart index b4edb819..6a80be1b 100644 --- a/lib/screens/auth_screen.dart +++ b/lib/screens/auth_screen.dart @@ -119,7 +119,7 @@ class _AuthCardState extends State { // If not, the user will not be able to register via the app try { final metadata = Provider.of(context, listen: false).metadata; - if (metadata!.containsKey(MANIFEST_KEY_API) || metadata[MANIFEST_KEY_API] == '') { + if (metadata.containsKey(MANIFEST_KEY_API) || metadata[MANIFEST_KEY_API] == '') { _canRegister = false; } } on PlatformException { diff --git a/test/auth/auth_provider_test.dart b/test/auth/auth_provider_test.dart index 8af65057..8dc53fd9 100644 --- a/test/auth/auth_provider_test.dart +++ b/test/auth/auth_provider_test.dart @@ -17,7 +17,7 @@ void main() { setUp(() { mockClient = MockClient(); - authProvider = AuthProvider(mockClient); + authProvider = AuthProvider(mockClient, false); authProvider.serverUrl = 'http://localhost'; }); diff --git a/test/utils.dart b/test/utils.dart index 59be586a..67c8b97d 100644 --- a/test/utils.dart +++ b/test/utils.dart @@ -23,7 +23,7 @@ import '../test_data/exercises.dart'; import 'other/base_provider_test.mocks.dart'; // Test Auth provider -final AuthProvider testAuthProvider = AuthProvider(MockClient()) +final AuthProvider testAuthProvider = AuthProvider(MockClient(), false) ..token = 'FooBar' ..serverUrl = 'https://localhost';