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

Commit a48ee0fc authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Prevent multiple registration of ProximitySensor" into rvc-dev

parents ed059405 682d86f6
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -170,7 +170,11 @@ public class ProximitySensor {
            return false;
        }

        if (mListeners.contains(listener)) {
            Log.d(TAG, "ProxListener registered multiple times: " + listener);
        } else {
            mListeners.add(listener);
        }
        registerInternal();

        return true;
+24 −0
Original line number Diff line number Diff line
@@ -103,6 +103,30 @@ public class ProximitySensorTest extends SysuiTestCase {
        waitForSensorManager();
    }

    @Test
    public void testDuplicateListener() {
        TestableListener listenerA = new TestableListener();

        assertFalse(mProximitySensor.isRegistered());

        mProximitySensor.register(listenerA);
        waitForSensorManager();
        assertTrue(mProximitySensor.isRegistered());
        mProximitySensor.register(listenerA);
        waitForSensorManager();
        assertTrue(mProximitySensor.isRegistered());
        assertNull(listenerA.mLastEvent);

        mFakeProximitySensor.sendProximityResult(true);
        assertFalse(listenerA.mLastEvent.getNear());
        assertEquals(listenerA.mCallCount, 1);
        mFakeProximitySensor.sendProximityResult(false);
        assertTrue(listenerA.mLastEvent.getNear());
        assertEquals(listenerA.mCallCount, 2);

        mProximitySensor.unregister(listenerA);
        waitForSensorManager();
    }
    @Test
    public void testUnregister() {
        TestableListener listener = new TestableListener();