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.value = "$urlType";
    logInfo("$_baseURLTypeKey = ${_baseURLTypeString.value}");
    return SharedPreferencesUtil.setSharedPrefsString(
        _baseURLTypeKey, _baseURLTypeString.value);
  }

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

  return showBaseAlert(
    BaseGeneralAlertDialog(
      title: Text(_baseURLTypeString.value.isEmpty
          ? "$kBaseURLType"
          : _baseURLTypeString.value),
      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!();
            }
            offBack(true);
          },
        ),
        BaseDialogAction(
          isDefaultAction: true,
          child: Text("${BaseURLType.release}"),
          onPressed: () async {
            await save(BaseURLType.release);
            if (baseURLChangedCallback != null) {
              baseURLChangedCallback!();
            }
            offBack(true);
          },
        ),
        BaseDialogAction(
          child: const Text("Cancel"),
          onPressed: () {
            offBack(false);
          },
        ),
      ],
    ),
  );
}