diff options
author | 2023-07-31 21:33:11 +0000 | |
---|---|---|
committer | 2023-07-31 21:33:11 +0000 | |
commit | 835a50f191cbcd8befae941b47a002fb392954b7 (patch) | |
tree | 5c539989aca17a3f9cde4640a38ae275d4248e98 /wifi/java/src | |
parent | 27121ba836287d73141821e2cde55771afe92e58 (diff) | |
parent | 59efa3051cf8f397b40a2018419109020be3a0b9 (diff) |
Merge "Call onServiceConnected only after callback is saved in the service." into udc-qpr-dev am: eb9b233d80 am: 59efa3051c
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/24257605
Change-Id: Ia2478ec188c06c7056a436cd222496a60e56f029
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
Diffstat (limited to 'wifi/java/src')
3 files changed, 20 insertions, 1 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 feef0497c152..d41c0197addc 100644 --- a/wifi/java/src/android/net/wifi/sharedconnectivity/app/SharedConnectivityManager.java +++ b/wifi/java/src/android/net/wifi/sharedconnectivity/app/SharedConnectivityManager.java @@ -81,6 +81,19 @@ public class SharedConnectivityManager { mCallback = callback; } + @Override + public void onServiceConnected() { + if (mCallback != null) { + final long token = Binder.clearCallingIdentity(); + try { + mExecutor.execute(() -> mCallback.onServiceConnected()); + } finally { + Binder.restoreCallingIdentity(token); + } + } + } + + @Override public void onHotspotNetworksUpdated(@NonNull List<HotspotNetwork> networks) { if (mCallback != null) { final long token = Binder.clearCallingIdentity(); @@ -117,6 +130,7 @@ public class SharedConnectivityManager { } } + @Override public void onHotspotNetworkConnectionStatusChanged( @NonNull HotspotNetworkConnectionStatus status) { if (mCallback != null) { @@ -251,7 +265,6 @@ public class SharedConnectivityManager { synchronized (mProxyDataLock) { mProxyMap.put(callback, proxy); } - callback.onServiceConnected(); } catch (RemoteException e) { Log.e(TAG, "Exception in registerCallback", e); callback.onRegisterCallbackFailed(e); diff --git a/wifi/java/src/android/net/wifi/sharedconnectivity/service/ISharedConnectivityCallback.aidl b/wifi/java/src/android/net/wifi/sharedconnectivity/service/ISharedConnectivityCallback.aidl index 737aa6d9964c..521f94367f6f 100644 --- a/wifi/java/src/android/net/wifi/sharedconnectivity/service/ISharedConnectivityCallback.aidl +++ b/wifi/java/src/android/net/wifi/sharedconnectivity/service/ISharedConnectivityCallback.aidl @@ -31,4 +31,5 @@ interface ISharedConnectivityCallback { oneway void onKnownNetworksUpdated(in List<KnownNetwork> networks); oneway void onKnownNetworkConnectionStatusChanged(in KnownNetworkConnectionStatus status); oneway void onSharedConnectivitySettingsChanged(in SharedConnectivitySettingsState state); + oneway void onServiceConnected(); } diff --git a/wifi/java/src/android/net/wifi/sharedconnectivity/service/SharedConnectivityService.java b/wifi/java/src/android/net/wifi/sharedconnectivity/service/SharedConnectivityService.java index 2bbe91958383..ebda6f1c5826 100644 --- a/wifi/java/src/android/net/wifi/sharedconnectivity/service/SharedConnectivityService.java +++ b/wifi/java/src/android/net/wifi/sharedconnectivity/service/SharedConnectivityService.java @@ -276,6 +276,11 @@ public abstract class SharedConnectivityService extends Service { private void onRegisterCallback(ISharedConnectivityCallback callback) { mRemoteCallbackList.register(callback); + try { + callback.onServiceConnected(); + } catch (RemoteException e) { + if (DEBUG) Log.w(TAG, "Exception in onRegisterCallback", e); + } if (mCountDownLatch != null) { mCountDownLatch.countDown(); } |