use of com.android.documentsui.model.DocumentInfo in project platform_frameworks_base by android.
the class DirectoryFragment method handleViewItem.
private boolean handleViewItem(String id) {
final Cursor cursor = mModel.getItem(id);
if (cursor == null) {
Log.w(TAG, "Can't view item. Can't obtain cursor for modeId" + id);
return false;
}
final String docMimeType = getCursorString(cursor, Document.COLUMN_MIME_TYPE);
final int docFlags = getCursorInt(cursor, Document.COLUMN_FLAGS);
if (mTuner.isDocumentEnabled(docMimeType, docFlags)) {
final DocumentInfo doc = DocumentInfo.fromDirectoryCursor(cursor);
((BaseActivity) getActivity()).onDocumentPicked(doc, mModel);
mSelectionManager.clearSelection();
return true;
}
return false;
}
use of com.android.documentsui.model.DocumentInfo in project platform_frameworks_base by android.
the class OperationDialogFragment method onCreateDialog.
@Override
public Dialog onCreateDialog(Bundle inState) {
super.onCreate(inState);
@DialogType final int dialogType = getArguments().getInt(FileOperationService.EXTRA_DIALOG_TYPE);
@OpType final int operationType = getArguments().getInt(FileOperationService.EXTRA_OPERATION);
final ArrayList<DocumentInfo> srcList = getArguments().getParcelableArrayList(FileOperationService.EXTRA_SRC_LIST);
final AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
String messageFormat;
switch(dialogType) {
case DIALOG_TYPE_CONVERTED:
messageFormat = getString(R.string.copy_converted_warning_content);
break;
case DIALOG_TYPE_FAILURE:
switch(operationType) {
case FileOperationService.OPERATION_COPY:
messageFormat = getString(R.string.copy_failure_alert_content);
break;
case FileOperationService.OPERATION_DELETE:
messageFormat = getString(R.string.delete_failure_alert_content);
break;
case FileOperationService.OPERATION_MOVE:
messageFormat = getString(R.string.move_failure_alert_content);
break;
default:
throw new UnsupportedOperationException();
}
break;
default:
throw new UnsupportedOperationException();
}
final StringBuilder list = new StringBuilder("<p>");
for (DocumentInfo documentInfo : srcList) {
list.append(String.format("• %s<br>", Html.escapeHtml(documentInfo.displayName)));
}
list.append("</p>");
builder.setMessage(Html.fromHtml(String.format(messageFormat, list.toString())));
builder.setPositiveButton(R.string.close, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
dialog.dismiss();
}
});
return builder.create();
}
use of com.android.documentsui.model.DocumentInfo in project platform_frameworks_base by android.
the class CreateDirectoryFragment method createDirectory.
private void createDirectory(String name) {
final BaseActivity activity = (BaseActivity) getActivity();
final DocumentInfo cwd = activity.getCurrentDirectory();
new CreateDirectoryTask(activity, cwd, name).executeOnExecutor(ProviderExecutor.forAuthority(cwd.authority));
}
use of com.android.documentsui.model.DocumentInfo in project platform_frameworks_base by android.
the class DocumentClipper method getClipDataForDocuments.
/**
* Returns ClipData representing the list of docs, or null if docs is empty,
* or docs cannot be converted.
*/
@Nullable
public ClipData getClipDataForDocuments(List<DocumentInfo> docs) {
final ContentResolver resolver = mContext.getContentResolver();
final String[] mimeTypes = getMimeTypes(resolver, docs);
ClipData clipData = null;
for (DocumentInfo doc : docs) {
if (clipData == null) {
// TODO: figure out what this string should be.
// Currently it is not displayed anywhere in the UI, but this might change.
final String label = "";
clipData = new ClipData(label, mimeTypes, new ClipData.Item(doc.derivedUri));
} else {
// TODO: update list of mime types in ClipData.
clipData.addItem(new ClipData.Item(doc.derivedUri));
}
}
return clipData;
}
use of com.android.documentsui.model.DocumentInfo in project platform_frameworks_base by android.
the class DocumentClipper method getMimeTypes.
private static String[] getMimeTypes(ContentResolver resolver, List<DocumentInfo> docs) {
final HashSet<String> mimeTypes = new HashSet<>();
for (DocumentInfo doc : docs) {
assert (doc != null);
assert (doc.derivedUri != null);
final Uri uri = doc.derivedUri;
if ("content".equals(uri.getScheme())) {
mimeTypes.add(resolver.getType(uri));
final String[] streamTypes = resolver.getStreamTypes(uri, "*/*");
if (streamTypes != null) {
mimeTypes.addAll(Arrays.asList(streamTypes));
}
}
}
return mimeTypes.toArray(new String[0]);
}
Aggregations