Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit eb9b233d authored by Isaac Katzenelson's avatar Isaac Katzenelson Committed by Android (Google) Code Review
Browse files

Merge "Call onServiceConnected only after callback is saved in the service." into udc-qpr-dev

parents e56d2787 1b9fd205
Loading
Loading
Loading
Loading
+14 −1
Original line number Diff line number Diff line
@@ -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);
+1 −0
Original line number Diff line number Diff line
@@ -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();
}
+5 −0
Original line number Diff line number Diff line
@@ -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();
        }