Merge "Support overriding calling package in Documents." into klp-dev

This commit is contained in:
Jeff Sharkey
2013-10-09 20:56:26 +00:00
committed by Android (Google) Code Review
2 changed files with 11 additions and 3 deletions

View File

@ -73,6 +73,9 @@ public final class DocumentsContract {
*/ */
public static final String PROVIDER_INTERFACE = "android.content.action.DOCUMENTS_PROVIDER"; public static final String PROVIDER_INTERFACE = "android.content.action.DOCUMENTS_PROVIDER";
/** {@hide} */
public static final String EXTRA_PACKAGE_NAME = "android.content.extra.PACKAGE_NAME";
/** {@hide} */ /** {@hide} */
public static final String ACTION_MANAGE_ROOT = "android.provider.action.MANAGE_ROOT"; public static final String ACTION_MANAGE_ROOT = "android.provider.action.MANAGE_ROOT";
/** {@hide} */ /** {@hide} */

View File

@ -292,7 +292,7 @@ public class DocumentsActivity extends Activity {
@Override @Override
protected Void doInBackground(Void... params) { protected Void doInBackground(Void... params) {
// Restore last stack for calling package // Restore last stack for calling package
final String packageName = getCallingPackage(); final String packageName = getCallingPackageMaybeExtra();
final Cursor cursor = getContentResolver() final Cursor cursor = getContentResolver()
.query(RecentsProvider.buildResume(packageName), null, null, null, null); .query(RecentsProvider.buildResume(packageName), null, null, null, null);
try { try {
@ -783,6 +783,11 @@ public class DocumentsActivity extends Activity {
return mState.stack.peek(); return mState.stack.peek();
} }
private String getCallingPackageMaybeExtra() {
final String extra = getIntent().getStringExtra(DocumentsContract.EXTRA_PACKAGE_NAME);
return (extra != null) ? extra : getCallingPackage();
}
public Executor getCurrentExecutor() { public Executor getCurrentExecutor() {
final DocumentInfo cwd = getCurrentDirectory(); final DocumentInfo cwd = getCurrentDirectory();
if (cwd != null && cwd.authority != null) { if (cwd != null && cwd.authority != null) {
@ -921,7 +926,7 @@ public class DocumentsActivity extends Activity {
if (requestCode == CODE_FORWARD && resultCode != RESULT_CANCELED) { if (requestCode == CODE_FORWARD && resultCode != RESULT_CANCELED) {
// Remember that we last picked via external app // Remember that we last picked via external app
final String packageName = getCallingPackage(); final String packageName = getCallingPackageMaybeExtra();
final ContentValues values = new ContentValues(); final ContentValues values = new ContentValues();
values.put(ResumeColumns.EXTERNAL, 1); values.put(ResumeColumns.EXTERNAL, 1);
getContentResolver().insert(RecentsProvider.buildResume(packageName), values); getContentResolver().insert(RecentsProvider.buildResume(packageName), values);
@ -1002,7 +1007,7 @@ public class DocumentsActivity extends Activity {
} }
// Remember location for next app launch // Remember location for next app launch
final String packageName = getCallingPackage(); final String packageName = getCallingPackageMaybeExtra();
values.clear(); values.clear();
values.put(ResumeColumns.STACK, rawStack); values.put(ResumeColumns.STACK, rawStack);
values.put(ResumeColumns.EXTERNAL, 0); values.put(ResumeColumns.EXTERNAL, 0);