getVersionInfo method
Future<UpgraderVersionInfo>
getVersionInfo({
- required UpgraderState state,
- required Version installedVersion,
- required String? country,
- required String? language,
override
Implementation
@override
Future<UpgraderVersionInfo> getVersionInfo(
{required UpgraderState state,
required Version installedVersion,
required String? country,
required String? language}) async {
if (state.packageInfo == null) return UpgraderVersionInfo();
final id = state.packageInfo!.packageName;
final playStore = PlayStoreSearchAPI(
client: state.client, clientHeaders: state.clientHeaders);
playStore.debugLogging = state.debugLogging;
String? appStoreListingURL;
Version? appStoreVersion;
bool? isCriticalUpdate;
Version? minAppVersion;
String? releaseNotes;
final response =
await playStore.lookupById(id, country: country, language: language);
if (response != null) {
final version = playStore.version(response);
if (version != null) {
try {
appStoreVersion = Version.parse(version);
} catch (e) {
if (state.debugLogging) {
print(
'upgrader: UpgraderPlayStore.appStoreVersion "$version" exception: $e');
}
}
}
appStoreListingURL ??=
playStore.lookupURLById(id, language: language, country: country);
releaseNotes ??= playStore.releaseNotes(response);
final mav = playStore.minAppVersion(response);
if (mav != null) {
try {
final minVersion = mav.toString();
minAppVersion = Version.parse(minVersion);
if (state.debugLogging) {
print('upgrader: UpgraderPlayStore.minAppVersion: $minAppVersion');
}
} catch (e) {
if (state.debugLogging) {
print('upgrader: UpgraderPlayStore.minAppVersion exception: $e');
}
}
}
}
final versionInfo = UpgraderVersionInfo(
installedVersion: installedVersion,
appStoreListingURL: appStoreListingURL,
appStoreVersion: appStoreVersion,
isCriticalUpdate: isCriticalUpdate,
minAppVersion: minAppVersion,
releaseNotes: releaseNotes,
);
if (state.debugLogging) {
print('upgrader: UpgraderPlayStore: version info: $versionInfo');
}
return versionInfo;
}