showSelectBaseURLTypeAlert function

Future<bool?> showSelectBaseURLTypeAlert({
  1. BuildContext? context,
})

弹出切换环境菜单

Implementation

Future<bool?> showSelectBaseURLTypeAlert({BuildContext? context}) {
  if (!isAppDebugFlag) {
    return Future.value(false);
  }

  /// 保存选择的环境
  Future<bool> save(BaseURLType urlType) {
    _baseURLTypeString = "$urlType";
    logInfo("$_baseURLTypeKey = " + _baseURLTypeString);
    return SharedPreferencesUtil.setSharedPrefsString(
        _baseURLTypeKey, _baseURLTypeString);
  }

  if (context == null) {
    return save(kBaseURLType == BaseURLType.test
        ? BaseURLType.release
        : BaseURLType.test);
  }

  return showBaseDialog(
    context: context,
    barrierDismissible: true,
    builder: (BuildContext ctx) {
      return BaseGeneralAlertDialog(
        title: Text(
            _baseURLTypeString.isEmpty ? "$kBaseURLType" : _baseURLTypeString),
        content: Text(
          "${BaseURLType.test}" +
              "=\n" +
              (kTestBaseURL) +
              "\n\n"
                  "${BaseURLType.release}" +
              "=\n" +
              (kReleaseBaseURL),
        ),
        actions: <Widget>[
          BaseDialogAction(
            isDestructiveAction: true,
            child: Text("${BaseURLType.test}"),
            onPressed: () async {
              await save(BaseURLType.test);
              if (baseURLChangedCallback != null) {
                baseURLChangedCallback!();
              }
              Navigator.pop(ctx, true);
            },
          ),
          BaseDialogAction(
            isDefaultAction: true,
            child: Text("${BaseURLType.release}"),
            onPressed: () async {
              await save(BaseURLType.release);
              if (baseURLChangedCallback != null) {
                baseURLChangedCallback!();
              }
              Navigator.pop(ctx, true);
            },
          ),
          BaseDialogAction(
            child: Text("取消"),
            onPressed: () {
              Navigator.pop(ctx, false);
            },
          ),
        ],
      );
    },
  );
}