-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathapp_versioning.dart
75 lines (66 loc) · 2.89 KB
/
app_versioning.dart
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
// Library Entry Point
library app_versioning;
// Class imports
import 'package:app_versioning/src/api/config/api_config.dart';
import 'package:app_versioning/src/api/service/default_api_versioning_service.dart';
import 'package:app_versioning/src/default_app_versioning.dart';
import 'package:app_versioning/src/device/config/update_config.dart';
import 'package:app_versioning/src/device/service/default_device_versioning_service.dart';
import 'package:app_versioning/src/firebase/config/remote_config_keys.dart';
import 'package:app_versioning/src/firebase/service/default_firebase_versioning_service.dart';
import 'package:app_versioning/src/model/app_update_info.dart';
import 'package:app_versioning/src/optional/default_optional_update_service.dart';
import 'package:app_versioning/src/service/device_versioning_service.dart';
import 'package:app_versioning/src/service/minimum_versioning_service.dart';
import 'package:app_versioning/src/service/optional_update_service.dart';
import 'package:app_versioning/src/util/version.dart';
import 'package:app_versioning/src/util/version_tracker.dart';
// Library Export Classes
export 'src/api/exports.dart';
export 'src/device/exports.dart';
export 'src/firebase/exports.dart';
export 'src/model/app_update_info.dart';
export 'src/model/exceptions.dart';
export 'src/model/minimum_versions.dart';
export 'src/optional/default_optional_update_service.dart';
export 'src/service/device_versioning_service.dart';
export 'src/service/minimum_versioning_service.dart';
export 'src/util/version.dart';
abstract class AppVersioning {
VersionTracker get tracker;
Future<Version> getCurrentAppVersion();
Future<AppUpdateInfo> getAppUpdateInfo();
void launchUpdate({required bool updateInBackground});
factory AppVersioning.apiService({
required ApiConfig apiConfig,
required UpdateConfig updateConfig,
}) {
return DefaultAppVersioning(
minimumVersioningService: DefaultApiVersioningService(apiConfig),
appUpdateService: DefaultDeviceVersioningService(updateConfig),
optionalUpdateService: DefaultOptionalUpdateService(updateConfig),
);
}
factory AppVersioning.firebaseService({
required RemoteConfigKeys remoteConfigKeys,
required UpdateConfig updateConfig,
}) {
return DefaultAppVersioning(
minimumVersioningService:
DefaultFirebaseVersioningService(remoteConfigKeys),
appUpdateService: DefaultDeviceVersioningService(updateConfig),
optionalUpdateService: DefaultOptionalUpdateService(updateConfig),
);
}
factory AppVersioning({
required MinimumVersioningService minimumVersioningService,
required DeviceVersioningService appUpdateService,
required OptionalUpdateService optionalUpdateService,
}) {
return DefaultAppVersioning(
minimumVersioningService: minimumVersioningService,
appUpdateService: appUpdateService,
optionalUpdateService: optionalUpdateService,
);
}
}