Only send EXTRA_STACK for private intent.

Since it's a private Parcelable class, we can't send it to other
third-party apps, since they won't know how to unpack it.

Bug: 22255387
Change-Id: Ie2ea6cf72b733bd122eb3581a5df295cec608425
This commit is contained in:
Jeff Sharkey
2015-07-15 09:13:14 -07:00
parent 983294596e
commit 04ec6f4f09

View File

@@ -720,14 +720,15 @@ public class DocumentsActivity extends BaseActivity {
if (mState.action == ACTION_GET_CONTENT) {
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
} else if (mState.action == ACTION_OPEN_TREE ||
mState.action == ACTION_OPEN_COPY_DESTINATION) {
} else if (mState.action == ACTION_OPEN_TREE) {
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION
| Intent.FLAG_GRANT_WRITE_URI_PERMISSION
| Intent.FLAG_GRANT_PERSISTABLE_URI_PERMISSION
| Intent.FLAG_GRANT_PREFIX_URI_PERMISSION);
// TODO: Move passing the stack to the separate ACTION_COPY action once it's implemented.
intent.putExtra(CopyService.EXTRA_STACK, (Parcelable)mState.stack);
} else if (mState.action == ACTION_OPEN_COPY_DESTINATION) {
// Picking a copy destination is only used internally by us, so we
// don't need to extend permissions to the caller.
intent.putExtra(CopyService.EXTRA_STACK, (Parcelable) mState.stack);
} else {
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION
| Intent.FLAG_GRANT_WRITE_URI_PERMISSION