Merge "Polish Wallet empty state view." into sc-dev

This commit is contained in:
Silin Huang
2021-06-07 06:37:08 +00:00
committed by Android (Google) Code Review
11 changed files with 51 additions and 111 deletions

View File

@@ -22,7 +22,7 @@
android:id="@+id/wallet_empty_state" android:id="@+id/wallet_empty_state"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_marginHorizontal="16dp" android:layout_marginHorizontal="48dp"
android:layout_marginTop="48dp" android:layout_marginTop="48dp"
android:background="@drawable/wallet_empty_state_bg" android:background="@drawable/wallet_empty_state_bg"
android:orientation="vertical" android:orientation="vertical"

View File

@@ -54,9 +54,12 @@
android:id="@+id/label" android:id="@+id/label"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
style="@style/Wallet.TextAppearance" android:layout_marginHorizontal="48dp"
android:textColor="?androidprv:attr/textColorPrimary"
android:textAlignment="center"/> android:textAlignment="center"/>
<include layout="@layout/wallet_empty_state"/>
<com.android.systemui.wallet.ui.WalletCardCarousel <com.android.systemui.wallet.ui.WalletCardCarousel
android:id="@+id/card_carousel" android:id="@+id/card_carousel"
android:layout_width="match_parent" android:layout_width="match_parent"
@@ -97,8 +100,6 @@
android:layout_marginVertical="24dp"/> android:layout_marginVertical="24dp"/>
</LinearLayout> </LinearLayout>
<include layout="@layout/wallet_empty_state"/>
<TextView <TextView
android:id="@+id/error_view" android:id="@+id/error_view"
android:layout_width="match_parent" android:layout_width="match_parent"

View File

@@ -1653,6 +1653,8 @@
<!-- Wallet strings --> <!-- Wallet strings -->
<!-- Wallet empty state, title [CHAR LIMIT=32] --> <!-- Wallet empty state, title [CHAR LIMIT=32] -->
<string name="wallet_title">Wallet</string> <string name="wallet_title">Wallet</string>
<!-- Wallet empty state label. [CHAR LIMIT=NONE] -->
<string name="wallet_empty_state_label">Get set up to make faster, more secure purchases with your phone</string>
<!-- Label of the button at the bottom prompting user enter wallet app. [CHAR LIMIT=NONE] --> <!-- Label of the button at the bottom prompting user enter wallet app. [CHAR LIMIT=NONE] -->
<string name="wallet_app_button_label">Show all</string> <string name="wallet_app_button_label">Show all</string>
<!-- Label of the button underneath the card carousel prompting user unlock device. [CHAR LIMIT=NONE] --> <!-- Label of the button underneath the card carousel prompting user unlock device. [CHAR LIMIT=NONE] -->

View File

