Loading core/java/com/android/internal/app/ChooserActivity.java +43 −32 Original line number Diff line number Diff line Loading @@ -623,7 +623,14 @@ public class ChooserActivity extends ResolverActivity { private FileInfo extractFileInfo(Uri uri, ContentResolver resolver) { String fileName = null; boolean hasThumbnail = false; Cursor cursor = resolver.query(uri, null, null, null, null); Cursor cursor = null; try { cursor = resolver.query(uri, null, null, null, null); } catch (SecurityException e) { Log.w(TAG, "Error loading file preview", e); } if (cursor != null && cursor.getCount() > 0) { int nameIndex = cursor.getColumnIndex(OpenableColumns.DISPLAY_NAME); int flagsIndex = cursor.getColumnIndex(DocumentsContract.Document.COLUMN_FLAGS); Loading Loading @@ -655,46 +662,50 @@ public class ChooserActivity extends ResolverActivity { // due to permissions issues findViewById(R.id.file_copy_button).setVisibility(View.GONE); try { ContentResolver resolver = getContentResolver(); TextView fileNameView = findViewById(R.id.content_preview_filename); String action = targetIntent.getAction(); if (Intent.ACTION_SEND.equals(action)) { Uri uri = targetIntent.getParcelableExtra(Intent.EXTRA_STREAM); FileInfo fileInfo = extractFileInfo(uri, resolver); fileNameView.setText(fileInfo.name); if (fileInfo.hasThumbnail) { loadUriIntoView(R.id.content_preview_file_thumbnail, uri); } else { ImageView fileIconView = findViewById(R.id.content_preview_file_icon); fileIconView.setVisibility(View.VISIBLE); fileIconView.setImageResource(R.drawable.ic_doc_generic); } loadFileUriIntoView(uri); } else { List<Uri> uris = targetIntent.getParcelableArrayListExtra(Intent.EXTRA_STREAM); if (uris.size() == 0) { int uriCount = uris.size(); if (uriCount == 0) { contentPreviewLayout.setVisibility(View.GONE); Log.i(TAG, "Appears to be no uris available in EXTRA_STREAM, removing preview " + "area"); "Appears to be no uris available in EXTRA_STREAM, removing " + "preview area"); return; } FileInfo fileInfo = extractFileInfo(uris.get(0), resolver); int remFileCount = uris.size() - 1; } else if (uriCount == 1) { loadFileUriIntoView(uris.get(0)); } else { FileInfo fileInfo = extractFileInfo(uris.get(0), getContentResolver()); int remUriCount = uriCount - 1; String fileName = getResources().getQuantityString(R.plurals.file_count, remFileCount, fileInfo.name, remFileCount); remUriCount, fileInfo.name, remUriCount); TextView fileNameView = findViewById(R.id.content_preview_filename); fileNameView.setText(fileName); ImageView fileIconView = findViewById(R.id.content_preview_file_icon); fileIconView.setVisibility(View.VISIBLE); fileIconView.setImageResource(R.drawable.ic_file_copy); } } catch (SecurityException e) { Log.w(TAG, "Error loading file preview", e); contentPreviewLayout.setVisibility(View.GONE); } } private void loadFileUriIntoView(Uri uri) { FileInfo fileInfo = extractFileInfo(uri, getContentResolver()); TextView fileNameView = findViewById(R.id.content_preview_filename); fileNameView.setText(fileInfo.name); if (fileInfo.hasThumbnail) { loadUriIntoView(R.id.content_preview_file_thumbnail, uri); } else { ImageView fileIconView = findViewById(R.id.content_preview_file_icon); fileIconView.setVisibility(View.VISIBLE); fileIconView.setImageResource(R.drawable.ic_doc_generic); } } Loading Loading
core/java/com/android/internal/app/ChooserActivity.java +43 −32 Original line number Diff line number Diff line Loading @@ -623,7 +623,14 @@ public class ChooserActivity extends ResolverActivity { private FileInfo extractFileInfo(Uri uri, ContentResolver resolver) { String fileName = null; boolean hasThumbnail = false; Cursor cursor = resolver.query(uri, null, null, null, null); Cursor cursor = null; try { cursor = resolver.query(uri, null, null, null, null); } catch (SecurityException e) { Log.w(TAG, "Error loading file preview", e); } if (cursor != null && cursor.getCount() > 0) { int nameIndex = cursor.getColumnIndex(OpenableColumns.DISPLAY_NAME); int flagsIndex = cursor.getColumnIndex(DocumentsContract.Document.COLUMN_FLAGS); Loading Loading @@ -655,46 +662,50 @@ public class ChooserActivity extends ResolverActivity { // due to permissions issues findViewById(R.id.file_copy_button).setVisibility(View.GONE); try { ContentResolver resolver = getContentResolver(); TextView fileNameView = findViewById(R.id.content_preview_filename); String action = targetIntent.getAction(); if (Intent.ACTION_SEND.equals(action)) { Uri uri = targetIntent.getParcelableExtra(Intent.EXTRA_STREAM); FileInfo fileInfo = extractFileInfo(uri, resolver); fileNameView.setText(fileInfo.name); if (fileInfo.hasThumbnail) { loadUriIntoView(R.id.content_preview_file_thumbnail, uri); } else { ImageView fileIconView = findViewById(R.id.content_preview_file_icon); fileIconView.setVisibility(View.VISIBLE); fileIconView.setImageResource(R.drawable.ic_doc_generic); } loadFileUriIntoView(uri); } else { List<Uri> uris = targetIntent.getParcelableArrayListExtra(Intent.EXTRA_STREAM); if (uris.size() == 0) { int uriCount = uris.size(); if (uriCount == 0) { contentPreviewLayout.setVisibility(View.GONE); Log.i(TAG, "Appears to be no uris available in EXTRA_STREAM, removing preview " + "area"); "Appears to be no uris available in EXTRA_STREAM, removing " + "preview area"); return; } FileInfo fileInfo = extractFileInfo(uris.get(0), resolver); int remFileCount = uris.size() - 1; } else if (uriCount == 1) { loadFileUriIntoView(uris.get(0)); } else { FileInfo fileInfo = extractFileInfo(uris.get(0), getContentResolver()); int remUriCount = uriCount - 1; String fileName = getResources().getQuantityString(R.plurals.file_count, remFileCount, fileInfo.name, remFileCount); remUriCount, fileInfo.name, remUriCount); TextView fileNameView = findViewById(R.id.content_preview_filename); fileNameView.setText(fileName); ImageView fileIconView = findViewById(R.id.content_preview_file_icon); fileIconView.setVisibility(View.VISIBLE); fileIconView.setImageResource(R.drawable.ic_file_copy); } } catch (SecurityException e) { Log.w(TAG, "Error loading file preview", e); contentPreviewLayout.setVisibility(View.GONE); } } private void loadFileUriIntoView(Uri uri) { FileInfo fileInfo = extractFileInfo(uri, getContentResolver()); TextView fileNameView = findViewById(R.id.content_preview_filename); fileNameView.setText(fileInfo.name); if (fileInfo.hasThumbnail) { loadUriIntoView(R.id.content_preview_file_thumbnail, uri); } else { ImageView fileIconView = findViewById(R.id.content_preview_file_icon); fileIconView.setVisibility(View.VISIBLE); fileIconView.setImageResource(R.drawable.ic_doc_generic); } } Loading