DO NOT MERGE: Accurately emulate historic Downloads ACTION_VIEW behavior.

am: 3f5885918b

Change-Id: Ibe8c67367649ecc5a229b86592257b976ba2411d
This commit is contained in:
Steve McKay
2016-09-08 17:31:12 +00:00
committed by android-build-merger
2 changed files with 16 additions and 2 deletions

View File

@@ -341,8 +341,18 @@ public class FilesActivity extends BaseActivity {
// Fall back to traditional VIEW action...
intent = new Intent(Intent.ACTION_VIEW);
intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
intent.setData(doc.derivedUri);
intent.setDataAndType(doc.derivedUri, doc.mimeType);
// Downloads has traditionally added the WRITE permission
// in the TrampolineActivity. Since this behavior is long
// established, we set the same permission for non-managed files
// This ensures consistent behavior between the Downloads root
// and other roots.
int flags = Intent.FLAG_GRANT_READ_URI_PERMISSION;
if (doc.isWriteSupported()) {
flags |= Intent.FLAG_GRANT_WRITE_URI_PERMISSION;
}
intent.setFlags(flags);
if (DEBUG && intent.getClipData() != null) {
Log.d(TAG, "Starting intent w/ clip data: " + intent.getClipData());

View File

@@ -235,6 +235,10 @@ public class DocumentInfo implements Durable, Parcelable {
return (flags & Document.FLAG_DIR_PREFERS_GRID) != 0;
}
public boolean isWriteSupported() {
return (flags & Document.FLAG_SUPPORTS_WRITE) != 0;
}
public boolean isDeleteSupported() {
return (flags & Document.FLAG_SUPPORTS_DELETE) != 0;
}