getDefaultLocalUrl method

String? getDefaultLocalUrl()

Implementation

String? getDefaultLocalUrl() {
  var cacheDir = CommonUtils.appFileDir;
  String filePath = UUID ?? '';
  String filePathOld = UUID ?? '';

  if (Platform.isAndroid) {
    var separator = UUID?.contains('.') == true ? '' : '_';
    filePath = 'file_$UUID$separator${Uri.encodeComponent(fileName ?? "").replaceAll('%20', '+')}';
  } else if (Platform.isIOS) {
    String filePathPrefix = '${CommonUtils.getSDKAppID()}/${CommonUtils.getLoginUser()}';
    filePath = '$filePathPrefix/$UUID/${fileName ?? ""}';
    filePathOld = '$filePathPrefix/$UUID/${Uri.encodeComponent(fileName ?? "")}';
  } else if (Platform.isMacOS) {
    String filePathPrefix = '${CommonUtils.getSDKAppID()}/${CommonUtils.getLoginUser()}';
    filePath = '$filePathPrefix/$UUID/${fileName ?? ""}';
  } else if (Platform.isWindows) {
    String filePathPrefix = 'TencentCloudChat/DownLoad/${CommonUtils.getSDKAppID()}/${CommonUtils.getLoginUser()}';
    filePath = '$filePathPrefix/$UUID/$fileName';
  } else if (Platform.operatingSystem == 'ohos') {
    filePath = 'file_${Uri.encodeComponent(fileName ?? "")}';
  }

  var defaultLocalUrl = '${cacheDir.path}/$filePath';
  if (File(defaultLocalUrl).existsSync()) {
    return defaultLocalUrl;
  }

  if (Platform.isAndroid && CommonUtils.externalCacheDir != null) {
    defaultLocalUrl = '${CommonUtils.externalCacheDir!.parent.path}/cache/$filePath';
    if (File(defaultLocalUrl).existsSync()) {
      return defaultLocalUrl;
    }
  }

  if (Platform.isIOS) {
    var localUrlOld = '${cacheDir.path}/$filePathOld';
    if (renameFile(localUrlOld, defaultLocalUrl)) {
      return defaultLocalUrl;
    }
  }

  return null;
}