URLUtilCompat


public final class URLUtilCompat


Compatibility versions of methods in android.webkit.URLUtil.

See also
URLUtil

Summary

Public methods

static @Nullable String

Extract filename from a Content-Disposition header value.

static @NonNull String
guessFileName(
    @NonNull String url,
    @Nullable String contentDisposition,
    @Nullable String mimeType
)

Guesses canonical filename that a download would have, using the URL and contentDisposition.

Public methods

getFilenameFromContentDisposition

Added in 1.11.0
public static @Nullable String getFilenameFromContentDisposition(@NonNull String contentDisposition)

Extract filename from a Content-Disposition header value.

This method implements the parsing defined in RFC 6266, supporting both the filename and filename* disposition parameters. If the passed header value has the "inline" disposition type, this method will return null to indicate that a download was not intended.

If both filename* and filename is present, the former will be returned, as per the RFC. Invalid encoded values will be ignored.

Parameters
@NonNull String contentDisposition

Value of Content-Disposition header.

Returns
@Nullable String

The filename suggested by the header or null if no filename could be parsed from the header value.

guessFileName

Added in 1.11.0
public static @NonNull String guessFileName(
    @NonNull String url,
    @Nullable String contentDisposition,
    @Nullable String mimeType
)

Guesses canonical filename that a download would have, using the URL and contentDisposition.

This method differs from guessFileName in the following ways:

  • This method uses an updated parsing of contentDisposition, making this available on older Android versions. See getFilenameFromContentDisposition.
  • If the contentDisposition parameter is valid and contains a filename, that filename will be returned. The url and mimeType parameters will not be used in this case.
  • Otherwise the filename will be deduced from the path of the url and the mimeType. If a mimeType is provided and the canonical extension for that filetype does not match the filename derived from the url, then the canonical extension will be appended.
  • If the mimeType is null, "application/octet-stream", or not known by the system, no extension will be appended to the filename.
Parameters
@NonNull String url

Url to the content. Must not be null

@Nullable String contentDisposition

Content-Disposition HTTP header or null

@Nullable String mimeType

Mime-type of the content or null

Returns
@NonNull String

suggested filename