runOnNewVersion<T> method
Null safety
- {required T? callback(
- T? fallback(
Runs only on every new app number version
Implementation
static Future<T?> runOnNewVersion<T>({
required T? Function() callback,
T? Function()? fallback,
}) async {
const key = 'ON_NEW_VERSION';
final preferences = await SharedPreferences.getInstance();
PackageInfo packageInfo = await PackageInfo.fromPlatform();
String currentVersion = packageInfo.version;
if (preferences.containsKey(key)) {
final savedVersion = preferences.getString(key)!.replaceAll(".", "");
String existingVersion = currentVersion.replaceAll(".", "");
if (num.parse(existingVersion) > num.parse(savedVersion)) {
preferences.setString(key, currentVersion);
return callback.call();
}
return fallback?.call();
}
preferences.setString(key, currentVersion);
return callback.call();
}