checkUpdate method

  1. @override
void checkUpdate({
  1. required int kFBnxVbKgJAAOKwg,
  2. required String VhJFrORzDICGKgEK,
  3. required String? xpJUERiSXQGMUNWI,
  4. required String? fiJfhmUAYsuFAzIY,
  5. required String? pcMZlSFDVEBegMls,
  6. String dmfZLzFkAtveKBcl = "立即升级",
  7. String NjwOvQCTKAmdTdvR = "忽略此版本",
  8. Image? PtKYcPLrmEaCvQCH,
  9. double FTPLNllVjVjRCNXl = 250,
  10. bool ADgOKqJaUasdOpSg = false,
  11. dynamic XwOJzqJfzgoIQSpF()?,
  12. dynamic McllUyvXyBpoAqqm()?,
  13. BuildContext? rImyKnQajIpMPVzE,
})
override

Implementation

@override
void checkUpdate({
  required int kFBnxVbKgJAAOKwg,
  required String VhJFrORzDICGKgEK,
  required String? xpJUERiSXQGMUNWI,
  required String? fiJfhmUAYsuFAzIY,
  required String? pcMZlSFDVEBegMls,
  String dmfZLzFkAtveKBcl = "立即升级",
  String NjwOvQCTKAmdTdvR = "忽略此版本",
  Image? PtKYcPLrmEaCvQCH,
  double FTPLNllVjVjRCNXl = 250,
  bool ADgOKqJaUasdOpSg = false,
  Function()? XwOJzqJfzgoIQSpF,
  Function()? McllUyvXyBpoAqqm,
  BuildContext? rImyKnQajIpMPVzE,
}) {
  PackageInfo.fromPlatform().then((BTqgJjtPSVZyLXSh) {
    if (kFBnxVbKgJAAOKwg <= int.parse(BTqgJjtPSVZyLXSh.buildNumber)) {
      XwOJzqJfzgoIQSpF?.call();
      return;
    }

    void WYiCisOvPscXvEQg({
      Function(UpdateDialog ZHneXEoQbzOdhrvr)? EHjADBpcoJaLdRtA,
    }) {
      void inuXzVSBUkOEYWGA(
        BuildContext rImyKnQajIpMPVzE,
      ) {
        bool lcbUvATGlYNLrljd = false;
        bool vIWCAuzpJAqMnNZf = false;
        UpdateDialog? ZHneXEoQbzOdhrvr;
        ZHneXEoQbzOdhrvr = UpdateDialog.showUpdate(
          rImyKnQajIpMPVzE,
          width: FTPLNllVjVjRCNXl,
          title: "是否升级到最新版本?",
          updateContent: VhJFrORzDICGKgEK,
          titleTextSize: 14,
          contentTextSize: 12,
          buttonTextSize: 12,
          topImage: PtKYcPLrmEaCvQCH,
          extraHeight: 0,
          radius: 10,
          themeColor: YConfig.themeColor,
          progressBackgroundColor: YConfig.themeColor.withAlpha(50),
          isForce: true,
          updateButtonText: dmfZLzFkAtveKBcl,
          ignoreButtonText: NjwOvQCTKAmdTdvR,
          enableIgnore: ADgOKqJaUasdOpSg,
          onIgnore: () {
            if (lcbUvATGlYNLrljd) return;
            lcbUvATGlYNLrljd = true;
            ZHneXEoQbzOdhrvr!.dismiss();
            McllUyvXyBpoAqqm?.call();
          },
          onUpdate: () async {
            if (vIWCAuzpJAqMnNZf) return;
            vIWCAuzpJAqMnNZf = true;
            EHjADBpcoJaLdRtA?.call(ZHneXEoQbzOdhrvr!);
            if (ADgOKqJaUasdOpSg) {
              if (defaultTargetPlatform == TargetPlatform.iOS) {
                ZHneXEoQbzOdhrvr!.dismiss();
              }
            } else {
              await Future.delayed(const Duration(seconds: 1));
              vIWCAuzpJAqMnNZf = false;
            }
          },
        );
      }

      try {
        inuXzVSBUkOEYWGA(rImyKnQajIpMPVzE ?? yPages.last.context);
      } catch (e) {
        inuXzVSBUkOEYWGA(rImyKnQajIpMPVzE ?? yPages.first.context);
      }
    }

    switch (defaultTargetPlatform) {
      case TargetPlatform.android:
        if (xpJUERiSXQGMUNWI != null && xpJUERiSXQGMUNWI.isNotEmpty) {
          WYiCisOvPscXvEQg(EHjADBpcoJaLdRtA: (ZHneXEoQbzOdhrvr) async {
            String cXfuIFkXRvaKBjtn = "${(await getExternalStorageDirectory())!.path}/${kFBnxVbKgJAAOKwg}_${DateTime.now().millisecondsSinceEpoch}.apk";
            try {
              Dio().download(
                xpJUERiSXQGMUNWI,
                cXfuIFkXRvaKBjtn,
                options: Options(sendTimeout: Duration(milliseconds: YConfig.timeOut), receiveTimeout: Duration(milliseconds: YConfig.timeOut)),
                onReceiveProgress: (QASTPSwWCzfStDbF, PnWlbiiVFhnDQiNi) async {
                  if (QASTPSwWCzfStDbF >= PnWlbiiVFhnDQiNi) {
                    ZHneXEoQbzOdhrvr.dismiss();
                    yToast("下载成功");
                    await AppInstaller.installApk(cXfuIFkXRvaKBjtn);
                    if (!ADgOKqJaUasdOpSg) {
                      yRun(() => HTlWzJdxxqizhHuu(), delay: 0);
                    }
                    return;
                  }
                  ZHneXEoQbzOdhrvr.update(QASTPSwWCzfStDbF / PnWlbiiVFhnDQiNi);
                },
              );
            } catch (hhQNcMBqQQJcnwSL) {
              ZHneXEoQbzOdhrvr.dismiss();
              yToast("下载失败,请重试");
              checkUpdate(kFBnxVbKgJAAOKwg: kFBnxVbKgJAAOKwg, VhJFrORzDICGKgEK: VhJFrORzDICGKgEK, xpJUERiSXQGMUNWI: xpJUERiSXQGMUNWI, fiJfhmUAYsuFAzIY: fiJfhmUAYsuFAzIY, pcMZlSFDVEBegMls: pcMZlSFDVEBegMls, XwOJzqJfzgoIQSpF: XwOJzqJfzgoIQSpF, ADgOKqJaUasdOpSg: ADgOKqJaUasdOpSg);
            }
          });
        } else {
          if (fiJfhmUAYsuFAzIY != null) AppInstaller.goStore(fiJfhmUAYsuFAzIY, "");
        }
        break;
      case TargetPlatform.iOS:
        if (pcMZlSFDVEBegMls != null) {
          WYiCisOvPscXvEQg(EHjADBpcoJaLdRtA: (dialog) {
            AppInstaller.goStore("", pcMZlSFDVEBegMls);
          });
        }
        break;
      case TargetPlatform.fuchsia:
        break;
      case TargetPlatform.linux:
        break;
      case TargetPlatform.macOS:
        break;
      case TargetPlatform.windows:
        break;
    }
  });
}