diff options
author | 2024-09-17 16:47:03 -0700 | |
---|---|---|
committer | 2024-09-17 16:50:57 -0700 | |
commit | 1b917593dd7a42212e87ee8221b98f510f0b953e (patch) | |
tree | 0c4ad02c35962f13fe79da799d0be3428985b3b3 | |
parent | 2a48266b248e2e7921dc5b3fef66703262450db2 (diff) |
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
-rw-r--r-- | wifi/java/src/android/net/wifi/sharedconnectivity/app/SharedConnectivityManager.java | 28 |
1 files changed, 18 insertions, 10 deletions
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); + } + } + ); } /** |