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

Commit 5dbffb23 authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Launch card intent from qs tile when flag is enabled" into main

parents e78f35a1 1aaeb38e
Loading
Loading
Loading
Loading
+33 −0
Original line number Diff line number Diff line
@@ -46,6 +46,9 @@ import android.graphics.drawable.Drawable;
import android.graphics.drawable.Icon;
import android.os.Handler;
import android.os.UserHandle;
import android.platform.test.annotations.DisableFlags;
import android.platform.test.annotations.EnableFlags;
import android.service.quickaccesswallet.Flags;
import android.service.quickaccesswallet.GetWalletCardsError;
import android.service.quickaccesswallet.GetWalletCardsResponse;
import android.service.quickaccesswallet.QuickAccessWalletClient;
@@ -221,6 +224,7 @@ public class QuickAccessWalletTileTest extends SysuiTestCase {
    }

    @Test
    @DisableFlags({Flags.FLAG_LAUNCH_SELECTED_CARD_FROM_QS_TILE})
    public void testHandleClick_startQuickAccessUiIntent_noCard() {
        setUpWalletCard(/* hasCard= */ false);

@@ -234,6 +238,7 @@ public class QuickAccessWalletTileTest extends SysuiTestCase {
    }

    @Test
    @DisableFlags({Flags.FLAG_LAUNCH_SELECTED_CARD_FROM_QS_TILE})
    public void testHandleClick_startQuickAccessUiIntent_hasCard() {
        setUpWalletCard(/* hasCard= */ true);

@@ -246,6 +251,34 @@ public class QuickAccessWalletTileTest extends SysuiTestCase {
                /* hasCard= */ eq(true));
    }

    @Test
    @EnableFlags({Flags.FLAG_LAUNCH_SELECTED_CARD_FROM_QS_TILE})
    public void testHandleClick_startCardIntent_noCard() {
        setUpWalletCard(/* hasCard= */ false);

        mTile.handleClick(/* view= */ null);
        mTestableLooper.processAllMessages();

        verify(mController).startQuickAccessUiIntent(
                eq(mActivityStarter),
                eq(null),
                /* hasCard= */ eq(false));
    }

    @Test
    @EnableFlags({Flags.FLAG_LAUNCH_SELECTED_CARD_FROM_QS_TILE})
    public void testHandleClick_startCardIntent_hasCard() {
        setUpWalletCard(/* hasCard= */ true);

        mTile.handleClick(null /* view */);
        mTestableLooper.processAllMessages();

        verify(mController).startWalletCardPendingIntent(
                any(),
                eq(mActivityStarter),
                eq(null));
    }

    @Test
    public void testHandleUpdateState_updateLabelAndIcon() {
        QSTile.State state = new QSTile.State();
+10 −2
Original line number Diff line number Diff line
@@ -142,8 +142,16 @@ public class QuickAccessWalletTile extends QSTileImpl<QSTile.State> {
                        InteractionJankMonitor.CUJ_SHADE_APP_LAUNCH_FROM_QS_TILE);

        mUiHandler.post(
                () -> mController.startQuickAccessUiIntent(
                        mActivityStarter, animationController, mSelectedCard != null));
                () -> {
                    if (android.service.quickaccesswallet.Flags.launchSelectedCardFromQsTile()
                            && mSelectedCard != null) {
                        mController.startWalletCardPendingIntent(
                                mSelectedCard, mActivityStarter, animationController);
                    } else {
                        mController.startQuickAccessUiIntent(
                                mActivityStarter, animationController, mSelectedCard != null);
                    }
                });
    }

    @Override
+18 −0
Original line number Diff line number Diff line
@@ -32,6 +32,7 @@ import android.provider.Settings;
import android.service.quickaccesswallet.GetWalletCardsRequest;
import android.service.quickaccesswallet.QuickAccessWalletClient;
import android.service.quickaccesswallet.QuickAccessWalletClientImpl;
import android.service.quickaccesswallet.WalletCard;
import android.util.Log;

import com.android.systemui.animation.ActivityTransitionAnimator;
@@ -268,6 +269,23 @@ public class QuickAccessWalletController {
                });
    }

    /**
     * Starts the {@link android.app.PendingIntent} for a {@link WalletCard}.
     *
     * This should be used to open a selected card from the QuickAccessWallet UI or
     * the settings tile.
     *
     * @param activityStarter an {@link ActivityStarter} to launch the Intent or PendingIntent.
     * @param animationController an {@link ActivityTransitionAnimator.Controller} to provide a
     *                            smooth animation for the activity launch.
     */
    public void startWalletCardPendingIntent(WalletCard card,
            ActivityStarter activityStarter,
            ActivityTransitionAnimator.Controller animationController) {
        activityStarter.postStartActivityDismissingKeyguard(
                card.getPendingIntent(), animationController);
    }

    private Intent getSysUiWalletIntent() {
        return new Intent(mContext, WalletActivity.class)
                .setAction(Intent.ACTION_VIEW);
+1 −0
Original line number Diff line number Diff line
@@ -118,6 +118,7 @@ public abstract class SysuiTestCase {
                    android.net.platform.flags.Flags.class,
                    android.os.Flags.class,
                    android.service.controls.flags.Flags.class,
                    android.service.quickaccesswallet.Flags.class,
                    com.android.internal.telephony.flags.Flags.class,
                    com.android.server.notification.Flags.class,
                    com.android.systemui.Flags.class);