updateIfAvailable method

Future<bool> updateIfAvailable({
  1. bool isFlexibleUpdateAndroid = true,
  2. Widget iOSUpdateDialogBuilder()?,
  3. BuildContext? contextBuilder()?,
  4. void androidProgressCallback(
    1. SmartAppUpdateProgressInfo
    )?,
})

Implementation

Future<bool> updateIfAvailable({
  bool isFlexibleUpdateAndroid = true,
  Widget Function()? iOSUpdateDialogBuilder,
  BuildContext? Function()? contextBuilder,
  void Function(SmartAppUpdateProgressInfo)? androidProgressCallback,
}) async {
  final updateInfo = await getUpdateInfo();

  if (updateInfo.isUpdateAvailable) {
    if (Platform.isAndroid) {
      if (isFlexibleUpdateAndroid) {
        if (await AndroidSmartAppUpdate.instance.startImmediateUpdate()) {
          if (androidProgressCallback != null) {
            AndroidSmartAppUpdate.instance.onProgressUpdated(
              androidProgressCallback,
            );
          }
        }
      } else {
        return await AndroidSmartAppUpdate.instance.startImmediateUpdate();
      }
    } else if (Platform.isIOS) {
      if (iOSUpdateDialogBuilder != null) {
        return IOSSmartAppUpdate.instance.showUpdateDialogWithBuilder(
          contextBuilder: contextBuilder,
          iOSUpdateDialogBuilder: iOSUpdateDialogBuilder,
        );
      } else {
        return IOSSmartAppUpdate.instance.showUpdateDialog(
          contextBuilder: contextBuilder,
          appLinkUrl: iOSAppLinkUrl,
          releaseNotes: updateInfo.releaseNotes,
        );
      }
    }
  }

  return false;
}