summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/SystemUI/res/values/styles.xml1
-rw-r--r--packages/SystemUI/src/com/android/systemui/wallet/ui/WalletView.java36
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/wallet/ui/WalletScreenControllerTest.java12
3 files changed, 29 insertions, 20 deletions
diff --git a/packages/SystemUI/res/values/styles.xml b/packages/SystemUI/res/values/styles.xml
index 97273a88e9c0..7a5a3480d0c5 100644
--- a/packages/SystemUI/res/values/styles.xml
+++ b/packages/SystemUI/res/values/styles.xml
@@ -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>
diff --git a/packages/SystemUI/src/com/android/systemui/wallet/ui/WalletView.java b/packages/SystemUI/src/com/android/systemui/wallet/ui/WalletView.java
index 8412a8ae966e..0c5347724035 100644
--- a/packages/SystemUI/src/com/android/systemui/wallet/ui/WalletView.java
+++ b/packages/SystemUI/src/com/android/systemui/wallet/ui/WalletView.java
@@ -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 -> {
- try {
- walletCard.getPendingIntent().send();
- } catch (PendingIntent.CanceledException e) {
- Log.w(TAG, "Error sending pending intent for wallet card");
- }
- });
+ mActionButton.setOnClickListener(
+ isDeviceLocked
+ ? mDeviceLockedActionOnClickListener
+ : v -> {
+ try {
+ walletCard.getPendingIntent().send();
+ } catch (PendingIntent.CanceledException e) {
+ Log.w(TAG, "Error sending pending intent for wallet card.");
+ }
+ }
+ );
} else {
mActionButton.setVisibility(GONE);
}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/wallet/ui/WalletScreenControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/wallet/ui/WalletScreenControllerTest.java
index e6c740b3a263..30180897f5d7 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/wallet/ui/WalletScreenControllerTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/wallet/ui/WalletScreenControllerTest.java
@@ -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);