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

Commit ba131a9c authored by Silin Huang's avatar Silin Huang Committed by Automerger Merge Worker
Browse files

Merge "Wallet screen UI Polish:" into sc-dev am: bcb0c0f8

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/15027380

Change-Id: I8ecee992a58fb526c0d7e4a436a569486c560e4d
parents 5c2641a6 bcb0c0f8
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -883,5 +883,6 @@

    <style name="Wallet.Theme" parent="@android:style/Theme.DeviceDefault">
      <item name="android:colorBackground">@android:color/system_neutral1_900</item>
      <item name="android:itemBackground">@android:color/system_neutral1_800</item>
    </style>
</resources>
+18 −18
Original line number Diff line number Diff line
@@ -104,15 +104,14 @@ public class WalletView extends FrameLayout implements WalletCardCarousel.OnCard
            float percentDistanceFromCenter) {
        CharSequence centerCardText = getLabelText(centerCard);
        Drawable centerCardIcon = getHeaderIcon(mContext, centerCard);
        if (!TextUtils.equals(mCenterCardText, centerCardText)) {
            mCenterCardText = centerCardText;
            mCardLabel.setText(centerCardText);
            mIcon.setImageDrawable(centerCardIcon);
        }
        renderActionButton(centerCard, mIsDeviceLocked, mIsUdfpsEnabled);
        if (TextUtils.equals(centerCardText, getLabelText(nextCard))) {
        if (centerCard.isUiEquivalent(nextCard)) {
            mCardLabel.setAlpha(1f);
            mIcon.setAlpha(1f);
            mActionButton.setAlpha(1f);
        } else {
            mCardLabel.setText(centerCardText);
            mIcon.setImageDrawable(centerCardIcon);
            mCardLabel.setAlpha(percentDistanceFromCenter);
            mIcon.setAlpha(percentDistanceFromCenter);
            mActionButton.setAlpha(percentDistanceFromCenter);
@@ -141,6 +140,7 @@ public class WalletView extends FrameLayout implements WalletCardCarousel.OnCard
        mErrorView.setVisibility(GONE);
        mEmptyStateView.setVisibility(GONE);
        mIcon.setImageDrawable(getHeaderIcon(mContext, data.get(selectedIndex)));
        mCardLabel.setText(getLabelText(data.get(selectedIndex)));
        renderActionButton(data.get(selectedIndex), isDeviceLocked, mIsUdfpsEnabled);
        if (shouldAnimate) {
            animateViewsShown(mIcon, mCardLabel, mActionButton);
@@ -248,20 +248,20 @@ public class WalletView extends FrameLayout implements WalletCardCarousel.OnCard
    private void renderActionButton(
            WalletCardViewInfo walletCard, boolean isDeviceLocked, boolean isUdfpsEnabled) {
        CharSequence actionButtonText = getActionButtonText(walletCard);
        if (!isUdfpsEnabled && isDeviceLocked) {
        if (!isUdfpsEnabled && actionButtonText != null) {
            mActionButton.setVisibility(VISIBLE);
            mActionButton.setText(R.string.wallet_action_button_label_unlock);
            mActionButton.setOnClickListener(mDeviceLockedActionOnClickListener);
        } else if (!isDeviceLocked && actionButtonText != null) {
            mActionButton.setText(actionButtonText);
            mActionButton.setVisibility(VISIBLE);
            mActionButton.setOnClickListener(v -> {
            mActionButton.setOnClickListener(
                    isDeviceLocked
                            ? mDeviceLockedActionOnClickListener
                            : v -> {
                        try {
                            walletCard.getPendingIntent().send();
                        } catch (PendingIntent.CanceledException e) {
                    Log.w(TAG, "Error sending pending intent for wallet card");
                            Log.w(TAG, "Error sending pending intent for wallet card.");
                        }
                    }
            });
            );
        } else {
            mActionButton.setVisibility(GONE);
        }
+10 −2
Original line number Diff line number Diff line
@@ -67,7 +67,6 @@ import java.util.Collections;
@SmallTest
public class WalletScreenControllerTest extends SysuiTestCase {

    private static final int MAX_CARDS = 10;
    private static final int CARD_CAROUSEL_WIDTH = 10;
    private static final String CARD_ID_1 = "card_id_1";
    private static final String CARD_ID_2 = "card_id_2";
@@ -158,7 +157,7 @@ public class WalletScreenControllerTest extends SysuiTestCase {
        when(mKeyguardStateController.isUnlocked()).thenReturn(false);
        GetWalletCardsResponse response =
                new GetWalletCardsResponse(
                        Collections.singletonList(createWalletCard(mContext)), 0);
                        Collections.singletonList(createLockedWalletCard(mContext)), 0);

        mController.queryWalletCards();
        mTestableLooper.processAllMessages();
@@ -406,6 +405,15 @@ public class WalletScreenControllerTest extends SysuiTestCase {
                .build();
    }

    private WalletCard createLockedWalletCard(Context context) {
        PendingIntent pendingIntent =
                PendingIntent.getActivity(context, 0, mWalletIntent, PendingIntent.FLAG_IMMUTABLE);
        return new WalletCard.Builder(CARD_ID_2, createIcon(), "•••• 5679", pendingIntent)
                .setCardIcon(createIcon())
                .setCardLabel("Locked\nUnlock to pay")
                .build();
    }

    private WalletCard createWalletCard(Context context) {
        PendingIntent pendingIntent =
                PendingIntent.getActivity(context, 0, mWalletIntent, PendingIntent.FLAG_IMMUTABLE);