From 1b917593dd7a42212e87ee8221b98f510f0b953e Mon Sep 17 00:00:00 2001 From: Isaac Katzenelson Date: Tue, 17 Sep 2024 16:47:03 -0700 Subject: Run callback registration on the worker provided by the client. Since the worker is provided in the callback proxy object, added a method to get the worker. Flag: EXEMPT bugfix Bug: 351495492 Test: atest SharedConnectivityManagerTest Change-Id: If5eaa939419503121708ac746354a6159543e6df --- .../app/SharedConnectivityManager.java | 28 ++++++++++++++-------- 1 file changed, 18 insertions(+), 10 deletions(-) (limited to 'wifi/java/src') diff --git a/wifi/java/src/android/net/wifi/sharedconnectivity/app/SharedConnectivityManager.java b/wifi/java/src/android/net/wifi/sharedconnectivity/app/SharedConnectivityManager.java index f68ae2c7e249..fc4a909e761f 100644 --- a/wifi/java/src/android/net/wifi/sharedconnectivity/app/SharedConnectivityManager.java +++ b/wifi/java/src/android/net/wifi/sharedconnectivity/app/SharedConnectivityManager.java @@ -173,6 +173,10 @@ public class SharedConnectivityManager { } } } + + Executor getExecutor() { + return mExecutor; + } } private ISharedConnectivityService mService; @@ -188,7 +192,7 @@ public class SharedConnectivityManager { private final String mServicePackageName; private final String mIntentAction; private ServiceConnection mServiceConnection; - private UserManager mUserManager; + private final UserManager mUserManager; /** * Creates a new instance of {@link SharedConnectivityManager}. @@ -316,15 +320,19 @@ public class SharedConnectivityManager { private void registerCallbackInternal(SharedConnectivityClientCallback callback, SharedConnectivityCallbackProxy proxy) { - try { - mService.registerCallback(proxy); - synchronized (mProxyDataLock) { - mProxyMap.put(callback, proxy); - } - } catch (RemoteException e) { - Log.e(TAG, "Exception in registerCallback", e); - callback.onRegisterCallbackFailed(e); - } + proxy.getExecutor().execute( + () -> { + try { + mService.registerCallback(proxy); + synchronized (mProxyDataLock) { + mProxyMap.put(callback, proxy); + } + } catch (RemoteException e) { + Log.e(TAG, "Exception in registerCallback", e); + callback.onRegisterCallbackFailed(e); + } + } + ); } /** -- cgit v1.2.3-59-g8ed1b