Merge "Call the startQuickAccessUiIntent of QuickAccessWalletController for QAWTile and Lockscreen wallet icon."
This commit is contained in:
committed by
Android (Google) Code Review
commit
68b0ca053d
@@ -53,7 +53,6 @@ import com.android.systemui.qs.tileimpl.QSTileImpl;
|
||||
import com.android.systemui.statusbar.policy.KeyguardStateController;
|
||||
import com.android.systemui.util.settings.SecureSettings;
|
||||
import com.android.systemui.wallet.controller.QuickAccessWalletController;
|
||||
import com.android.systemui.wallet.ui.WalletActivity;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@@ -128,25 +127,9 @@ public class QuickAccessWalletTile extends QSTileImpl<QSTile.State> {
|
||||
view == null ? null : ActivityLaunchAnimator.Controller.fromView(view,
|
||||
InteractionJankMonitor.CUJ_SHADE_APP_LAUNCH_FROM_QS_TILE);
|
||||
|
||||
mUiHandler.post(() -> {
|
||||
if (mSelectedCard != null) {
|
||||
Intent intent = new Intent(mContext, WalletActivity.class)
|
||||
.setAction(Intent.ACTION_VIEW)
|
||||
.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
mActivityStarter.startActivity(intent, true /* dismissShade */,
|
||||
animationController, true /* showOverLockscreenWhenLocked */);
|
||||
} else {
|
||||
Intent intent = mController.getWalletClient().createWalletIntent();
|
||||
if (intent == null) {
|
||||
Log.w(TAG, "Could not get intent of the wallet app.");
|
||||
return;
|
||||
}
|
||||
mActivityStarter.postStartActivityDismissingKeyguard(
|
||||
intent,
|
||||
/* delay= */ 0,
|
||||
animationController);
|
||||
}
|
||||
});
|
||||
mUiHandler.post(
|
||||
() -> mController.startQuickAccessUiIntent(
|
||||
mActivityStarter, animationController, mSelectedCard != null));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -107,7 +107,6 @@ import com.android.systemui.statusbar.policy.PreviewInflater;
|
||||
import com.android.systemui.tuner.LockscreenFragment.LockButtonFactory;
|
||||
import com.android.systemui.tuner.TunerService;
|
||||
import com.android.systemui.wallet.controller.QuickAccessWalletController;
|
||||
import com.android.systemui.wallet.ui.WalletActivity;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@@ -1149,21 +1148,8 @@ public class KeyguardBottomAreaView extends FrameLayout implements View.OnClickL
|
||||
}
|
||||
|
||||
ActivityLaunchAnimator.Controller animationController = createLaunchAnimationController(v);
|
||||
if (mHasCard) {
|
||||
Intent intent = new Intent(mContext, WalletActivity.class)
|
||||
.setAction(Intent.ACTION_VIEW)
|
||||
.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
mActivityStarter.startActivity(intent, true /* dismissShade */, animationController,
|
||||
true /* showOverLockscreenWhenLocked */);
|
||||
} else {
|
||||
if (mQuickAccessWalletController.getWalletClient().createWalletIntent() == null) {
|
||||
Log.w(TAG, "Could not get intent of the wallet app.");
|
||||
return;
|
||||
}
|
||||
mActivityStarter.postStartActivityDismissingKeyguard(
|
||||
mQuickAccessWalletController.getWalletClient().createWalletIntent(),
|
||||
/* delay= */ 0, animationController);
|
||||
}
|
||||
mQuickAccessWalletController.startQuickAccessUiIntent(
|
||||
mActivityStarter, animationController, mHasCard);
|
||||
}
|
||||
|
||||
protected ActivityLaunchAnimator.Controller createLaunchAnimationController(View view) {
|
||||
|
||||
@@ -28,7 +28,6 @@ import static junit.framework.TestCase.assertNull;
|
||||
import static junit.framework.TestCase.assertTrue;
|
||||
|
||||
import static org.mockito.ArgumentMatchers.any;
|
||||
import static org.mockito.ArgumentMatchers.anyInt;
|
||||
import static org.mockito.ArgumentMatchers.eq;
|
||||
import static org.mockito.Mockito.doNothing;
|
||||
import static org.mockito.Mockito.spy;
|
||||
@@ -62,7 +61,6 @@ import com.android.internal.logging.UiEventLogger;
|
||||
import com.android.internal.logging.testing.UiEventLoggerFake;
|
||||
import com.android.systemui.R;
|
||||
import com.android.systemui.SysuiTestCase;
|
||||
import com.android.systemui.animation.ActivityLaunchAnimator;
|
||||
import com.android.systemui.classifier.FalsingManagerFake;
|
||||
import com.android.systemui.plugins.ActivityStarter;
|
||||
import com.android.systemui.plugins.qs.QSTile;
|
||||
@@ -120,8 +118,6 @@ public class QuickAccessWalletTileTest extends SysuiTestCase {
|
||||
@Mock
|
||||
private QuickAccessWalletController mController;
|
||||
@Captor
|
||||
ArgumentCaptor<Intent> mIntentCaptor;
|
||||
@Captor
|
||||
ArgumentCaptor<QuickAccessWalletClient.OnWalletCardsRetrievedCallback> mCallbackCaptor;
|
||||
|
||||
private Context mSpiedContext;
|
||||
@@ -196,66 +192,29 @@ public class QuickAccessWalletTileTest extends SysuiTestCase {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testHandleClick_noCards_hasIntent_openWalletApp() {
|
||||
Intent intent = new Intent("WalletIntent");
|
||||
when(mQuickAccessWalletClient.createWalletIntent()).thenReturn(intent);
|
||||
public void testHandleClick_startQuickAccessUiIntent_noCard() {
|
||||
setUpWalletCard(/* hasCard= */ false);
|
||||
|
||||
mTile.handleClick(null /* view */);
|
||||
mTile.handleClick(/* view= */ null);
|
||||
mTestableLooper.processAllMessages();
|
||||
|
||||
verify(mActivityStarter, times(1))
|
||||
.postStartActivityDismissingKeyguard(eq(intent), anyInt(),
|
||||
eq(null) /* animationController */);
|
||||
verify(mController).startQuickAccessUiIntent(
|
||||
eq(mActivityStarter),
|
||||
eq(null),
|
||||
/* hasCard= */ eq(false));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testHandleClick_noCards_noIntent_doNothing() {
|
||||
when(mQuickAccessWalletClient.createWalletIntent()).thenReturn(null);
|
||||
setUpWalletCard(/* hasCard= */ false);
|
||||
|
||||
mTile.handleClick(null /* view */);
|
||||
mTestableLooper.processAllMessages();
|
||||
|
||||
verifyZeroInteractions(mActivityStarter);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testHandleClick_hasCards_deviceLocked_startWalletActivity() {
|
||||
when(mKeyguardStateController.isUnlocked()).thenReturn(false);
|
||||
public void testHandleClick_startQuickAccessUiIntent_hasCard() {
|
||||
setUpWalletCard(/* hasCard= */ true);
|
||||
|
||||
mTile.handleClick(null /* view */);
|
||||
mTestableLooper.processAllMessages();
|
||||
|
||||
verify(mActivityStarter).startActivity(mIntentCaptor.capture(), eq(true) /* dismissShade */,
|
||||
(ActivityLaunchAnimator.Controller) eq(null),
|
||||
eq(true) /* showOverLockscreenWhenLocked */);
|
||||
|
||||
Intent nextStartedIntent = mIntentCaptor.getValue();
|
||||
String walletClassName = "com.android.systemui.wallet.ui.WalletActivity";
|
||||
|
||||
assertNotNull(nextStartedIntent);
|
||||
assertThat(nextStartedIntent.getComponent().getClassName()).isEqualTo(walletClassName);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testHandleClick_hasCards_deviceUnlocked_startWalletActivity() {
|
||||
when(mKeyguardStateController.isUnlocked()).thenReturn(true);
|
||||
setUpWalletCard(/* hasCard= */ true);
|
||||
|
||||
mTile.handleClick(null /* view */);
|
||||
mTestableLooper.processAllMessages();
|
||||
|
||||
verify(mActivityStarter).startActivity(mIntentCaptor.capture(), eq(true) /* dismissShade */,
|
||||
(ActivityLaunchAnimator.Controller) eq(null),
|
||||
eq(true) /* showOverLockscreenWhenLocked */);
|
||||
|
||||
Intent nextStartedIntent = mIntentCaptor.getValue();
|
||||
String walletClassName = "com.android.systemui.wallet.ui.WalletActivity";
|
||||
|
||||
assertNotNull(nextStartedIntent);
|
||||
assertThat(nextStartedIntent.getComponent().getClassName()).isEqualTo(walletClassName);
|
||||
verify(mController).startQuickAccessUiIntent(
|
||||
eq(mActivityStarter),
|
||||
eq(null),
|
||||
/* hasCard= */ eq(true));
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
Reference in New Issue
Block a user