Merge "Fixes type resolving in ActivityManagerShellCommand" into udc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
a129baf1f7
@@ -839,6 +839,8 @@
|
|||||||
<uses-permission android:name="android.permission.LAUNCH_CREDENTIAL_SELECTOR" />
|
<uses-permission android:name="android.permission.LAUNCH_CREDENTIAL_SELECTOR" />
|
||||||
<!-- Permission required for CTS test IntentRedirectionTest -->
|
<!-- Permission required for CTS test IntentRedirectionTest -->
|
||||||
<uses-permission android:name="android.permission.QUERY_CLONED_APPS" />
|
<uses-permission android:name="android.permission.QUERY_CLONED_APPS" />
|
||||||
|
<!-- Permission required for accessing all content provider mime types -->
|
||||||
|
<uses-permission android:name="android.permission.GET_ANY_PROVIDER_TYPE" />
|
||||||
|
|
||||||
<application
|
<application
|
||||||
android:label="@string/app_label"
|
android:label="@string/app_label"
|
||||||
|
|||||||
@@ -149,7 +149,6 @@ import java.util.Locale;
|
|||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.concurrent.CountDownLatch;
|
import java.util.concurrent.CountDownLatch;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
import java.util.concurrent.atomic.AtomicReference;
|
|
||||||
|
|
||||||
import javax.microedition.khronos.egl.EGL10;
|
import javax.microedition.khronos.egl.EGL10;
|
||||||
import javax.microedition.khronos.egl.EGLConfig;
|
import javax.microedition.khronos.egl.EGLConfig;
|
||||||
@@ -609,15 +608,7 @@ final class ActivityManagerShellCommand extends ShellCommand {
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
AtomicReference<String> mimeType = new AtomicReference<>(intent.getType());
|
final String mimeType = intent.resolveType(mInternal.mContext);
|
||||||
|
|
||||||
if (mimeType.get() == null && intent.getData() != null
|
|
||||||
&& "content".equals(intent.getData().getScheme())) {
|
|
||||||
mInterface.getMimeTypeFilterAsync(intent.getData(), mUserId,
|
|
||||||
new RemoteCallback(result -> {
|
|
||||||
mimeType.set(result.getPairValue());
|
|
||||||
}));
|
|
||||||
}
|
|
||||||
|
|
||||||
do {
|
do {
|
||||||
if (mStopOption) {
|
if (mStopOption) {
|
||||||
@@ -629,7 +620,7 @@ final class ActivityManagerShellCommand extends ShellCommand {
|
|||||||
int userIdForQuery = mInternal.mUserController.handleIncomingUser(
|
int userIdForQuery = mInternal.mUserController.handleIncomingUser(
|
||||||
Binder.getCallingPid(), Binder.getCallingUid(), mUserId, false,
|
Binder.getCallingPid(), Binder.getCallingUid(), mUserId, false,
|
||||||
ALLOW_NON_FULL, "ActivityManagerShellCommand", null);
|
ALLOW_NON_FULL, "ActivityManagerShellCommand", null);
|
||||||
List<ResolveInfo> activities = mPm.queryIntentActivities(intent, mimeType.get(),
|
List<ResolveInfo> activities = mPm.queryIntentActivities(intent, mimeType,
|
||||||
0, userIdForQuery).getList();
|
0, userIdForQuery).getList();
|
||||||
if (activities == null || activities.size() <= 0) {
|
if (activities == null || activities.size() <= 0) {
|
||||||
getErrPrintWriter().println("Error: Intent does not match any activities: "
|
getErrPrintWriter().println("Error: Intent does not match any activities: "
|
||||||
@@ -726,12 +717,12 @@ final class ActivityManagerShellCommand extends ShellCommand {
|
|||||||
}
|
}
|
||||||
if (mWaitOption) {
|
if (mWaitOption) {
|
||||||
result = mInternal.startActivityAndWait(null, SHELL_PACKAGE_NAME, null, intent,
|
result = mInternal.startActivityAndWait(null, SHELL_PACKAGE_NAME, null, intent,
|
||||||
mimeType.get(), null, null, 0, mStartFlags, profilerInfo,
|
mimeType, null, null, 0, mStartFlags, profilerInfo,
|
||||||
options != null ? options.toBundle() : null, mUserId);
|
options != null ? options.toBundle() : null, mUserId);
|
||||||
res = result.result;
|
res = result.result;
|
||||||
} else {
|
} else {
|
||||||
res = mInternal.startActivityAsUserWithFeature(null, SHELL_PACKAGE_NAME, null,
|
res = mInternal.startActivityAsUserWithFeature(null, SHELL_PACKAGE_NAME, null,
|
||||||
intent, mimeType.get(), null, null, 0, mStartFlags, profilerInfo,
|
intent, mimeType, null, null, 0, mStartFlags, profilerInfo,
|
||||||
options != null ? options.toBundle() : null, mUserId);
|
options != null ? options.toBundle() : null, mUserId);
|
||||||
}
|
}
|
||||||
final long endTime = SystemClock.uptimeMillis();
|
final long endTime = SystemClock.uptimeMillis();
|
||||||
|
|||||||
Reference in New Issue
Block a user