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

Commit a0961285 authored by Andrew Sapperstein's avatar Andrew Sapperstein Committed by Android (Google) Code Review
Browse files

Merge "Remove constructors and defer creating the Handler to onBind." into udc-dev

parents 4526d3fb e3d1e4ca
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -10152,7 +10152,6 @@ package android.net.wifi.sharedconnectivity.service {
  public abstract class SharedConnectivityService extends android.app.Service {
    ctor public SharedConnectivityService();
    ctor public SharedConnectivityService(@NonNull android.os.Handler);
    method @Nullable public final android.os.IBinder onBind(@NonNull android.content.Intent);
    method public abstract void onConnectKnownNetwork(@NonNull android.net.wifi.sharedconnectivity.app.KnownNetwork);
    method public abstract void onConnectTetherNetwork(@NonNull android.net.wifi.sharedconnectivity.app.TetherNetwork);
+2 −9
Original line number Diff line number Diff line
@@ -59,7 +59,7 @@ public abstract class SharedConnectivityService extends Service {
    private static final String TAG = SharedConnectivityService.class.getSimpleName();
    private static final boolean DEBUG = true;

    private  final Handler mHandler;
    private  Handler mHandler;
    private final List<ISharedConnectivityCallback> mCallbacks = new ArrayList<>();
    // Used to find DeathRecipient when unregistering a callback to call unlinkToDeath.
    private final Map<ISharedConnectivityCallback, DeathRecipient> mDeathRecipientMap =
@@ -71,14 +71,6 @@ public abstract class SharedConnectivityService extends Service {
    private TetherNetworkConnectionStatus mTetherNetworkConnectionStatus;
    private KnownNetworkConnectionStatus mKnownNetworkConnectionStatus;

    public SharedConnectivityService() {
        mHandler = new Handler(getMainLooper());
    }

    public SharedConnectivityService(@NonNull Handler handler) {
        mHandler = handler;
    }

    private final class DeathRecipient implements IBinder.DeathRecipient {
        ISharedConnectivityCallback mCallback;

@@ -97,6 +89,7 @@ public abstract class SharedConnectivityService extends Service {
    @Nullable
    public final IBinder onBind(@NonNull Intent intent) {
        if (DEBUG) Log.i(TAG, "onBind intent=" + intent);
        mHandler = new Handler(getMainLooper());
        return new ISharedConnectivityService.Stub() {
            @Override
            public void registerCallback(ISharedConnectivityCallback callback) {
+37 −15
Original line number Diff line number Diff line
@@ -17,16 +17,21 @@
package android.net.wifi.sharedconnectivity.service;

import static org.junit.Assert.assertNotNull;
import static org.mockito.Mockito.when;

import android.content.Context;
import android.content.Intent;
import android.net.wifi.sharedconnectivity.app.KnownNetwork;
import android.net.wifi.sharedconnectivity.app.TetherNetwork;
import android.os.Handler;
import android.os.test.TestLooper;
import android.os.Looper;

import androidx.annotation.NonNull;
import androidx.test.filters.SmallTest;

import org.junit.Before;
import org.junit.Test;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;

/**
 * Unit tests for {@link android.net.wifi.sharedconnectivity.service.SharedConnectivityService}.
@@ -34,6 +39,33 @@ import org.junit.Test;
@SmallTest
public class SharedConnectivityServiceTest {

    @Mock
    Context mContext;

    static class FakeSharedConnectivityService extends SharedConnectivityService {
        public void attachBaseContext(Context context) {
            super.attachBaseContext(context);
        }

        @Override
        public void onConnectTetherNetwork(@NonNull TetherNetwork network) {}

        @Override
        public void onDisconnectTetherNetwork(@NonNull TetherNetwork network) {}

        @Override
        public void onConnectKnownNetwork(@NonNull KnownNetwork network) {}

        @Override
        public void onForgetKnownNetwork(@NonNull KnownNetwork network) {}
    }

    @Before
    public void setUp() {
        MockitoAnnotations.initMocks(this);
        when(mContext.getMainLooper()).thenReturn(Looper.getMainLooper());
    }

    /**
     * Verifies service returns
     */
@@ -51,18 +83,8 @@ public class SharedConnectivityServiceTest {
    }

    private SharedConnectivityService createService() {
        return new SharedConnectivityService(new Handler(new TestLooper().getLooper())) {
            @Override
            public void onConnectTetherNetwork(TetherNetwork network) {}

            @Override
            public void onDisconnectTetherNetwork(TetherNetwork network) {}

            @Override
            public void onConnectKnownNetwork(KnownNetwork network) {}

            @Override
            public void onForgetKnownNetwork(KnownNetwork network) {}
        };
        FakeSharedConnectivityService service = new FakeSharedConnectivityService();
        service.attachBaseContext(mContext);
        return service;
    }
}