@@ -56,7 +56,6 @@ import com.android.systemui.wallet.controller.QuickAccessWalletController;
import com.android.systemui.wallet.ui.WalletActivity; import com.android.systemui.wallet.ui.WalletActivity;
import java.util.List; import java.util.List;
import java.util.concurrent.Executor;
import javax.inject.Inject; import javax.inject.Inject;
@@ -71,7 +70,6 @@ public class QuickAccessWalletTile extends QSTileImpl<QSTile.State> {
private final KeyguardStateController mKeyguardStateController; private final KeyguardStateController mKeyguardStateController;
private final PackageManager mPackageManager; private final PackageManager mPackageManager;
private final SecureSettings mSecureSettings; private final SecureSettings mSecureSettings;
private final Executor mExecutor;
private final QuickAccessWalletController mController; private final QuickAccessWalletController mController;
private final FeatureFlags mFeatureFlags; private final FeatureFlags mFeatureFlags;
@@ -91,7 +89,6 @@ public class QuickAccessWalletTile extends QSTileImpl<QSTile.State> {
KeyguardStateController keyguardStateController, KeyguardStateController keyguardStateController,
PackageManager packageManager, PackageManager packageManager,
SecureSettings secureSettings, SecureSettings secureSettings,
@Main Executor executor,
QuickAccessWalletController quickAccessWalletController, QuickAccessWalletController quickAccessWalletController,
FeatureFlags featureFlags) { FeatureFlags featureFlags) {
super(host, backgroundLooper, mainHandler, falsingManager, metricsLogger, super(host, backgroundLooper, mainHandler, falsingManager, metricsLogger,
@@ -100,7 +97,6 @@ public class QuickAccessWalletTile extends QSTileImpl<QSTile.State> {
mKeyguardStateController = keyguardStateController; mKeyguardStateController = keyguardStateController;
mPackageManager = packageManager; mPackageManager = packageManager;
mSecureSettings = secureSettings; mSecureSettings = secureSettings;
mExecutor = executor;
mFeatureFlags = featureFlags; mFeatureFlags = featureFlags;
} }
@@ -118,6 +114,7 @@ public class QuickAccessWalletTile extends QSTileImpl<QSTile.State> {
if (listening) { if (listening) {
mController.setupWalletChangeObservers(mCardRetriever, DEFAULT_PAYMENT_APP_CHANGE); mController.setupWalletChangeObservers(mCardRetriever, DEFAULT_PAYMENT_APP_CHANGE);
if (!mController.getWalletClient().isWalletServiceAvailable()) { if (!mController.getWalletClient().isWalletServiceAvailable()) {
Log.i(TAG, "QAW service is unavailable, recreating the wallet client.");
mController.reCreateWalletClient(); mController.reCreateWalletClient();
} }
mController.queryWalletCards(mCardRetriever); mController.queryWalletCards(mCardRetriever);

View File

@@ -25,7 +25,6 @@ import android.provider.Settings;
import android.service.quickaccesswallet.GetWalletCardsRequest; import android.service.quickaccesswallet.GetWalletCardsRequest;
import android.service.quickaccesswallet.QuickAccessWalletClient; import android.service.quickaccesswallet.QuickAccessWalletClient;
import android.service.quickaccesswallet.QuickAccessWalletClientImpl; import android.service.quickaccesswallet.QuickAccessWalletClientImpl;
import android.util.Log;
import com.android.systemui.R; import com.android.systemui.R;
import com.android.systemui.dagger.SysUISingleton; import com.android.systemui.dagger.SysUISingleton;
@@ -143,10 +142,6 @@ public class QuickAccessWalletController {
*/ */
public void queryWalletCards( public void queryWalletCards(
QuickAccessWalletClient.OnWalletCardsRetrievedCallback cardsRetriever) { QuickAccessWalletClient.OnWalletCardsRetrievedCallback cardsRetriever) {
if (!mWalletEnabled) {
Log.w(TAG, "QuickAccessWallet is unavailable, unable to query cards.");
return;
}
int cardWidth = int cardWidth =
mContext.getResources().getDimensionPixelSize(R.dimen.wallet_tile_card_view_width); mContext.getResources().getDimensionPixelSize(R.dimen.wallet_tile_card_view_width);
int cardHeight = int cardHeight =

View File

@@ -24,6 +24,7 @@ import android.graphics.drawable.Drawable;
import android.os.Bundle; import android.os.Bundle;
import android.os.Handler; import android.os.Handler;
import android.service.quickaccesswallet.QuickAccessWalletClient; import android.service.quickaccesswallet.QuickAccessWalletClient;
import android.service.quickaccesswallet.WalletServiceEvent;
import android.util.Log; import android.util.Log;
import android.view.Menu; import android.view.Menu;
import android.view.MenuItem; import android.view.MenuItem;
@@ -51,7 +52,8 @@ import javax.inject.Inject;
/** /**
* Displays Wallet carousel screen inside an activity. * Displays Wallet carousel screen inside an activity.
*/ */
public class WalletActivity extends LifecycleActivity { public class WalletActivity extends LifecycleActivity implements
QuickAccessWalletClient.WalletServiceEventListener {
private static final String TAG = "WalletActivity"; private static final String TAG = "WalletActivity";
private final KeyguardStateController mKeyguardStateController; private final KeyguardStateController mKeyguardStateController;
@@ -63,6 +65,8 @@ public class WalletActivity extends LifecycleActivity {
private final UserTracker mUserTracker; private final UserTracker mUserTracker;
private final StatusBarKeyguardViewManager mKeyguardViewManager; private final StatusBarKeyguardViewManager mKeyguardViewManager;
private WalletScreenController mWalletScreenController; private WalletScreenController mWalletScreenController;
private QuickAccessWalletClient mWalletClient;
private boolean mHasRegisteredListener;
@Inject @Inject
public WalletActivity( public WalletActivity(
@@ -102,11 +106,11 @@ public class WalletActivity extends LifecycleActivity {
getActionBar().setHomeActionContentDescription(R.string.accessibility_desc_close); getActionBar().setHomeActionContentDescription(R.string.accessibility_desc_close);
WalletView walletView = requireViewById(R.id.wallet_view); WalletView walletView = requireViewById(R.id.wallet_view);
QuickAccessWalletClient walletClient = QuickAccessWalletClient.create(this); mWalletClient = QuickAccessWalletClient.create(this);
mWalletScreenController = new WalletScreenController( mWalletScreenController = new WalletScreenController(
this, this,
walletView, walletView,
walletClient, mWalletClient,
mActivityStarter, mActivityStarter,
mExecutor, mExecutor,
mHandler, mHandler,
@@ -116,7 +120,7 @@ public class WalletActivity extends LifecycleActivity {
walletView.getAppButton().setOnClickListener( walletView.getAppButton().setOnClickListener(
v -> { v -> {
if (walletClient.createWalletIntent() == null) { if (mWalletClient.createWalletIntent() == null) {
Log.w(TAG, "Unable to create wallet app intent."); Log.w(TAG, "Unable to create wallet app intent.");
return; return;
} }
@@ -127,12 +131,12 @@ public class WalletActivity extends LifecycleActivity {
if (mKeyguardStateController.isUnlocked()) { if (mKeyguardStateController.isUnlocked()) {
mActivityStarter.startActivity( mActivityStarter.startActivity(
walletClient.createWalletIntent(), true); mWalletClient.createWalletIntent(), true);
finish(); finish();
} else { } else {
mKeyguardDismissUtil.executeWhenUnlocked(() -> { mKeyguardDismissUtil.executeWhenUnlocked(() -> {
mActivityStarter.startActivity( mActivityStarter.startActivity(
walletClient.createWalletIntent(), true); mWalletClient.createWalletIntent(), true);
finish(); finish();
return false; return false;
}, false, true); }, false, true);
@@ -154,6 +158,11 @@ public class WalletActivity extends LifecycleActivity {
@Override @Override
protected void onStart() { protected void onStart() {
super.onStart(); super.onStart();
if (!mHasRegisteredListener) {
// Listener is registered even when device is locked. Should only be registered once.
mWalletClient.addWalletServiceEventListener(this);
mHasRegisteredListener = true;
}
mKeyguardStateController.addCallback(mWalletScreenController); mKeyguardStateController.addCallback(mWalletScreenController);
} }
@@ -178,6 +187,24 @@ public class WalletActivity extends LifecycleActivity {
return super.onCreateOptionsMenu(menu); return super.onCreateOptionsMenu(menu);
} }
/**
* Implements {@link QuickAccessWalletClient.WalletServiceEventListener}. Called when the wallet
* application propagates an event, such as an NFC tap, to the quick access wallet view.
*/
@Override
public void onWalletServiceEvent(WalletServiceEvent event) {
switch (event.getEventType()) {
case WalletServiceEvent.TYPE_NFC_PAYMENT_STARTED:
finish();
break;
case WalletServiceEvent.TYPE_WALLET_CARDS_UPDATED:
mWalletScreenController.queryWalletCards();
break;
default:
Log.w(TAG, "onWalletServiceEvent: Unknown event type");
}
}
@Override @Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) { public boolean onOptionsItemSelected(@NonNull MenuItem item) {
int itemId = item.getItemId(); int itemId = item.getItemId();
@@ -198,6 +225,8 @@ public class WalletActivity extends LifecycleActivity {
protected void onDestroy() { protected void onDestroy() {
mKeyguardStateController.removeCallback(mWalletScreenController); mKeyguardStateController.removeCallback(mWalletScreenController);
mWalletScreenController.onDismissed(); mWalletScreenController.onDismissed();
mWalletClient.removeWalletServiceEventListener(this);
mHasRegisteredListener = false;
super.onDestroy(); super.onDestroy();
} }

View File

@@ -30,7 +30,6 @@ import android.service.quickaccesswallet.GetWalletCardsResponse;
import android.service.quickaccesswallet.QuickAccessWalletClient; import android.service.quickaccesswallet.QuickAccessWalletClient;
import android.service.quickaccesswallet.SelectWalletCardRequest; import android.service.quickaccesswallet.SelectWalletCardRequest;
import android.service.quickaccesswallet.WalletCard; import android.service.quickaccesswallet.WalletCard;
import android.service.quickaccesswallet.WalletServiceEvent;
import android.text.TextUtils; import android.text.TextUtils;
import android.util.Log; import android.util.Log;
import android.view.View; import android.view.View;
@@ -55,7 +54,6 @@ import java.util.concurrent.TimeUnit;
public class WalletScreenController implements public class WalletScreenController implements
WalletCardCarousel.OnSelectionListener, WalletCardCarousel.OnSelectionListener,
QuickAccessWalletClient.OnWalletCardsRetrievedCallback, QuickAccessWalletClient.OnWalletCardsRetrievedCallback,
QuickAccessWalletClient.WalletServiceEventListener,
KeyguardStateController.Callback { KeyguardStateController.Callback {
private static final String TAG = "WalletScreenCtrl"; private static final String TAG = "WalletScreenCtrl";
@@ -77,7 +75,6 @@ public class WalletScreenController implements
@VisibleForTesting String mSelectedCardId; @VisibleForTesting String mSelectedCardId;
@VisibleForTesting boolean mIsDismissed; @VisibleForTesting boolean mIsDismissed;
private boolean mHasRegisteredListener;
public WalletScreenController( public WalletScreenController(
Context context, Context context,
@@ -117,6 +114,7 @@ public class WalletScreenController implements
if (mIsDismissed) { if (mIsDismissed) {
return; return;
} }
Log.i(TAG, "Successfully retrieved wallet cards.");
List<WalletCard> walletCards = response.getWalletCards(); List<WalletCard> walletCards = response.getWalletCards();
List<WalletCardViewInfo> data = new ArrayList<>(walletCards.size()); List<WalletCardViewInfo> data = new ArrayList<>(walletCards.size());
for (WalletCard card : walletCards) { for (WalletCard card : walletCards) {
@@ -158,26 +156,6 @@ public class WalletScreenController implements
}); });
} }
/**
* Implements {@link QuickAccessWalletClient.WalletServiceEventListener}. Called when the wallet
* application propagates an event, such as an NFC tap, to the quick access wallet view.
*/
@Override
public void onWalletServiceEvent(WalletServiceEvent event) {
if (mIsDismissed) {
return;
}
switch (event.getEventType()) {
case WalletServiceEvent.TYPE_NFC_PAYMENT_STARTED:
break;
case WalletServiceEvent.TYPE_WALLET_CARDS_UPDATED:
queryWalletCards();
break;
default:
Log.w(TAG, "onWalletServiceEvent: Unknown event type");
}
}
@Override @Override
public void onKeyguardFadingAwayChanged() { public void onKeyguardFadingAwayChanged() {
queryWalletCards(); queryWalletCards();
@@ -236,11 +214,6 @@ public class WalletScreenController implements
if (cardWidthPx == 0 || cardHeightPx == 0) { if (cardWidthPx == 0 || cardHeightPx == 0) {
return; return;
} }
if (!mHasRegisteredListener) {
// Listener is registered even when device is locked. Should only be registered once.
mWalletClient.addWalletServiceEventListener(this);
mHasRegisteredListener = true;
}
mWalletView.show(); mWalletView.show();
mWalletView.hideErrorMessage(); mWalletView.hideErrorMessage();
@@ -261,7 +234,6 @@ public class WalletScreenController implements
mSelectedCardId = null; mSelectedCardId = null;
mHandler.removeCallbacks(mSelectionRunnable); mHandler.removeCallbacks(mSelectionRunnable);
mWalletClient.notifyWalletDismissed(); mWalletClient.notifyWalletDismissed();
mWalletClient.removeWalletServiceEventListener(this);
mWalletView.animateDismissal(); mWalletView.animateDismissal();
// clear refs to the Wallet Activity // clear refs to the Wallet Activity
mContext = null; mContext = null;
@@ -282,7 +254,6 @@ public class WalletScreenController implements
mWalletView.hide(); mWalletView.hide();
mPrefs.edit().putInt(PREFS_WALLET_VIEW_HEIGHT, 0).apply(); mPrefs.edit().putInt(PREFS_WALLET_VIEW_HEIGHT, 0).apply();
} else { } else {
logo.setTint(mContext.getColor(R.color.GM2_grey_900));
mWalletView.showEmptyStateView( mWalletView.showEmptyStateView(
logo, logo,
logoContentDesc, logoContentDesc,

View File

@@ -161,10 +161,12 @@ public class WalletView extends FrameLayout implements WalletCardCarousel.OnCard
OnClickListener clickListener) { OnClickListener clickListener) {
mEmptyStateView.setVisibility(VISIBLE); mEmptyStateView.setVisibility(VISIBLE);
mErrorView.setVisibility(GONE); mErrorView.setVisibility(GONE);
mCardCarouselContainer.setVisibility(GONE); mCardCarousel.setVisibility(GONE);
mIcon.setImageDrawable(logo);
mIcon.setContentDescription(logoContentDescription);
mCardLabel.setText(R.string.wallet_empty_state_label);
ImageView logoView = mEmptyStateView.requireViewById(R.id.empty_state_icon); ImageView logoView = mEmptyStateView.requireViewById(R.id.empty_state_icon);
logoView.setImageDrawable(logo); logoView.setImageDrawable(mContext.getDrawable(R.drawable.ic_qs_plus));
logoView.setContentDescription(logoContentDescription);
mEmptyStateView.<TextView>requireViewById(R.id.empty_state_title).setText(label); mEmptyStateView.<TextView>requireViewById(R.id.empty_state_title).setText(label);
mEmptyStateView.setOnClickListener(clickListener); mEmptyStateView.setOnClickListener(clickListener);
} }

View File

@@ -46,7 +46,6 @@ import android.graphics.Bitmap;
import android.graphics.drawable.Icon; import android.graphics.drawable.Icon;
import android.os.Handler; import android.os.Handler;
import android.service.quickaccesswallet.GetWalletCardsError; import android.service.quickaccesswallet.GetWalletCardsError;
import android.service.quickaccesswallet.GetWalletCardsRequest;
import android.service.quickaccesswallet.GetWalletCardsResponse; import android.service.quickaccesswallet.GetWalletCardsResponse;
import android.service.quickaccesswallet.QuickAccessWalletClient; import android.service.quickaccesswallet.QuickAccessWalletClient;
import android.service.quickaccesswallet.QuickAccessWalletService; import android.service.quickaccesswallet.QuickAccessWalletService;
@@ -75,8 +74,6 @@ import com.android.systemui.statusbar.policy.KeyguardStateController;
import com.android.systemui.util.settings.SecureSettings; import com.android.systemui.util.settings.SecureSettings;
import com.android.systemui.wallet.controller.QuickAccessWalletController; import com.android.systemui.wallet.controller.QuickAccessWalletController;
import com.google.common.util.concurrent.MoreExecutors;
import org.junit.Before; import org.junit.Before;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
@@ -126,8 +123,6 @@ public class QuickAccessWalletTileTest extends SysuiTestCase {
@Captor @Captor
ArgumentCaptor<Intent> mIntentCaptor; ArgumentCaptor<Intent> mIntentCaptor;
@Captor @Captor
ArgumentCaptor<GetWalletCardsRequest> mRequestCaptor;
@Captor
ArgumentCaptor<QuickAccessWalletClient.OnWalletCardsRetrievedCallback> mCallbackCaptor; ArgumentCaptor<QuickAccessWalletClient.OnWalletCardsRetrievedCallback> mCallbackCaptor;
private Context mSpiedContext; private Context mSpiedContext;
@@ -163,7 +158,6 @@ public class QuickAccessWalletTileTest extends SysuiTestCase {
mKeyguardStateController, mKeyguardStateController,
mPackageManager, mPackageManager,
mSecureSettings, mSecureSettings,
MoreExecutors.directExecutor(),
mController, mController,
mFeatureFlags); mFeatureFlags);
} }

View File

@@ -21,9 +21,7 @@ import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotSame; import static org.junit.Assert.assertNotSame;
import static org.junit.Assert.assertSame; import static org.junit.Assert.assertSame;
import static org.junit.Assert.assertTrue; import static org.junit.Assert.assertTrue;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.eq; import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when; import static org.mockito.Mockito.when;
@@ -126,18 +124,8 @@ public class QuickAccessWalletControllerTest extends SysuiTestCase {
assertNotSame(mQuickAccessWalletClient, mController.getWalletClient()); assertNotSame(mQuickAccessWalletClient, mController.getWalletClient());
} }
@Test
public void queryWalletCards_walletNotEnabled_notQuery() {
when(mQuickAccessWalletClient.isWalletServiceAvailable()).thenReturn(false);
mController.queryWalletCards(mCardsRetriever);
verify(mQuickAccessWalletClient, never()).getWalletCards(any(), any(), any());
}
@Test @Test
public void queryWalletCards_walletEnabled_queryCards() { public void queryWalletCards_walletEnabled_queryCards() {
mController.updateWalletPreference();
mController.queryWalletCards(mCardsRetriever); mController.queryWalletCards(mCardsRetriever);
verify(mQuickAccessWalletClient) verify(mQuickAccessWalletClient)

View File

@@ -20,13 +20,9 @@ import static android.view.View.GONE;
import static android.view.View.VISIBLE; import static android.view.View.VISIBLE;
import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNull;
import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.eq; import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.verifyZeroInteractions;
import static org.mockito.Mockito.when; import static org.mockito.Mockito.when;
import android.app.PendingIntent; import android.app.PendingIntent;
@@ -43,7 +39,6 @@ import android.service.quickaccesswallet.GetWalletCardsResponse;
import android.service.quickaccesswallet.QuickAccessWalletClient; import android.service.quickaccesswallet.QuickAccessWalletClient;
import android.service.quickaccesswallet.QuickAccessWalletService; import android.service.quickaccesswallet.QuickAccessWalletService;
import android.service.quickaccesswallet.WalletCard; import android.service.quickaccesswallet.WalletCard;
import android.service.quickaccesswallet.WalletServiceEvent;
import android.testing.AndroidTestingRunner; import android.testing.AndroidTestingRunner;
import android.testing.TestableLooper; import android.testing.TestableLooper;
@@ -250,7 +245,7 @@ public class WalletScreenControllerTest extends SysuiTestCase {
callback.onWalletCardsRetrieved(response); callback.onWalletCardsRetrieved(response);
mTestableLooper.processAllMessages(); mTestableLooper.processAllMessages();
assertEquals(GONE, mWalletView.getCardCarouselContainer().getVisibility()); assertEquals(GONE, mWalletView.getCardCarousel().getVisibility());
assertEquals(VISIBLE, mWalletView.getEmptyStateView().getVisibility()); assertEquals(VISIBLE, mWalletView.getEmptyStateView().getVisibility());
assertEquals(GONE, mWalletView.getErrorView().getVisibility()); assertEquals(GONE, mWalletView.getErrorView().getVisibility());
} }
@@ -267,7 +262,7 @@ public class WalletScreenControllerTest extends SysuiTestCase {
mCallbackCaptor.getValue().onWalletCardsRetrieved(response); mCallbackCaptor.getValue().onWalletCardsRetrieved(response);
mTestableLooper.processAllMessages(); mTestableLooper.processAllMessages();
assertEquals(GONE, mWalletView.getCardCarouselContainer().getVisibility()); assertEquals(GONE, mWalletView.getCardCarousel().getVisibility());
assertEquals(VISIBLE, mWalletView.getEmptyStateView().getVisibility()); assertEquals(VISIBLE, mWalletView.getEmptyStateView().getVisibility());
assertEquals(GONE, mWalletView.getErrorView().getVisibility()); assertEquals(GONE, mWalletView.getErrorView().getVisibility());
} }
@@ -291,40 +286,6 @@ public class WalletScreenControllerTest extends SysuiTestCase {
assertEquals(errorMessage, mWalletView.getErrorView().getText().toString()); assertEquals(errorMessage, mWalletView.getErrorView().getText().toString());
} }
@Test
public void onWalletServiceEvent_nfcPaymentStart_doNothing() {
WalletServiceEvent event =
new WalletServiceEvent(WalletServiceEvent.TYPE_NFC_PAYMENT_STARTED);
mController.onWalletServiceEvent(event);
mTestableLooper.processAllMessages();
assertNull(mController.mSelectedCardId);
assertFalse(mController.mIsDismissed);
verifyZeroInteractions(mWalletClient);
}
@Test
public void onWalletServiceEvent_walletCardsUpdate_queryCards() {
mController.queryWalletCards();
verify(mWalletClient).addWalletServiceEventListener(mListenerCaptor.capture());
WalletServiceEvent event =
new WalletServiceEvent(WalletServiceEvent.TYPE_WALLET_CARDS_UPDATED);
QuickAccessWalletClient.WalletServiceEventListener listener = mListenerCaptor.getValue();
listener.onWalletServiceEvent(event);
mTestableLooper.processAllMessages();
verify(mWalletClient, times(2))
.getWalletCards(any(), mRequestCaptor.capture(), mCallbackCaptor.capture());
GetWalletCardsRequest request = mRequestCaptor.getValue();
assertEquals(MAX_CARDS, request.getMaxCards());
}
@Test @Test
public void onKeyguardFadingAwayChanged_queryCards() { public void onKeyguardFadingAwayChanged_queryCards() {
mController.onKeyguardFadingAwayChanged(); mController.onKeyguardFadingAwayChanged();