diff --git a/core/api/current.txt b/core/api/current.txt index 89b994189e925..d5e06684b555d 100644 --- a/core/api/current.txt +++ b/core/api/current.txt @@ -1651,7 +1651,6 @@ package android { field public static final int useEmbeddedDex = 16844190; // 0x101059e field public static final int useIntrinsicSizeAsMinimum = 16843536; // 0x1010310 field public static final int useLevel = 16843167; // 0x101019f - field public static final int useTargetActivityForQuickAccess; field public static final int userVisible = 16843409; // 0x1010291 field public static final int usesCleartextTraffic = 16844012; // 0x10104ec field public static final int usesPermissionFlags = 16844356; // 0x1010644 diff --git a/core/api/test-current.txt b/core/api/test-current.txt index 5bb6325d33db7..1a34ef53a8e3f 100644 --- a/core/api/test-current.txt +++ b/core/api/test-current.txt @@ -2404,7 +2404,6 @@ package android.service.quickaccesswallet { method public void notifyWalletDismissed(); method public void removeWalletServiceEventListener(@NonNull android.service.quickaccesswallet.QuickAccessWalletClient.WalletServiceEventListener); method public void selectWalletCard(@NonNull android.service.quickaccesswallet.SelectWalletCardRequest); - method public boolean useTargetActivityForQuickAccess(); } public static interface QuickAccessWalletClient.OnWalletCardsRetrievedCallback { diff --git a/core/java/android/service/quickaccesswallet/QuickAccessWalletClient.java b/core/java/android/service/quickaccesswallet/QuickAccessWalletClient.java index 091bf797e24b6..faa5b2fe34885 100644 --- a/core/java/android/service/quickaccesswallet/QuickAccessWalletClient.java +++ b/core/java/android/service/quickaccesswallet/QuickAccessWalletClient.java @@ -240,15 +240,4 @@ public interface QuickAccessWalletClient extends Closeable { */ @Nullable CharSequence getShortcutLongLabel(); - - /** - * Return whether the system should use the component specified by the - * {@link android:targetActivity} or - * {@link QuickAccessWalletService#getTargetActivityPendingIntent()} - * as the "quick access" , invoked directly by the system. - * If false, the system will use the built-in UI instead of the component specified - * in {@link android:targetActivity} or - * {@link QuickAccessWalletService#getTargetActivityPendingIntent()}. - */ - boolean useTargetActivityForQuickAccess(); } diff --git a/core/java/android/service/quickaccesswallet/QuickAccessWalletClientImpl.java b/core/java/android/service/quickaccesswallet/QuickAccessWalletClientImpl.java index a3304a9ca3865..024660bde6fe1 100644 --- a/core/java/android/service/quickaccesswallet/QuickAccessWalletClientImpl.java +++ b/core/java/android/service/quickaccesswallet/QuickAccessWalletClientImpl.java @@ -350,11 +350,6 @@ public class QuickAccessWalletClientImpl implements QuickAccessWalletClient, Ser return mServiceInfo == null ? null : mServiceInfo.getShortcutLongLabel(mContext); } - @Override - public boolean useTargetActivityForQuickAccess() { - return mServiceInfo.getUseTargetActivityForQuickAccess(); - } - private void connect() { mHandler.post(this::connectInternal); } diff --git a/core/java/android/service/quickaccesswallet/QuickAccessWalletService.java b/core/java/android/service/quickaccesswallet/QuickAccessWalletService.java index 70ccd6fbd590f..d004f34bc721e 100644 --- a/core/java/android/service/quickaccesswallet/QuickAccessWalletService.java +++ b/core/java/android/service/quickaccesswallet/QuickAccessWalletService.java @@ -336,6 +336,14 @@ public abstract class QuickAccessWalletService extends Service { mHandler.post(() -> sendWalletServiceEventInternal(serviceEvent)); } + /** + * Specify a {@link PendingIntent} to be launched as the "Quick Access" activity. + * + * This activity will be launched directly by the system in lieu of the card switcher activity + * provided by the system. + * + * In order to use the system-provided card switcher activity, return null from this method. + */ @Nullable public PendingIntent getTargetActivityPendingIntent() { return null; diff --git a/core/java/android/service/quickaccesswallet/QuickAccessWalletServiceInfo.java b/core/java/android/service/quickaccesswallet/QuickAccessWalletServiceInfo.java index cf4be739e05af..0d290eee5777d 100644 --- a/core/java/android/service/quickaccesswallet/QuickAccessWalletServiceInfo.java +++ b/core/java/android/service/quickaccesswallet/QuickAccessWalletServiceInfo.java @@ -144,23 +144,20 @@ class QuickAccessWalletServiceInfo { private final CharSequence mShortcutShortLabel; @Nullable private final CharSequence mShortcutLongLabel; - private final boolean mUseTargetActivityForQuickAccess; private static ServiceMetadata empty() { - return new ServiceMetadata(null, null, null, null, false); + return new ServiceMetadata(null, null, null, null); } private ServiceMetadata( String targetActivity, String settingsActivity, CharSequence shortcutShortLabel, - CharSequence shortcutLongLabel, - boolean useTargetActivityForQuickAccess) { + CharSequence shortcutLongLabel) { mTargetActivity = targetActivity; mSettingsActivity = settingsActivity; mShortcutShortLabel = shortcutShortLabel; mShortcutLongLabel = shortcutLongLabel; - mUseTargetActivityForQuickAccess = useTargetActivityForQuickAccess; } } @@ -194,11 +191,8 @@ class QuickAccessWalletServiceInfo { R.styleable.QuickAccessWalletService_shortcutShortLabel); CharSequence shortcutLongLabel = afsAttributes.getText( R.styleable.QuickAccessWalletService_shortcutLongLabel); - boolean useTargetActivityForQuickAccess = afsAttributes.getBoolean( - R.styleable.QuickAccessWalletService_useTargetActivityForQuickAccess, - false); return new ServiceMetadata(targetActivity, settingsActivity, shortcutShortLabel, - shortcutLongLabel, useTargetActivityForQuickAccess); + shortcutLongLabel); } finally { if (afsAttributes != null) { afsAttributes.recycle(); @@ -277,8 +271,4 @@ class QuickAccessWalletServiceInfo { CharSequence getServiceLabel(Context context) { return mServiceInfo.loadLabel(context.getPackageManager()); } - - boolean getUseTargetActivityForQuickAccess() { - return mServiceMetadata.mUseTargetActivityForQuickAccess; - } } diff --git a/packages/SystemUI/src/com/android/systemui/wallet/controller/QuickAccessWalletController.java b/packages/SystemUI/src/com/android/systemui/wallet/controller/QuickAccessWalletController.java index 3c869e7ceb401..de25ca981a65d 100644 --- a/packages/SystemUI/src/com/android/systemui/wallet/controller/QuickAccessWalletController.java +++ b/packages/SystemUI/src/com/android/systemui/wallet/controller/QuickAccessWalletController.java @@ -211,27 +211,24 @@ public class QuickAccessWalletController { public void startQuickAccessUiIntent(ActivityStarter activityStarter, ActivityLaunchAnimator.Controller animationController, boolean hasCard) { - if (mQuickAccessWalletClient.useTargetActivityForQuickAccess() || !hasCard) { - mQuickAccessWalletClient.getWalletPendingIntent(mCallbackExecutor, - walletPendingIntent -> { - if (walletPendingIntent == null) { - Intent intent = mQuickAccessWalletClient.createWalletIntent(); - if (intent == null) { - intent = getSysUiWalletIntent(); - } - startQuickAccessViaIntent(intent, hasCard, activityStarter, - animationController); - return; - } - startQuickAccessViaPendingIntent(walletPendingIntent, - activityStarter, animationController); - }); - } else { - startQuickAccessViaIntent(getSysUiWalletIntent(), - hasCard, - activityStarter, - animationController); - } + mQuickAccessWalletClient.getWalletPendingIntent(mCallbackExecutor, + walletPendingIntent -> { + if (walletPendingIntent != null) { + startQuickAccessViaPendingIntent(walletPendingIntent, activityStarter, + animationController); + return; + } + Intent intent = null; + if (!hasCard) { + intent = mQuickAccessWalletClient.createWalletIntent(); + } + if (intent == null) { + intent = getSysUiWalletIntent(); + } + startQuickAccessViaIntent(intent, hasCard, activityStarter, + animationController); + + }); } private Intent getSysUiWalletIntent() { diff --git a/packages/SystemUI/tests/src/com/android/systemui/wallet/controller/QuickAccessWalletControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/wallet/controller/QuickAccessWalletControllerTest.java index 68027450045be..de2efc71b3a9e 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/wallet/controller/QuickAccessWalletControllerTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/wallet/controller/QuickAccessWalletControllerTest.java @@ -198,8 +198,7 @@ public class QuickAccessWalletControllerTest extends SysuiTestCase { } @Test - public void getQuickAccessUiIntent_hasCards_useTargetActivityFalse_startsWalletActivity() { - when(mQuickAccessWalletClient.useTargetActivityForQuickAccess()).thenReturn(false); + public void getQuickAccessUiIntent_hasCards_noPendingIntent_startsWalletActivity() { mController.startQuickAccessUiIntent(mActivityStarter, mAnimationController, true); verify(mActivityStarter).startActivity(mIntentCaptor.capture(), eq(true), any(ActivityLaunchAnimator.Controller.class), eq(true)); @@ -211,8 +210,7 @@ public class QuickAccessWalletControllerTest extends SysuiTestCase { } @Test - public void getQuickAccessUiIntent_noCards_useTargetActivityFalse_isWalletActivity() { - when(mQuickAccessWalletClient.useTargetActivityForQuickAccess()).thenReturn(false); + public void getQuickAccessUiIntent_noCards_noPendingIntent_startsWalletActivity() { mController.startQuickAccessUiIntent(mActivityStarter, mAnimationController, false); verify(mActivityStarter).postStartActivityDismissingKeyguard(mIntentCaptor.capture(), eq(0), any(ActivityLaunchAnimator.Controller.class)); @@ -236,7 +234,6 @@ public class QuickAccessWalletControllerTest extends SysuiTestCase { PendingIntent.getActivity(mContext, 0, intent, PendingIntent.FLAG_IMMUTABLE)); return null; }).when(mQuickAccessWalletClient).getWalletPendingIntent(any(), any()); - when(mQuickAccessWalletClient.useTargetActivityForQuickAccess()).thenReturn(true); mController.startQuickAccessUiIntent(mActivityStarter, mAnimationController, true); verify(mActivityStarter).postStartActivityDismissingKeyguard(mPendingIntentCaptor.capture(), any(ActivityLaunchAnimator.Controller.class));