Loading core/java/android/service/quickaccesswallet/QuickAccessWalletClient.java +13 −1 Original line number Diff line number Diff line Loading @@ -42,7 +42,19 @@ public interface QuickAccessWalletClient extends Closeable { */ @NonNull static QuickAccessWalletClient create(@NonNull Context context) { return new QuickAccessWalletClientImpl(context); return create(context, null /* bgExecutor */); } /** * Create a client for accessing wallet cards from the {@link QuickAccessWalletService}. If the * service is unavailable, {@link #isWalletServiceAvailable()} will return false. * @param context Context. * @param bgExecutor A background {@link Executor} for service registration. * @hide */ @NonNull static QuickAccessWalletClient create(@NonNull Context context, @Nullable Executor bgExecutor) { return new QuickAccessWalletClientImpl(context, bgExecutor); } /** Loading core/java/android/service/quickaccesswallet/QuickAccessWalletClientImpl.java +5 −3 Original line number Diff line number Diff line Loading @@ -67,6 +67,7 @@ public class QuickAccessWalletClientImpl implements QuickAccessWalletClient, Ser private final Context mContext; private final Queue<ApiCaller> mRequestQueue; private final Map<WalletServiceEventListener, String> mEventListeners; private final Executor mLifecycleExecutor; private boolean mIsConnected; /** Timeout for active service connections (1 minute) */ private static final long SERVICE_CONNECTION_TIMEOUT_MS = 60 * 1000; Loading @@ -79,10 +80,11 @@ public class QuickAccessWalletClientImpl implements QuickAccessWalletClient, Ser private static final int MSG_TIMEOUT_SERVICE = 5; QuickAccessWalletClientImpl(@NonNull Context context) { QuickAccessWalletClientImpl(@NonNull Context context, @Nullable Executor bgExecutor) { mContext = context.getApplicationContext(); mServiceInfo = QuickAccessWalletServiceInfo.tryCreate(context); mHandler = new Handler(Looper.getMainLooper()); mLifecycleExecutor = (bgExecutor == null) ? Runnable::run : bgExecutor; mRequestQueue = new LinkedList<>(); mEventListeners = new HashMap<>(1); } Loading Loading @@ -369,7 +371,7 @@ public class QuickAccessWalletClientImpl implements QuickAccessWalletClient, Ser Intent intent = new Intent(SERVICE_INTERFACE); intent.setComponent(mServiceInfo.getComponentName()); int flags = Context.BIND_AUTO_CREATE | Context.BIND_WAIVE_PRIORITY; mContext.bindService(intent, this, flags); mLifecycleExecutor.execute(() -> mContext.bindService(intent, this, flags)); resetServiceConnectionTimeout(); } Loading Loading @@ -411,7 +413,7 @@ public class QuickAccessWalletClientImpl implements QuickAccessWalletClient, Ser return; } mIsConnected = false; mContext.unbindService(/*conn=*/ this); mLifecycleExecutor.execute(() -> mContext.unbindService(/*conn=*/ this)); mService = null; mEventListeners.clear(); mRequestQueue.clear(); Loading packages/SystemUI/src/com/android/systemui/wallet/controller/QuickAccessWalletController.java +5 −1 Original line number Diff line number Diff line Loading @@ -33,6 +33,7 @@ import android.util.Log; import com.android.systemui.R; import com.android.systemui.animation.ActivityLaunchAnimator; import com.android.systemui.dagger.SysUISingleton; import com.android.systemui.dagger.qualifiers.Background; import com.android.systemui.dagger.qualifiers.Main; import com.android.systemui.plugins.ActivityStarter; import com.android.systemui.util.settings.SecureSettings; Loading Loading @@ -64,6 +65,7 @@ public class QuickAccessWalletController { private final Context mContext; private final Executor mExecutor; private final Executor mCallbackExecutor; private final Executor mBgExecutor; private final SecureSettings mSecureSettings; private final SystemClock mClock; Loading @@ -80,12 +82,14 @@ public class QuickAccessWalletController { Context context, @Main Executor executor, @CallbackExecutor Executor callbackExecutor, @Background Executor bgExecutor, SecureSettings secureSettings, QuickAccessWalletClient quickAccessWalletClient, SystemClock clock) { mContext = context; mExecutor = executor; mCallbackExecutor = callbackExecutor; mBgExecutor = bgExecutor; mSecureSettings = secureSettings; mQuickAccessWalletClient = quickAccessWalletClient; mClock = clock; Loading Loading @@ -182,7 +186,7 @@ public class QuickAccessWalletController { * Re-create the {@link QuickAccessWalletClient} of the controller. */ public void reCreateWalletClient() { mQuickAccessWalletClient = QuickAccessWalletClient.create(mContext); mQuickAccessWalletClient = QuickAccessWalletClient.create(mContext, mBgExecutor); mQawClientCreatedTimeMillis = mClock.elapsedRealtime(); } Loading packages/SystemUI/src/com/android/systemui/wallet/dagger/WalletModule.java +6 −2 Original line number Diff line number Diff line Loading @@ -21,8 +21,11 @@ import android.content.Context; import android.service.quickaccesswallet.QuickAccessWalletClient; import com.android.systemui.dagger.SysUISingleton; import com.android.systemui.dagger.qualifiers.Background; import com.android.systemui.wallet.ui.WalletActivity; import java.util.concurrent.Executor; import dagger.Binds; import dagger.Module; import dagger.Provides; Loading @@ -45,7 +48,8 @@ public abstract class WalletModule { /** */ @SysUISingleton @Provides public static QuickAccessWalletClient provideQuickAccessWalletClient(Context context) { return QuickAccessWalletClient.create(context); public static QuickAccessWalletClient provideQuickAccessWalletClient(Context context, @Background Executor bgExecutor) { return QuickAccessWalletClient.create(context, bgExecutor); } } packages/SystemUI/src/com/android/systemui/wallet/ui/WalletActivity.java +1 −1 Original line number Diff line number Diff line Loading @@ -122,7 +122,7 @@ public class WalletActivity extends LifecycleActivity implements getActionBar().setHomeActionContentDescription(R.string.accessibility_desc_close); WalletView walletView = requireViewById(R.id.wallet_view); mWalletClient = QuickAccessWalletClient.create(this); mWalletClient = QuickAccessWalletClient.create(this, mExecutor); mWalletScreenController = new WalletScreenController( this, walletView, Loading Loading
core/java/android/service/quickaccesswallet/QuickAccessWalletClient.java +13 −1 Original line number Diff line number Diff line Loading @@ -42,7 +42,19 @@ public interface QuickAccessWalletClient extends Closeable { */ @NonNull static QuickAccessWalletClient create(@NonNull Context context) { return new QuickAccessWalletClientImpl(context); return create(context, null /* bgExecutor */); } /** * Create a client for accessing wallet cards from the {@link QuickAccessWalletService}. If the * service is unavailable, {@link #isWalletServiceAvailable()} will return false. * @param context Context. * @param bgExecutor A background {@link Executor} for service registration. * @hide */ @NonNull static QuickAccessWalletClient create(@NonNull Context context, @Nullable Executor bgExecutor) { return new QuickAccessWalletClientImpl(context, bgExecutor); } /** Loading
core/java/android/service/quickaccesswallet/QuickAccessWalletClientImpl.java +5 −3 Original line number Diff line number Diff line Loading @@ -67,6 +67,7 @@ public class QuickAccessWalletClientImpl implements QuickAccessWalletClient, Ser private final Context mContext; private final Queue<ApiCaller> mRequestQueue; private final Map<WalletServiceEventListener, String> mEventListeners; private final Executor mLifecycleExecutor; private boolean mIsConnected; /** Timeout for active service connections (1 minute) */ private static final long SERVICE_CONNECTION_TIMEOUT_MS = 60 * 1000; Loading @@ -79,10 +80,11 @@ public class QuickAccessWalletClientImpl implements QuickAccessWalletClient, Ser private static final int MSG_TIMEOUT_SERVICE = 5; QuickAccessWalletClientImpl(@NonNull Context context) { QuickAccessWalletClientImpl(@NonNull Context context, @Nullable Executor bgExecutor) { mContext = context.getApplicationContext(); mServiceInfo = QuickAccessWalletServiceInfo.tryCreate(context); mHandler = new Handler(Looper.getMainLooper()); mLifecycleExecutor = (bgExecutor == null) ? Runnable::run : bgExecutor; mRequestQueue = new LinkedList<>(); mEventListeners = new HashMap<>(1); } Loading Loading @@ -369,7 +371,7 @@ public class QuickAccessWalletClientImpl implements QuickAccessWalletClient, Ser Intent intent = new Intent(SERVICE_INTERFACE); intent.setComponent(mServiceInfo.getComponentName()); int flags = Context.BIND_AUTO_CREATE | Context.BIND_WAIVE_PRIORITY; mContext.bindService(intent, this, flags); mLifecycleExecutor.execute(() -> mContext.bindService(intent, this, flags)); resetServiceConnectionTimeout(); } Loading Loading @@ -411,7 +413,7 @@ public class QuickAccessWalletClientImpl implements QuickAccessWalletClient, Ser return; } mIsConnected = false; mContext.unbindService(/*conn=*/ this); mLifecycleExecutor.execute(() -> mContext.unbindService(/*conn=*/ this)); mService = null; mEventListeners.clear(); mRequestQueue.clear(); Loading
packages/SystemUI/src/com/android/systemui/wallet/controller/QuickAccessWalletController.java +5 −1 Original line number Diff line number Diff line Loading @@ -33,6 +33,7 @@ import android.util.Log; import com.android.systemui.R; import com.android.systemui.animation.ActivityLaunchAnimator; import com.android.systemui.dagger.SysUISingleton; import com.android.systemui.dagger.qualifiers.Background; import com.android.systemui.dagger.qualifiers.Main; import com.android.systemui.plugins.ActivityStarter; import com.android.systemui.util.settings.SecureSettings; Loading Loading @@ -64,6 +65,7 @@ public class QuickAccessWalletController { private final Context mContext; private final Executor mExecutor; private final Executor mCallbackExecutor; private final Executor mBgExecutor; private final SecureSettings mSecureSettings; private final SystemClock mClock; Loading @@ -80,12 +82,14 @@ public class QuickAccessWalletController { Context context, @Main Executor executor, @CallbackExecutor Executor callbackExecutor, @Background Executor bgExecutor, SecureSettings secureSettings, QuickAccessWalletClient quickAccessWalletClient, SystemClock clock) { mContext = context; mExecutor = executor; mCallbackExecutor = callbackExecutor; mBgExecutor = bgExecutor; mSecureSettings = secureSettings; mQuickAccessWalletClient = quickAccessWalletClient; mClock = clock; Loading Loading @@ -182,7 +186,7 @@ public class QuickAccessWalletController { * Re-create the {@link QuickAccessWalletClient} of the controller. */ public void reCreateWalletClient() { mQuickAccessWalletClient = QuickAccessWalletClient.create(mContext); mQuickAccessWalletClient = QuickAccessWalletClient.create(mContext, mBgExecutor); mQawClientCreatedTimeMillis = mClock.elapsedRealtime(); } Loading
packages/SystemUI/src/com/android/systemui/wallet/dagger/WalletModule.java +6 −2 Original line number Diff line number Diff line Loading @@ -21,8 +21,11 @@ import android.content.Context; import android.service.quickaccesswallet.QuickAccessWalletClient; import com.android.systemui.dagger.SysUISingleton; import com.android.systemui.dagger.qualifiers.Background; import com.android.systemui.wallet.ui.WalletActivity; import java.util.concurrent.Executor; import dagger.Binds; import dagger.Module; import dagger.Provides; Loading @@ -45,7 +48,8 @@ public abstract class WalletModule { /** */ @SysUISingleton @Provides public static QuickAccessWalletClient provideQuickAccessWalletClient(Context context) { return QuickAccessWalletClient.create(context); public static QuickAccessWalletClient provideQuickAccessWalletClient(Context context, @Background Executor bgExecutor) { return QuickAccessWalletClient.create(context, bgExecutor); } }
packages/SystemUI/src/com/android/systemui/wallet/ui/WalletActivity.java +1 −1 Original line number Diff line number Diff line Loading @@ -122,7 +122,7 @@ public class WalletActivity extends LifecycleActivity implements getActionBar().setHomeActionContentDescription(R.string.accessibility_desc_close); WalletView walletView = requireViewById(R.id.wallet_view); mWalletClient = QuickAccessWalletClient.create(this); mWalletClient = QuickAccessWalletClient.create(this, mExecutor); mWalletScreenController = new WalletScreenController( this, walletView, Loading