blob: e178c631808b6ae94014cffddbeadffd2d0e6ff0 [file] [log] [blame]
package com.android.documentsui;
import static com.android.documentsui.base.DocumentInfo.getCursorString;
import android.database.Cursor;
import android.net.Uri;
import android.provider.DocumentsContract;
import android.util.Log;
import com.android.documentsui.base.DocumentInfo;
import com.android.documentsui.roots.RootCursorWrapper;
import java.util.ArrayList;
import java.util.List;
public class ModelId {
private final static String TAG = "ModelId";
public static final String build(Uri uri) {
String documentId;
try {
documentId = DocumentsContract.getDocumentId(uri);
} catch (IllegalArgumentException e) {
Log.e(TAG, "Failed to get document id.", e);
return null;
}
String authority;
authority = uri.getAuthority();
return ModelId.build(authority, documentId);
}
public static final String build(DocumentInfo docInfo) {
if (docInfo == null) {
return null;
}
return ModelId.build(docInfo.authority, docInfo.documentId);
}
public static final String build(Cursor cursor) {
if (cursor == null) {
return null;
}
return ModelId.build(getCursorString(cursor, RootCursorWrapper.COLUMN_AUTHORITY),
getCursorString(cursor, DocumentsContract.Document.COLUMN_DOCUMENT_ID));
}
public static final ArrayList<String> build(ArrayList<Uri> uris) {
if (uris == null || uris.isEmpty()) {
return null;
}
ArrayList<String> ids = new ArrayList<>();
String id;
for (Uri uri : uris) {
id = ModelId.build(uri);
if (id != null) {
ids.add(id);
}
}
return ids;
}
public static final String build(String authority, String docId) {
if (authority == null || authority.isEmpty() || docId == null || docId.isEmpty()) {
return null;
}
return authority + "|" + docId;
}
}