Merge "Polish Wallet empty state view." into sc-dev
This commit is contained in:
@@ -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"
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|||||||
@@ -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] -->
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
@@ -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 =
|
||||||
|
|||||||
@@ -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();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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,
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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();
|
||||||
|
|||||||
Reference in New Issue
Block a user