builder.encodedQuery(identityString.substring(1)); // Need to cut off the ! at the beginning. Uri uri = builder.build(); for (IdentityField key : IdentityField.values()) {
@Nullable public static UniFile getDownloadLocation() { UniFile dir = null; try { Uri.Builder builder = new Uri.Builder(); builder.scheme(getString(KEY_DOWNLOAD_SAVE_SCHEME, null)); builder.encodedAuthority(getString(KEY_DOWNLOAD_SAVE_AUTHORITY, null)); builder.encodedPath(getString(KEY_DOWNLOAD_SAVE_PATH, null)); builder.encodedQuery(getString(KEY_DOWNLOAD_SAVE_QUERY, null)); builder.encodedFragment(getString(KEY_DOWNLOAD_SAVE_FRAGMENT, null)); dir = UniFile.fromUri(sContext, builder.build()); } catch (Throwable e) { ExceptionUtils.throwIfFatal(e); // Ignore } return dir != null ? dir : UniFile.fromFile(AppConfig.getDefaultDownloadDir()); }
@NonNull private Uri createTargetUri(@NonNull final Uri sourceUri, @NonNull final Target target) { final String targetUrl = target.toTargetUrl(); final Uri sessionUri = Uri.parse(targetUrl); final String mergedEncodedQuery = mergeEncodedQuery(sourceUri, sessionUri); return sourceUri.buildUpon() .scheme(sessionUri.getScheme()) .authority(sessionUri.getAuthority()) .path(sessionUri.getPath()) .encodedQuery(mergedEncodedQuery) .fragment(sessionUri.getFragment()) .build(); }
static public Uri getUriWithoutLastNPathParts(final Uri uri, final int n) { final List<String> segments = uri.getPathSegments(); final String[] newSegments = new String[segments.size() - n]; final Uri.Builder builder = new Uri.Builder(); builder.encodedAuthority(uri.getAuthority()); builder.encodedPath(uri.getPath()); builder.encodedQuery(uri.getQuery()); // no "appendPath", it messes up the thing for (int i = 0; i < newSegments.length; i++) { newSegments[i] = segments.get(i); } builder.encodedPath(TextUtils.join("/", newSegments)); return builder.build(); }
/** * Builds the Uri by converting into a android.net.Uri object. * * @return a new android.net.Uri defined by what was given to the builder. */ public Uri build() { return new Uri.Builder().scheme(this.scheme) .authority(this.host) .path(this.path == null ? "" : this.path.toString()) .encodedQuery(TextUtils.join("&", this.queryParameters)) .build(); }