Fix LaunchAnyWheere via an Evil Card in QuickAccessWallet.

Use pendingIntent.send() instead.

Bug: 202506934
Test: manual
Change-Id: Ia48edf1e14883b068fd34048f660d3c2f1f744e2
This commit is contained in:
Silin Huang
2022-01-04 07:29:46 -08:00
parent aa2c404692
commit 57b7e5f8b4
2 changed files with 7 additions and 7 deletions

View File

@@ -223,8 +223,7 @@ public class WalletScreenController implements
}
mUiEventLogger.log(WalletUiEvent.QAW_CLICK_CARD);
mActivityStarter.startActivity(
((QAWalletCardViewInfo) cardInfo).mWalletCard.getPendingIntent().getIntent(), true);
mActivityStarter.startPendingIntentDismissingKeyguard(cardInfo.getPendingIntent());
}
@Override

View File

@@ -21,7 +21,6 @@ import static android.view.View.VISIBLE;
import static org.junit.Assert.assertEquals;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
@@ -96,7 +95,7 @@ public class WalletScreenControllerTest extends SysuiTestCase {
@Mock
UiEventLogger mUiEventLogger;
@Captor
ArgumentCaptor<Intent> mIntentCaptor;
ArgumentCaptor<PendingIntent> mIntentCaptor;
@Captor
ArgumentCaptor<QuickAccessWalletClient.OnWalletCardsRetrievedCallback> mCallbackCaptor;
private WalletScreenController mController;
@@ -374,10 +373,12 @@ public class WalletScreenControllerTest extends SysuiTestCase {
mController.onCardClicked(walletCardViewInfo);
verify(mActivityStarter).startActivity(mIntentCaptor.capture(), eq(true));
verify(mActivityStarter).startPendingIntentDismissingKeyguard(mIntentCaptor.capture());
assertEquals(mWalletIntent.getAction(), mIntentCaptor.getValue().getAction());
assertEquals(mWalletIntent.getComponent(), mIntentCaptor.getValue().getComponent());
Intent actualIntent = mIntentCaptor.getValue().getIntent();
assertEquals(mWalletIntent.getAction(), actualIntent.getAction());
assertEquals(mWalletIntent.getComponent(), actualIntent.getComponent());
verify(mUiEventLogger, times(1)).log(WalletUiEvent.QAW_CLICK_CARD);
}