Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 57b7e5f8 authored by Silin Huang's avatar Silin Huang
Browse files

Fix LaunchAnyWheere via an Evil Card in QuickAccessWallet.

Use pendingIntent.send() instead.

Bug: 202506934
Test: manual
Change-Id: Ia48edf1e14883b068fd34048f660d3c2f1f744e2
parent aa2c4046
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -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
+6 −5
Original line number Diff line number Diff line
@@ -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);
    }