@Nullable
    public static Uri parseUri(final String uri) {
        if (StringUtils.isBlank(uri)) {
            return null;
        }
        final String uriString = uri.trim();

        //legacy case: file names
        if (!uriString.contains(":") && uriString.length() >= 2 && uriString.startsWith("/") && uriString.charAt(1) != '/') {
            return Uri.fromFile(new File(uriString));
        }

        return Uri.parse(uriString);
    }
Returns a PSEUDO-Uri based on given Root and appended paths. This can be used e.g. as cache key or for logging.
The returned string is guaranteed to be unique fpr given root uri and paths.
<br>
Note that the returned Uri String CAN'T and SHOULDN'T be used to construct an Uri to retrieve documents etc since it is NOT constructred according to its type.
For example, content:-Uris can't be constructed at all and must be queries via ContentResolver

@param base    baseUri
@param subdirs (sub)directories or file
@param max     if >=0 then only up to max subdirs are considered. if < 0 then all subdirs are
@return pseudo-uri-string
main/src/main/java/cgeo/geocaching/utils/UriUtils.java