Prep Linux/macOS support: package_info_plus package + env variables instead of AndroidMetadata

This commit is contained in:
Miroslav Mazel
2023-03-21 21:06:37 +01:00
parent 03b433b55c
commit 7aeed3bde5
5 changed files with 26 additions and 11 deletions

View File

@@ -26,7 +26,7 @@ import 'package:flutter/cupertino.dart';
import 'package:flutter/services.dart';
import 'package:flutter/widgets.dart';
import 'package:http/http.dart' as http;
import 'package:package_info/package_info.dart';
import 'package:package_info_plus/package_info_plus.dart';
import 'package:shared_preferences/shared_preferences.dart';
import 'package:version/version.dart';
import 'package:wger/exceptions/http_exception.dart';
@@ -59,7 +59,14 @@ class AuthProvider with ChangeNotifier {
// TODO: this is a workaround since AndroidMetadata doesn't work while running tests
if (checkMetadata ?? true) {
try {
AndroidMetadata.metaDataAsMap.then((value) => metadata = value!);
if (Platform.isAndroid) {
AndroidMetadata.metaDataAsMap.then((value) => metadata = value!);
} else if (Platform.isLinux || Platform.isMacOS) {
metadata = {
MANIFEST_KEY_CHECK_UPDATE: Platform.environment[MANIFEST_KEY_CHECK_UPDATE] ?? '',
MANIFEST_KEY_API: Platform.environment[MANIFEST_KEY_API] ?? ''
};
}
} on PlatformException {
throw Exception('An error occurred reading the metadata from AndroidManifest');
} catch (error) {}
@@ -94,8 +101,8 @@ class AuthProvider with ChangeNotifier {
/// Checking if there is a new version of the application.
Future<bool> applicationUpdateRequired([String? version, Map<String, String>? metadata]) async {
metadata ??= this.metadata;
if (!metadata.containsKey('wger.check_min_app_version') ||
metadata['wger.check_min_app_version'] == 'false') {
if (!metadata.containsKey(MANIFEST_KEY_CHECK_UPDATE) ||
metadata[MANIFEST_KEY_CHECK_UPDATE] == 'false') {
return false;
}

View File

@@ -796,14 +796,22 @@ packages:
url: "https://pub.dev"
source: hosted
version: "2.1.0"
package_info:
package_info_plus:
dependency: "direct main"
description:
name: package_info
sha256: "6c07d9d82c69e16afeeeeb6866fe43985a20b3b50df243091bfc4a4ad2b03b75"
name: package_info_plus
sha256: "8df5ab0a481d7dc20c0e63809e90a588e496d276ba53358afc4c4443d0a00697"
url: "https://pub.dev"
source: hosted
version: "2.0.2"
version: "3.0.3"
package_info_plus_platform_interface:
dependency: transitive
description:
name: package_info_plus_platform_interface
sha256: "9bc8ba46813a4cc42c66ab781470711781940780fd8beddd0c3da62506d3a6c6"
url: "https://pub.dev"
source: hosted
version: "2.0.1"
path:
dependency: transitive
description:

View File

@@ -47,7 +47,7 @@ dependencies:
intl: ^0.17.0
json_annotation: ^4.7.0
version: ^3.0.2
package_info: ^2.0.2
package_info_plus: ^3.0.3
provider: ^6.0.5
rive: ^0.10.2
shared_preferences: ^2.0.18

View File

@@ -10,7 +10,7 @@ import 'dart:ui' as _i7;
import 'package:http/http.dart' as _i3;
import 'package:mockito/mockito.dart' as _i1;
import 'package:package_info/package_info.dart' as _i6;
import 'package:package_info_plus/package_info_plus.dart' as _i6;
import 'package:wger/providers/auth.dart' as _i2;
import 'package:wger/providers/base_provider.dart' as _i4;

View File

@@ -10,7 +10,7 @@ import 'dart:ui' as _i6;
import 'package:http/http.dart' as _i2;
import 'package:mockito/mockito.dart' as _i1;
import 'package:package_info/package_info.dart' as _i4;
import 'package:package_info_plus/package_info_plus.dart' as _i4;
import 'package:wger/providers/auth.dart' as _i3;
// ignore_for_file: type=lint