Merge "Fix bug in IntentForwarderActivity" into rvc-dev am: d4d2427c01 am: 41aa6e32ae
Change-Id: I642874aee906f2bee58a7ef1754d586b483a291a
This commit is contained in:
@@ -79,6 +79,12 @@ public class IntentForwarderActivity extends Activity {
|
||||
private MetricsLogger mMetricsLogger;
|
||||
protected ExecutorService mExecutorService;
|
||||
|
||||
@Override
|
||||
protected void onDestroy() {
|
||||
super.onDestroy();
|
||||
mExecutorService.shutdown();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
@@ -121,16 +127,19 @@ public class IntentForwarderActivity extends Activity {
|
||||
final int callingUserId = getUserId();
|
||||
final Intent newIntent = canForward(intentReceived, getUserId(), targetUserId,
|
||||
mInjector.getIPackageManager(), getContentResolver());
|
||||
if (newIntent != null) {
|
||||
newIntent.prepareToLeaveUser(callingUserId);
|
||||
maybeShowDisclosureAsync(intentReceived, newIntent, targetUserId, userMessageId);
|
||||
CompletableFuture.runAsync(() -> startActivityAsCaller(
|
||||
newIntent, targetUserId), mExecutorService);
|
||||
} else {
|
||||
|
||||
if (newIntent == null) {
|
||||
Slog.wtf(TAG, "the intent: " + intentReceived + " cannot be forwarded from user "
|
||||
+ callingUserId + " to user " + targetUserId);
|
||||
finish();
|
||||
return;
|
||||
}
|
||||
finish();
|
||||
|
||||
newIntent.prepareToLeaveUser(callingUserId);
|
||||
maybeShowDisclosureAsync(intentReceived, newIntent, targetUserId, userMessageId);
|
||||
CompletableFuture.runAsync(() ->
|
||||
startActivityAsCaller(newIntent, targetUserId), mExecutorService)
|
||||
.thenAcceptAsync(result -> finish(), getApplicationContext().getMainExecutor());
|
||||
}
|
||||
|
||||
private void maybeShowDisclosureAsync(
|
||||
@@ -166,8 +175,6 @@ public class IntentForwarderActivity extends Activity {
|
||||
Slog.wtf(TAG, "Unable to launch as UID " + launchedFromUid + " package "
|
||||
+ launchedFromPackage + ", while running in "
|
||||
+ ActivityThread.currentProcessName(), e);
|
||||
} finally {
|
||||
mExecutorService.shutdown();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -5099,7 +5099,7 @@
|
||||
</activity>
|
||||
<activity android:name="com.android.internal.app.IntentForwarderActivity"
|
||||
android:finishOnCloseSystemDialogs="true"
|
||||
android:theme="@style/Theme.NoDisplay"
|
||||
android:theme="@style/Theme.Translucent.NoTitleBar"
|
||||
android:excludeFromRecents="true"
|
||||
android:label="@string/user_owner_label"
|
||||
android:exported="true"
|
||||
|
||||
Reference in New Issue
Block a user